Linux帐户的密码加密后存放于/etc/shadow文件中。对于Redhat Enterprise版本,默认使用MD5算法,这个算法已经很不安全。很多经典的黑客教程都是教人拿到shadow文件后回去破解出root的密码,如果能用更难破解的sha算法加密密码无疑可以提高服务器的安全性。以下内容是综合了http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-upgrading-password-hashing/ , http://kbase.redhat.com/faq/docs/DOC-15806 的内容而来,针对RHEL5.2以上版本。
显示当前密码加密算法:
# authconfig --test | grep hashing
输出:password hashing algorithm is md5
设置使用sha512算法:
# authconfig --passalgo=SHA512 --update
在我的RHEL5.3版中,提示unknown algorithm sha512, 使用了sha256,还没搞清楚是为什么。再次显示,已经更改为sha256算法。
最后,所有用户都需要重新设置密码才能生效。可以使用# chage -d 0 userName 强制所有用户下次登录修改密码。
在我用的archlinux上,设置方法不同。参考了WiKi上的内容:http://wiki.archlinux.org/index.php/SHA_Passwords
1.修改 /etc/pam.d/passwd文件
#%PAM-1.0
#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#password required pam_unix.so md5 shadow use_authtok
password required pam_unix.so md5 shadow nullok
把最后一行的md5用sha256替换
2.修改/etc/default/passwd文件
CRYPT=des 改为 CRYPT=sha256
3.所有用户重新修改密码。