Hướng dẫn cấu hình bảo mật hệ điều hành Centos

huong-dan-cau-hinh-bao-mat-dieu-hanh-centos-logoVNITNEWS xin gửi tới bạn đọc bài viết “Hướng dẫn cấu hình bảo mật hệ điều hành Centos” mức cơ bản , 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 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ư :

https://vnitnews.com/huong-dan-cau-hinh-ssh-tcp-wrappers-tren-centos/

https://vnitnews.com/huong-dan-cau-hinh-ssh-key-trong-centos/

https://vnitnews.com/huong-dan-cau-hinh-port-knocking-tren-centos/

-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 &quot;IPTABLES DROP&quot;

-A FORWARD -j LOG — log-level 4 — log-prefix &quot;IPTABLES DROP&quot;

-A OUTPUT -j LOG — log-level 4 — log-prefix &quot;IPTABLES DROP&quot;

-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 &lt; /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”

Nguồn : vnitnews.com

Ads

https://vnitnews.com

Leave a Reply

Email của bạn sẽ không được hiển thị công khai.