Centos7登录失败的用户锁定策略配置

在实际工作中为了防止攻击者暴力破解SSH登陆密码,有必要配置登录失败用户锁定策略。

操作系统:Centos7 主机1:192.168.74.205 主机2:192.168.74.129

一、配置PAM

编辑“主机2”的 /etc/pam.d/sshd配置文件。 并添加一行:

#%PAM-1.0
# 添加下边一行策略------------------------------
auth required pam_tally2.so onerr=fail deny=3 unlock_time=300 even_deny_root root_unlock_time=300
# --------------------------------------------
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare
    onerr=fail 表示定义了当出现错误时的缺省返回值; even_deny_root 表示也限制root用户; deny 表示设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户; unlock_time 表示设定普通用户锁定后,多少时间后解锁,单位是秒; root_unlock_time 表示设定root用户锁定后,多少时间后解锁,单位是秒;

二、验证配置

然后进行测试。在“主机1”上用ssh连接“主机2”的账号user。 正常情况: 密码试探: 然后输入正确密码: 依然拒绝连接。

三、解锁用户

然后在“主机2”上使用如下命令解锁用户就可以正常登录了。

pam_tally2 -r -u 用户名

四、使用命令锁定并解锁用户

# 锁定用户
passwd -l $user

# 查看用户状态
passwd -S $user

# 解锁用户
passwd -u $user

五、其他加固建议

可以参考

经验分享 程序员 微信小程序 职场和发展