Showing posts with label policy. Show all posts
Showing posts with label policy. Show all posts

Thursday, June 12, 2014

Linux Security Hardening - Phần 1



     Các phiên bản của Linux luôn được nhắc tới với việc an toàn hơn Windows. Tuy nhiên có nhiều tính năng về bảo mật không được kích hoạt mặc định khi mới cài. Trong loạt bài này mình sẽ trình bày về một số chính sách nên được thiết lập để đảm bảo tính an toàn cho hệ thống Linux. 
     *** Bài viết được đưa ra với tinh thần học hỏi là chính, rất mong nhận được những góp ý từ các bạn.  ***

1.      Các vấn đề chung   

  •  Mã hóa dữ liệu truyền trên mạng. Mã hòa thông tin xác thực người dùng (như password) là điều tối quan trọng.
  • Cài đặt và chạy ít nhất các phần mềm có thể để giảm thiểu các lỗ hổng từ các phần mềm này.
  • Sử dụng phần mềm hoặc công cụ tăng cường tính an ninh cho hệ thống (như SELinux, Iptables). 
  •  Chạy mỗi dịch vụ mạng độc lập nếu có thể. Nhằm giảm thiểu tối đa các nguy cơ khi một dịch vụ bị lộ lọt gây ảnh hưởng tới các dịch vụ khác. 
  •  Chính sách với tài khoản người dùng: thiết lập một chính sách mật khẩu tốt và ép buộc phải sử dụng. Xóa các tài khoản không sử dụng. 
  •  Review log hệ thống và ứng dụng định kỳ. Gửi log tới một server độc lập khác để ngăn ngừa các nguy cơ bị chỉnh sửa hoặc xóa log. 
  •  Không bao giờ đăng nhập với tài khoản root, trừ khi thật sự cần thiết. Để quản trị hệ thống thì chỉ nên sử udnjg sudo để thực thi các lệnh với quyền root khi cần. Những account có thể sử dụng sudo được định nghĩa trong /etc/sudoers, chỉnh sửa với lệnh visudo. Mặc định, log được ghi trong /var/log/secure.
 2.      Physical security
  
Thiết lập mật khẩu cho BIOS và không cho phép boot từ ổ CD/DVD, floppies, và các thiết bị ngoại vi khác.

Tiếp theo thiếp lập mật khẩu cho Grub. Sinh password sử dụng câu lệnh sau: 
     /sbin/grub-md5-crypt 

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.