服务器弱口令漏洞修复策略
1、完善密码策略,密码长度至少为8(包括)位以上字符,且包含数字、大小写字母、特殊字符。
vi /etc/pam.d/system-auth password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 ocredit=-1 ucredit=-1 lcredit=-1 dcredit=-1 |
try_first_pass retry=3:在密码设置交互界面,用户有 3 次机会重设密码。
minlen=:此选项用来设置新密码的最小长度ucredit= :此选项用来设定新密码中可以包含的大写字母的最大数目。-1 至少一个
lcredit=:此选项用来设定新密码中可以包含的小写字母的最大数目
dcredit=:此选项用来设定新密码中可以包含的数字的最大数目
注:这个密码强度的设定只对普通用户有限制作用,root用户无论修改自己的密码还是修改普通用户的时候,不符合强度设置依然可以设置成功
2、限制ssh方式登录(设置普通用户和root用户连续错误登陆的最大次数,当超过最大次数,锁定该用户,并设置在一定时间后解锁)
vim /etc/pam.d/login # 添加如下一行: uth required pam_tally2.so deny=3 unlock_time=100 even_deny_root root_unlock_time=300 |
deny: 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time: 设定普通用户锁定后,多少时间后解锁,单位是秒
root_unlock_time: 设定root用户锁定后,多少时间后解锁,单位是秒
3、限制用户的登录次数(设置账号锁定并在一定时间内解锁)
设置账号锁定并在一定时间内解锁 # vi /etc/pam.d/system-auth auth required pam_tally2.so onerr=fail audit silent deny=5 unlock_time=900 |
4、开启用户在无操作一定时间后自动退出终端
echo $TMOUT # 如果输出空或0表示不超时,大于0的数字n表示n秒没有收入则超时 # vi /etc/profile # 加入如下代码 export TMOUT=900 # 900即900秒内无操作自动退出终端,若修改为0就是设置不超时 source /etc/profile # 让配置立即生效 |
5、设置ip访问黑白名单(设置SSH只允许特定用户从特定的IP登录,其它未经允许的用户和IP都不能登录)
允许ip访问:
# vim /etc/hosts.allow #最后一行加入: sshd:192.168.0.28:allow //多个IP可以按照此格式写多行 sshd:192.168.18.1:allow sshd:192.168.18.2:allow |
禁止ip访问
# vim /etc/hosts.deny #最后一行添加你要禁止的ip就可以了 sshd:192.168.1.14:deny
拒绝所有: # vim /etc/hosts.deny,最后一行加入: sshd:ALL //除了上面允许登录的IP,其它IP都拒绝登录 |
示例:若只允许192.168.1网段的主机登录
# vim /etc/hosts.allow #最后一行加入: sshd:192.168.1.*:allow
# vim /etc/hosts.deny #最后一行加入: sshd:ALL //除了上面允许登录的IP,其它IP都拒绝登录 |
示例:若只允许192.168.0.28以test1用户身份、192.168.1.13以root用户身份登录192.168.1.81
# vim /etc/ssh/sshd_config #最后一行加入: AllowUsers test1@192.168.0.28 root@192.168.1.13 //多个用户名@IP之间使用空格分隔 |
6、设置密码可使用的最大天数
# vi /etc/login.defs PASS_MAX_DAYS 90 #这一参数限制一个密码可使用的最大天数。它强制用户在过期前修改他/她的密码。如果他们忘记修改,那么他们会登录不了系统。他们需要联系管理员才能正常登录。这里将天数设置为 90 天。 |
7、设置密码最小天数
# vi /etc/login.defs PASS_MIN_DAYS 15 #这个参数限制两次修改之间的最少天数。举例来说,如果这个参数被设置为 15 天,用户今天修改了密码,那么在 15 天之内他都不能修改密码。这里将天数设置为 15 天。 |
8、设置密码警告天数
# vi /etc/login.defs PASS_WARN_AGE 10 #这个参数控制密码警告的前置天数,在密码即将过期时会给用户警告提示。在警告天数结束前,用户会收到日常警告提示。这可以提醒用户在密码过期前修改他们的密码,否则我们就需要联系管理员来解锁密码。这里将天数设置为 10 天。 |
9、强制用户首次登录时修改默认口令,使用用户自定义初始密码策略
chage -d 0 用户名 |
如图:
(current)UNIX password:
#输入旧密码
New password:
Retype new password:
#输入两次新密码
登录。