Friday, June 13, 2014

Linux Security Hardening - Phần 3



11.      Cấu hình và sử dụng Iptables và TCPWrapper

Iptables nên được cấu hình để chỉ cho phép các dữ liệu cần thiết trên mạng. Đối với Workstations, có thể thiết lập bocking tất cả các dữ liệu đến, ngoại trừ trong trường hợp liên quan đến bắt đầu hệ thống. Nếu Iptables đang chạy, xem policy hiện tại với câu lệnh sau:

/sbin/iptables –L

Mặc định, các luật cho output được lưu ở file /etc/sysconfig/iptables. Cần hiểu và điều chỉnh các luật này hợp lý hơn, xóa bỏ những dòng cho phép dữ liệu qua không cần thiết. Để cập nhật các luật, tiến hành restart service.

Tương tự vậy cấu hình TCP Wrapper để bạo vệ dịch vụ mạng bằng cách thêm vào các luật vào:

/etc/hosts.allow/etc/hosts.deny

12.      Delete X Windows

X Windows là tính năng không cần thiết với Server. Sẽ không có lý do gì cần phải chạy X Windows nếu server chỉ để chạy Web server và Mail. Do vậy, bạn nên disable hoặc xóa X Windows để gia tăng tính an toàn và hiệu năng. Chỉnh sửa /etc/inittab để run với level 3. Cuối cùng là xóa X Windows khỏi hệ thống

# yum groupremove "X Window System"

13.      Linux Kernel /etc/sysctl.conf hardening

/etc/sysctl.còn là file được sử dụng để cấu hình các tham số trong quá trình kernel được thực thi (runtime). Linux đọc và áp dụng các thiêt lập khi boot. Với sysctl bạn có thể cấu hình cho network và system có thể ngăn chặn một số hình thức tấn công như: IP spoofing, SYN Flood ... 

Cụ thể như sau:

 # Turn on execshield
kernel.exec-shield=1
kernel.randomize_va_space=1 

# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter = 1

# Disable IP source routing
net.ipv4.conf.all.accept_source_route=0

# Ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1

# Make sure spoofed packets get logged
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5

#Allow for more PIDs
kernel.pid_max = 65536

#Increase system IP port limits
net.ipv4.ip_local_port_range = 2000 65000

Để update thông tin vừa chỉnh sửa:
Sudo sysctl -p

14.      Không sử dụng SUID và SGID đối với các file không cần thiết

Tất cả bit SUID/SGID được bật trên các file không cần thiết là vấn đề gây mất an toàn khi file này có lỗi hoặc có vấn đề về an ninh. Tất cả người dùng local hoặc remote đều có thể sử dụng file này. TỐt nhất là tìm tất cả các file này và sau đó quyết định có nên sử dụng các bit SUID hoặc SGID hay không.

#Tìm tất cả các file có bật bit SUID
find / -perm +4000

# Tìm tất cả các file có bật bit SGID
find / -perm +2000

# Hoặc kết hợp cả 2 thao tác trên với một lệnh duy nhất
find / \( -perm -4000 -o -perm -2000 \) –print
find / -path -prune -o -type f -perm +6000 –ls

Tiếp đến, bạn cần xem manpage của từng file để tìm hiểu về chức năng của nó. Nếu file nào không cần thiết phải có bit SUID/SGID được bật, bạn gõ lệnh sau để loại bỏ các bit này khỏi file:

# chmod u-s filename
# chmod g-s filename

Các file có thể được ghi bởi bất kỳ ai (world-writable file)

Bất kỳ ai có thể chỉnh sửa các world-writable file sẽ dẫn tới rủi ro về bảo mật. Sử dụng lệnh sau để tìm tất cả các thư mục con dạng world-writable trong thư mục /dir và các thư mục này có sticky bit được bật.

find /dir -xdev -type d \( -perm -0002 -a ! -perm -1000 \) –print

Sau đó, bạn cũng cần tìm hiểu kỹ về từng file và thư mục trong kết quả đầu ra của lệnh để cấp phát quyền hạn truy cập phù hợp cho chúng.

Các file không thuộc quyền sở hữu của bất kỳ ai (noowner file)

Tìm các file như vậy với lệnh sau:
find /dir -xdev \( -nouser -o -nogroup \) –print

Sau đó, bạn cũng cần tìm hiểu kỹ về từng file và thư mục trong kết quả đầu ra của lệnh để cấp phát quyền hạn truy cập phù hợp hoặc xóa chúng.

15.      System Accounting with auditd

Auditd là dịch vụ được sử dụng với mục đích hỗ trợ kiểm soát hệ thống (system auditing). Nó chịu trách nhiệm ghi lại các sự kiện xảy ra trong hệ thống. Các cấu hình về nơi lưu trữ các bản ghi ở trong /etc/audit.rules. Bạn có thể mở file và chỉnh sửa nơi sẽ lưu log. Với auditd bạn có thể truy vết các vấn đề như:

System startup and shutdown events (reboot / halt).
Date and time of the event.
User respoisble for the event (such as trying to access /path/to/topsecret.dat file).
Type of event (edit, access, delete, write, update file & commands).
Success or failure of the event.
Records events that Modify date and time.

 Find out who made changes to modify the system's network settings.
Record events that modify user/group information.
See who made changes to a file etc.

16.      Prevent IP Spoofing
Để ngăn chặn việc IP Spoofing, mở file host.conf :
sudo vi /etc/host.conf
Và thêm dòng sau:

order bind,hosts
nospoof on


Tài liệu tham khảo chính: 
http://www.cyberciti.biz/tips/linux-security.html
http://www.sans.org/score/checklists/linuxchecklist.pdf
http://www.nsa.gov/ia/_files/factsheets/rhel5-pamphlet-i731.pdf

 -- Jukai Helios --

No comments:

Post a Comment