
Làm thế nào cấu hình bảo mật hệ điều hành CENTOS
Thông qua bài viết sau Sharemystudio hi vọng giúp các quản trị viên hạn chế được phần nào rủi ro an toàn thông tin trong hệ điều hành Linux/Centos.
1 ) Cập nhật bản vá cho hệ điều hành
Việc cập nhật hệ điều hành mới nhất sẽ giúp hạn chế rủi ro, tránh tồn tại các lỗ hổng bảo mật nghiêm trọng của các phiên bản centos trước.
-Cập nhật kernel hệ điều hành :
#yum upgrade kernel -y
#reboot
-Cập nhật toàn bộ hệ điều hành :
#yum update -y
#reboot
2 ) Vô hiệu hóa các dịch vụ , ứng dụng không cần thiết
Mỗi Server sẽ đảm nhiệm một vai trò nhất định. Để tăng cường tính bảo mật, vnitnews khuyến khích các bạn tắt các dịch vụ , cấu hình hay ứng dụng không cần thiết bằng cách :
-Kiểm tra các gói tin cài đặt thông qua yum:
#yum list
Xóa các package không cần thiết bằng lệnh :
#yum remove <package>
-Kiểm tra các service đang được chạy runlevel 3 :
#chkconfig –list | grep ‘3:on’
Tắt các service-name chủ động sau mỗi lần khởi động OS
#chkconfig <service-name> off
-Kiểm tra các service đang được mở hay lắng nghe :
#netstat -tupln
Tắt các service-name không cần thiết
#service <service-name> stop
3 ) Kiểm tra các account đang tồn tại trên hệ thống
#cat /etc/passwd | grep /*sh$ | awk -F: ‘{print $1}’
Tiến hành disabled :
#vi /etc/passwd
Thêm # vào account cần vô hiệu hóa. Hoặc xóa account :
#userdel -r username
4 ) Cấu hình chính sách mật khẩu cho account
-Mã hóa mật khẩu sha512 :
Kiểm tra thuật toán mã hóa
#authconfig — test | grep hashing
Nếu không phải sha512, tiến hành cập nhật
#authconfig — passalgo=sha512 — update
- Kí tự viết hoa , viết thường , chữ số , kí tự đặc biệt :
#vi /etc/pam.d/system-auth
Cập nhật các cấu hình sau :
password requisite pam_cracklib.so [các option trước đó] ucredit=-1
-Độ dài mật khẩu lớn hơn hoặc bằng 8 kí tự :
#vi /etc/pam.d/system-auth
password requisite pam_cracklib.so [các option trước đó] minlen=8
-Thời gian bắt buộc thay đổi mật khẩu :
#chage -M 90 <user> // 90 ngày thay đổi mật khẩu
-Giới hạn mật khẩu mới không được trùng mật khẩu cũ
#vi /etc/pam.d/system-auth
password sufficient pam_unix.so [các option trước đó] remember=2
5 ) Cấu hình bảo mật SSH
-Cấu hình kênh truyền có mã hóa :
#vi /etc/ssh/sshd_config
Protocol 2
-Giới hạn user truy cập SSH
#useradd sshuser
#passwd sshuser
#vi /etc/ssh/sshd_config
PermitRootLogin no
AllowUsers sshuser
-Sử dụng các phương thức bảo mật SSH như :
-Giới hạn thời gian tự ngắt phiên khi không sử dụng :
#vi /etc/profile
TMOUT=300
readonly TMOUT
export TMOUT
#service sshd restart
6 ) Phân quyền tập tin , thư mục
-Xác thực đường dẫn PATH :
#echo $PATH
Ví dụ:
PATH có chứa đường dẫn trống: /usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin::
PATH có chứa đường dẫn tương đối:
/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:./src/bin
PATH có chứa đường dẫn nguy hiểm:
/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tmp
-Thiết lập cấu hình crontab :
Bước 1: Thực hiện xóa File cron.deny:
#rm /etc/cron.deny
Bước 2: Thêm File cron.allow nếu hệ thống chưa có:
#touch /etc/cron.allow
Bước 3: Sửa file /etc/cron.allow, cập nhật hoặc thêm các tài khoản được phép sử
dụng dịch vụ CRON:
User1
User2
…
Bước 4: Hạn chế quyền sửa các file cấu hình của CRON:
#chown root:root /etc/crontab
#chmod 600 /etc/crontab
#chown –R root:root /etc/cron.hourly /etc/cron.daily /etc/cron.weekly
/etc/cron.monthly /etc/cron.d
#chmod –R go-rwx /etc/cron.hourly /etc/cron.daily /etc/cron.weekly
/etc/cron.monthly /etc/cron.d
7 ) Cấu hình Firewall mềm
Ý nghĩa các rule :
Generated by iptables-save v1.4.7 on Fri Jul 10 22:34:12 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [129895:7030615]
-A INPUT -m state — state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state — state NEW -m udp — dport 123 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state — state NEW -m tcp — dport 22 -j ACCEPT
-A INPUT -j REJECT — reject-with icmp-host- prohibited
-A FORWARD -j REJECT — reject-with icmp-host- prohibited
COMMIT
Completed on Fri Jul 10 22:34:12 2015
Trong đó:
- “*filter”: Chỉ bắt đầu các rule của table filter, table dùng để viết các rule lọc
gói tin.
- :INPUT ACCEPT [0:0]
INPUT: là chain của iptables, table filter có 3 chain là INPUT, OUTPUT,
FORWARD. Trong đó INPUT là thời điểm gói tin đi vào hệ thống,
OUTPUT là thời điểm gói tin đi ra hệ thống, còn FORWARD là thời
điểm gói tin đi từ card mạng này sang card mạng khác.
ACCEPT: Chain policy của chain INPUT, OUTPUT và FORWARD. Ý
nghĩa: Nếu gói tin sau khi được kiểm tra bởi tất cả các rule của iptables
mà không có rule nào khớp thì sẽ được ACCEPT.
[0:0]: Số đầu tiên chỉ ra số lượng gói tin, số thứ 2 chỉ ra dung lượng của
các gói tin. Đây là các thông số thống kê về các gói tin không khớp luật
nào của iptables, và do đó được thực hiện Chain policy là ACCEPT.
- Các rule tiếp theo: Là rule lọc của iptables, sẽ áp dụng từ trên xuống dưới.
- COMMIT: Đánh dấu kết thúc bảng filter.
Cách sửa luật iptables:
Tạo một file có nội dung như sau, ví dụ là /etc/sysconfig/iptables:
Firewall configuration written by system-config- firewall
Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
Cho phép các gói tin thuộc 1 kết nối đang tồn tại hoặc có liên quan đến 1 connection đang tồn tại đi vào, không cần kiểm tra
-A INPUT -m state — state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state — state ESTABLISHED,RELATED -j ACCEPT
Cho phép ping echo request đến server
-A INPUT -p icmp — icmp-type 8 -j ACCEPT
Nhứng gói tin từ card mạng loopback thì không cần lọc
-A INPUT -i lo -j ACCEPT
Thêm nhưng luật lọc chiều INPUT tại đâ
Ví dụ luật cho phép 1 IP hay 1 dải IP SSH đến server
-A INPUT -m state — state NEW -s 192.168.1.190 -m tcp -p tcp — dport 22 -j ACCEPT
-A INPUT -m state — state NEW -s 192.168.2.0/24 -m tcp -p tcp — dport 22 -j
ACCEPT
Ví dụ luật cho phép HTTP
-A INPUT -m state — state NEW -m tcp -p tcp — dport 80 -j ACCEPT
Thêm các luật lọc chiều OUTPUT tại đây
Chỉ khi server cần chủ động kết nối ra bên ngoài mưới thêm luật tiếp theo
Ví dụ luật cho phép server hiện tại ssh đến server 10.10.10.10 #
-A OUTPUT -m state — state NEW -d 10.10.10.10 -m tcp -p tcp — dport 22 -j ACCEPT
Chặn toàn bộ các kết nối còn lại, ghi log trước khi chặn
-A INPUT -j LOG — log-level 4 — log-prefix "IPTABLES DROP"
-A FORWARD -j LOG — log-level 4 — log-prefix "IPTABLES DROP"
-A OUTPUT -j LOG — log-level 4 — log-prefix "IPTABLES DROP"
-A INPUT -j REJECT — reject-with icmp-host- prohibited
-A FORWARD -j REJECT — reject-with icmp-host- prohibited
-A OUTPUT -j REJECT — reject-with icmp-host- prohibited
COMMIT
Cách cấu hình để iptables nạp các rule khi server khởi động lại:
Thêm dòng sau vào cuối file /etc/rc.local:
iptables-restore < /etc/sysconfig/iptables
Cách tạm thời tắt tất cả các luật của iptables để troubleshoot:
Sử dụng các lệnh sau:
#iptables –F
#iptables –X
#iptables –P INPUT ACCEPT
#iptables –P OUTPUT ACCEPT
#iptables –P FORWARD ACCEPT
Ý nghĩa các lệnh:
- Lệnh đầu tiên để xoá tất cả các rule trong tất cả các chain của iptables
- Lệnh thứ 2 xoá tất cả các chain do người dùng tự tạo
- Lệnh 3,4,5 thiết lập chain policy cho chain INPUT, OUTPUT, FORWARD
là ACCEPT, khi đấy server cho phép toàn bộ kết nối vào/ra server.
-Ghi log những bản ghi vào/ra không hợp lệ.
Lưu ý thêm các dòng sau vào file cấu hình iptables:
-A INPUT -j LOG — log-level 4 — log-prefix “IPTABLES DROP”
-A FORWARD -j LOG — log-level 4 — log-prefix “IPTABLES DROP”
-A OUTPUT -j LOG — log-level 4 — log-prefix “IPTABLES DROP”
Chúc các bạn thành công !
>> Làm thế nào bảo mật APACHE trên hệ điều hành CENTOS
>> Lưu trữ đám mây với OWNCLOUD, dữ liệu của bạn sẽ luôn an toàn

[Giveaway] DoYourData Uninstaller Pro 5.5 – free license
Bạn cần một chương trình mạnh mẽ để loại bỏ những phần mềm cứng đầu hay Windows 10 apps và plugins. Vậy DoYourData Uninstaller Pro […]