1. Cấu hình bảo mật password
1.1. Cấu hình nâng cao không cho đặt lại mật khẩu trung 3 lần trước
Thêm password [success=1 default=ignore] pam_unix.so obscure yescrypt remember=3
sudo cat /etc/pam.d/common-password |grep password
password [success=1 default=ignore] pam_unix.so obscure yescrypt remember=5
password requisite pam_deny.so
password required pam_permit.so
1.2. Cài đặt libpam-pwquality
sudo apt install libpam-pwquality
Thêm dòng sau vào file “/etc/security/pwquality.conf” (hoặc chỉnh sửa giá trị):
cat /etc/security/pwquality.conf | grep -v ^#
Thêm dòng sau vào file “/etc/security/pwquality.conf” (hoặc chỉnh sửa giá trị):
minlen = 6
dictcheck = 1
enforce_for_root
Kiểm tra file /etc/pam.d/common-password xem đã thêm pam_pwquality chưa
sudo cat /etc/pam.d/common-password | grep requisite | grep pam_pwquality
password requisite pam_pwquality.so retry=3
NIST published an article which can be found here: https://www.nist.gov/blogs/taking-measure/easy-ways-build-better-p5w0rd and here: https://pages.nist.gov/800-63-3/sp800-63b.html. These cover digital identity management in much more rational way than it used to be.
Kiểm tra thử từ điển với lệnh
cracklib-check
zaq12wsx
zaq12wsx: OK
123456
123456: it is too simplistic/systematic
123@123a
123@123a: it is too simplistic/systematic
A
A: it is WAY too short
Cập nhật file dict
ví dụ thêm password zaq12wsx
echo "zaq12wsx" >> /usr/share/dict/words
sudo create-cracklib-dict /usr/share/dict/words
Kiểm tra lại
cracklib-check
zaq12wsx
zaq12wsx: it is based on a dictionary word
Thực hiện đổi thử password
passwd
Changing password for tester.
Current password:
New password:
BAD PASSWORD: The password fails the dictionary check – it is based on a dictionary word
New password:
2. Bỏ cấu hình pw_quality
sudo pam-auth-update --force