Thiết lập chính sách mật khẩu an toàn trên Linux
THIẾT LẬP THỜI GIAN HẾT HẠN CỦA MẬT KHẨU
Các thiết lập về chính sách mật khẩu trên Linux đều được lưu tại tệp “etc/login.defs”. Để tránh bị xâm phạm tài khoản, người dùng có thể đặt giới hạn thời gian liên quan đến mật khẩu như sau (truy cập tệp bằng câu lệnh “vi /etc/login.defs”):
- Số ngày tối đa mật khẩu có thể được sử dụng với tham số “PASS_MAX_DAYS”, ví dụ sau một khoảng thời gian đã được thiết lập thì mật khẩu bắt buộc phải thay đổi.
- Số ngày tối thiểu thay đổi mật khẩu với tham số “PASS_MIN_DAYS”, với thiết lập này thì mật khẩu của người dùng sẽ tồn tại trong khoảng thời gian đã được quy định và sau đó mới có thể đổi lại.
- Số ngày cảnh báo được đưa ra trước khi mật khẩu hết hạn với tham số “PASS_WARN_AGE”, như trong Hình 1 thông báo cảnh báo sẽ xuất hiện 3 ngày trước khi mật khẩu hết hạn.
Hình 1. Thiết lập thông số thời gian liên quan đến mật khẩu
Lưu ý rằng chính sách mật khẩu ở trên chỉ áp dụng đối với tài khoản được tạo mới, không có tác dụng đối với tài khoản đã tồn tại trên hệ thống, đối với các tài khoản này thì sử dụng câu lệnh như trong Hình 2.
Hình 2. Thiết lập chính sách mật khẩu đối với tài khoản đã tồn tại
- Đặt số ngày tối đa của mật khẩu: “chage -M <số ngày><tên người dùng>”.
- Đặt số ngày tối thiểu của mật khẩu: “chage -m <số ngày><tên người dùng>”.
- Đặt số ngày cảnh báo trước khi mật khẩu hết hạn: “chage -W<số ngày><tên người dùng> ”.
GIỚI HẠN SỬ DỤNG LẠI MẬT KHẨU
Với tùy chọn giới hạn sử dụng mật khẩu cũ, người dùng sẽ không thể thiết lập mật khẩu quá số lần quy định. Hình 3 yêu cầu người dùng không được sử dụng lại 5 mật khẩu đã sử dụng trước đó, điều này có thể hạn chế khả năng dò đoán mật khẩu của tin tặc. Mở tệp “vi /etc/pam.d/system-auth” và “vi/etc/pam.d/password-auth”, sau đó thêm tham số “remember=<số mật khẩu>”.
Hình 3. Hạn chế sử dụng mật khẩu cũ
THIẾT LẬP ĐỘ DÀI TỐI THIỂU CỦA MẬT KHẨU
Thiết lập độ dài ngắn nhất của mật khẩu, người dùng không thể đặt mật khẩu ngắn hơn số ký tự đã quy định, thực thi câu lệnh “authconfig --passminlen=<số ký tự>--update”. Sau đó để kiểm tra phần cấu hình đã thiết lập, thực thi câu lệnh “grep "^minlen"/ etc/security/pwquality.conf”, như trong Hình 4.
Hình 4. Thiết lập độ dài tối thiểu của mật khẩu
THIẾT LẬP ĐỘ PHỨC TẠP CỦA MẬT KHẨU
Trong Linux có các lớp (class) ký tự như sau: UpperCase/LowerCase/Digits/Others (Chữ hoa/ Chữ thường/Số/Ký tự khác). Để thiết lập độ phức tạp theo số lớp tối thiểu phải có trong mật khẩu được thực thi bằng câu lệnh: “authconfig --passminclass=<số lớp tối thiểu> --update”. Bên cạnh đó, người dùng cũng có thể xác định chỉ một loại ký tự nào được phép sử dụng cho mật khẩu, theo cú pháp như sau:
- Đặt ít nhất một ký tự chữ thường: “authconfig --enablereqlower --update”.
- Đặt ít nhất một ký tự chữ hoa: “authconfig --enablerequpper --update”.
- Đặt ít nhất một chữ số: “authconfig --enablereqdigit --update”.
- Đặt ít nhất một ký tự đặc biệt: “authconfig --enablereqother --update”.
CẤU HÌNH CÁC KÝ TỰ KHÔNG XUẤT HIỆN TRONG MẬT KHẨU
Để thiết lập danh sách các ký tự không được xuất hiện trong mật khẩu, mở tệp “vi /etc/security/ pwquality.conf”, sau đó thêm vào cuối tệp dòng cấu hình với những từ không được phép xuất hiện trong mật khẩu, ví dụ như Hình 5.
Hình 5. Thêm danh sách các từ không có trong mật khẩu
THIẾT LẬP ĐỘ DÀI CHUỖI KÝ TỰ ĐƠN ĐIỆU
Chuỗi ký tự đơn điệu (Monotonic) trên Linux là các ký tự tăng hoặc giảm trong khoảng được cấu hình sẵn, ví dụ được thiết lập là 6 thì chỉ có thể đặt mật khẩu mới là “123456” hoặc “fedcba” chứ không thể đặt chuỗi dài hơn được.
Mở tệp “vi /etc/security/pwquality.conf”, sau đó thêm vào cuối tệp dòng cấu hình như sau: “maxsequence = 6”.
CẤU HÌNH THUẬT TOÁN BĂM
Linux sẽ lưu trữ thông tin mật khẩu trong tệp “etc/shadow” với thuật toán băm mặc định là SHA, tuy nhiên với các phiên bản cũ hơn thì đang sử dụng MD5. Với những trường hợp này, người dùng có thể thay đổi thuật toán băm khác mạnh hơn, ví dụ như SHA-512 để bảo mật thông tin mật khẩu của mình.
Hình 6. Cập nhật SHA-512 là thuật toán băm của mật khẩu
Để thiết lập thuật toán băm cho mật khẩu mới, cần thực thi câu lệnh “authconfig --passalgo=sha512 --update” và thay đổi mật khẩu tài khoản để áp dụng với thuật toán băm vừa được cập nhật. Tiếp theo, thực thi câu lệnh “cat /etc/ shadow” để kiểm tra. Như trong Hình 6, cột thứ 2 sau tài khoản “root” là đại diện cho các thông tin liên quan đến mật khẩu. Trường 1 cho biết thuật toán băm được sử dụng (với $1 là MD5; $2 là Blowfish; $2a là Eksblowfish; $5 là SHA-256; $6 là SHA-512). Trường 2 là giá trị Salt được tạo ngẫu nhiên để mã hóa, xác thực mật khẩu và chống tấn công Rainbow Table.
KẾT LUẬN
Tương tự như Windows, mật khẩu trên Linux là một trong những yếu tố mà các tin tặc thường nhắm mục tiêu tấn công bởi khả năng và xác suất khai thác thành công cao nếu tài khoản người dùng được thiết lập yếu và bảo mật kém. Người dùng hoàn toàn có thể chủ động ngăn chặn những nguy cơ này bằng các thiết lập và quản lý chính sách bảo mật đối với mật khẩu. Bài viết đã cung cấp một số cấu hình quan trọng nhằm cung cấp tới độc giả những kỹ năng sử dụng mật khẩu an toàn, qua đó có thể phòng tránh những cuộc tấn công mật khẩu như brute-force cũng như các mối đe dọa liên quan khác.
Hồng Đạt