很有意思. 公司在做安全评估的时候, 被问到很多问题.
我们的机房服务器安全措施就是, 首先必须有windows域帐号, 且域帐号有vpn拨号权限, 然后拨号联通机房的vpn, 才能登陆机房的各个Linux主机, 当然, 还要有Linux的登陆帐号, 问题来了, 如何控制用户密码的复杂程度, 在windows下这很简单, Linux下肯定可行.
wget [url][/url]
tar zxvf /pam_passwdqc/pam_passwdqc-1.0.5.tar.gz
cd pam_passwdqc-1.0.5
make; make install
tar zxvf /pam_passwdqc/pam_passwdqc-1.0.5.tar.gz
cd pam_passwdqc-1.0.5
make; make install
>>mkdir -p /lib/security
>>install -c -m 755 pam_passwdqc.so /lib/security
>>mkdir -p /usr/share/man/man8
>>install -c -m 644 pam_passwdqc.8 /usr/share/man/man8/
>>install -c -m 755 pam_passwdqc.so /lib/security
>>mkdir -p /usr/share/man/man8
>>install -c -m 644 pam_passwdqc.8 /usr/share/man/man8/
注意, pam_passwdqc.so被扔到/lib/security目录了, 记住.
然后编辑pam.d
vi /etc/pam.d/system-auth
#password requisite /lib/security/$ISA/pam_cracklib.so retry=3
#password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
#password required /lib/security/$ISA/pam_deny.so
#password requisite /lib/security/$ISA/pam_cracklib.so retry=3
#password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
#password required /lib/security/$ISA/pam_deny.so
password required pam_passwdqc.so min=disabled,12,8,6,5 max=40 passphrase=3 match=4 similar=deny random=42 enforce=everyone retry=3
password sufficient pam_unix.so nullok use_authtok md5 shadow use_first_pass
password required /lib/security/$ISA/pam_deny.so
password sufficient pam_unix.so nullok use_authtok md5 shadow use_first_pass
password required /lib/security/$ISA/pam_deny.so
注释掉三行, 换成下面三行.
有用的是min=disabled, 12,8,6,5 max=40 意思是:
不接受任何单种字符类的口令;对两种字符混合的密码,强制口令最小长度是12位;对口令字强制最小长度是8位;对3种字符混合的密码强制最小长度是6 位;4种字符混合的密码强制最小长度是5位。所谓4种字符混合的密码就是由“数字”,“小写字母”,“大写字母”,以及“其它字符”组成(其它字符就是类 似“!”、“_”这种)。另外,上述这些规则同时还强制任何口令长度不得超过40位
不接受任何单种字符类的口令;对两种字符混合的密码,强制口令最小长度是12位;对口令字强制最小长度是8位;对3种字符混合的密码强制最小长度是6 位;4种字符混合的密码强制最小长度是5位。所谓4种字符混合的密码就是由“数字”,“小写字母”,“大写字母”,以及“其它字符”组成(其它字符就是类 似“!”、“_”这种)。另外,上述这些规则同时还强制任何口令长度不得超过40位
注意: 8Tad!就是符合规则的密码, 4种字符.
剩下的就是写个脚本, 强制此用户登陆的时候执行passwd, 然后执行完后把自己删除, 就完成了.