Showing posts with label fedora. Show all posts
Showing posts with label fedora. Show all posts

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

Thursday, June 12, 2014

Thiết lập chính sách mật khẩu trong Linux

Trong bài trước mình đã dẫn và giới thiệu về bảo mật hệ thống *nix với PAM. Trong bài viết này mình trình bày về làm sao để thiết lập chính sách mật khẩu (account password policy) cho hệ thống Linux sao cho đảm bảo các yếu tố an ninh.

1.      Giới hạn số ngày tối đa mà một mật khẩu được phép sử dụng trước khi nó phải thay đổi

Theo mặc định của các hệ thống Linux thì thời hạn tối đa của mật khẩu là 99999, tuy nhiên thời gian này là quá lớn và tương đương với việc password sẽ không bao giờ hết hạn. Để giới hạn số ngày tối đa mà một password được phép sử dụng, cần thiết lập lại  tham số: PASS_MAX_DAYS trong file /etc/login.defs


Cú pháp sử dụng như sau: 
PASS_MAX_DAYS N
với N – là số ngày tối đa mà một mật khẩu được phép sử dụng

Ví dụ muốn thiết lập thời gian tối đa là 180 ngày:
PASS_MAX_DAYS 180

2.      Thiết lập chính sách yêu cầu mật khẩu phải thỏa mãn một số điều kiện 

Để chống lại các hình thức tấn công dò mật khẩu thông thường (dictionary attack, brute-force…) thì mật khẩu hợp lệ phải chứa càng nhiều loại ký tự khác nhau càng tốt: chữ thường, chữ viêt hoa, ký tự đặc biệt, số. Để thiết lập chính sách về việc mật khẩu sử dụng phải thỏa mãn các điều kiện về số lượng loại ký tự được phép sử dụng, cần thiết lập trong pam.d với thư viện pam_cracklib.so.

Cú pháp sử dụng như sau:
password required pam_cracklib.so difok=DI lcredit=L ucredit=U dcredit=D ocredit=O

Với DI,L,U,D,O>=1 và
 dcredit=D : Số lượng chữ số.
 ucredit=U: Số lượng chữ cái in hoa
 lcredit=L : Số lượng chữ cái thường.
ocredit=O : Số lượng các ký tự đặc biệt khác
 difok=DI: số lượng các ký tự của passwd mới được phép trùng với passwd cũ

*Lưu ý pam_cracklib.so đã được cài sẵn trên Redhat/Fedora/CentOS. Nếu hệ thống Debian/Ubuntu chưa có module này thì gõ lệnh sau để cài đặt nó: # apt-get install libpam-cracklib.