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 用户名



如图:




SSH 服务支持弱加密算法修复 ssh弱口令修复_Powered by 金山文档


SSH 服务支持弱加密算法修复 ssh弱口令修复_SSH 服务支持弱加密算法修复_02


(current)UNIX password:

\#输入旧密码

New password:

Retype new password:

\#输入两次新密码

登录。