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

五、其他加固建议

可以参考Linux服务器安全加固10条建议

### 配置 Linux SSH 登录失败锁定用户策略Linux 系统中,可以通过 PAM(Pluggable Authentication Modules)模块配置 SSH 登录失败后的用户锁定策略。以下是具体的配置方法。 #### 备份原始配置文件 在进行任何更改之前,备份原始配置文件以防止意外情况: ```bash sudo cp /etc/pam.d/sshd /etc/pam.d/sshd.bak sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak ``` #### 安装 `pam_faillock` 或 `pam_tally2` 根据系统类型安装所需的 PAM 模块: - 对于 Debian/Ubuntu 系统: ```bash sudo apt install libpam-modules ``` - 对于 CentOS/RHEL 系统: ```bash sudo yum install pam ``` #### 配置 PAM 模块 编辑 `/etc/pam.d/sshd` 文件以添加或修改以下内容: ```bash sudo sed -i '$a auth required pam_faillock.so preauth silent audit deny=5 unlock_time=1800' /etc/pam.d/sshd sudo sed -i '$a auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=1800' /etc/pam.d/sshd sudo sed -i '$a account required pam_faillock.so' /etc/pam.d/sshd ``` 上述命令的作用是: - `auth required pam_faillock.so preauth silent audit deny=5 unlock_time=1800`:在用户尝试登录前记录失败次数,当失败次数达到 5 次时锁定账户,解锁时间为 1800 秒(30 分钟)[^1]。 - `auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=1800`:在登录失败时更新失败计数器,并在达到限制时拒绝登录[^1]。 - `account required pam_faillock.so`:检查用户是否被锁定,并阻止已锁定用户登录[^1]。 #### 配置 SSH 服务 编辑 `/etc/ssh/sshd_config` 文件以调整 SSH 服务的行为: ```bash sudo sed -i 's/#LoginGraceTime 2m/LoginGraceTime 30m/' /etc/ssh/sshd_config sudo sed -i 's/#MaxAuthTries 6/MaxAuthTries 5/' /etc/ssh/sshd_config ``` 上述命令的作用是: - `LoginGraceTime 30m`:设置登录超时时间为 30 分钟[^1]。 - `MaxAuthTries 5`:限制每次连接的最大认证尝试次数为 5 次。 #### 重启 SSH 服务 应用更改后,重启 SSH 服务以使配置生效: ```bash sudo systemctl restart sshd ``` #### 测试与验证 可以使用以下命令测试和验证配置: - 查看用户失败登录记录: ```bash faillock --user <username> ``` - 手动解锁用户: ```bash faillock --user <username> --reset ``` --- ### 注意事项 - 在配置过程中,请确保有其他方式访问服务器(例如控制台或备用 SSH 连接),以防配置错误导致无法登录[^3]。 - 根据实际需求调整 `deny` 和 `unlock_time` 的值,以平衡安全性和用户体验[^3]。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值