帮助中心 >  产品文档 >  Linux 登录保护:多次失败自动锁定账户

频繁的登录尝试往往是攻击者试图通过暴力破解获取系统访问权限的迹象。为了应对这一威胁,我们可以通过配置 PAM(Pluggable Authentication Modules)模块来增强系统的登录安全性,限制用户登录尝试次数,并设置合理的解锁时间。我们将分别使用 pam_tally2.so 和 pam_faillock.so 模块来实现这些目标。

 

1.使用pam_tally2.so(centos7)

 

1.1全局配置,包含本地TTY和SSH远程登录

 

目标

使用 pam_tally2.so 模块进一步增强登录安全,限制用户登录尝试次数,并设置解锁时间。

在 /etc/pam.d/system-auth 和 /etc/pam.d/password-auth 文件中配置 pam_tally2.so 模块,以限制用户登录尝试次数,并设置解锁时间。

 

配置步骤

编辑 /etc/pam.d/system-auth 文件,在文件首行添加以下内容:

auth required pam_tally2.so deny=4 unlock_time=300 even_deny_root root_unlock_time=60

 

编辑 /etc/pam.d/password-auth 文件,在文件首行添加以下内容:

auth required pam_tally2.so deny=4 unlock_time=300 even_deny_root root_unlock_time=60

 

1.2只针对SSH远程登录限制

 

目标

仅在SSH远程登录时使用 pam_tally2.so 模块限制用户登录尝试次数,并设置解锁时间。

 

配置步骤

编辑 /etc/pam.d/sshd 文件,在文件首行添加以下内容:

auth required pam_tally2.so deny=4 unlock_time=300 even_deny_root root_unlock_time=60

 

重启SSH服务以使配置生效:

systemctl restart sshd

 

1.3 查看和解锁用户

 

查看锁定用户

使用 pam_tally2 命令查看当前被锁定的用户:

pam_tally2

 

解锁用户

使用 pam_tally2 命令解锁指定用户:

pam_tally2 --user 用户名 –reset

 

2. 使用 pam_faillock.so 模块 (Centos8)

 

2.1全局配置,包含本地TTY和SSH远程登录

 

目标

使用 pam_faillock.so 模块进一步增强登录安全,限制用户登录尝试次数,并设置解锁时间,不针对root用户。

 

配置步骤

编辑 /etc/pam.d/system-auth和/etc/pam.d/password-auth文件,在 auth sufficient pam_unix.so nullok 行的上下分别添加以下内容:

auth required pam_faillock.so preauth deny=3 unlock_time=600
auth sufficient pam_unix.so nullok上下行添加分别添加内容
auth [default=die] pam_faillock.so deny=3
account required pam_faillock.so

image.png


2.2只针对SSH远程登录限制

 

目标

仅在SSH远程登录时使用 pam_faillock.so 模块限制用户登录尝试次数,并设置解锁时间,root用户不例外。

 

配置步骤

编辑 /etc/pam.d/sshd 文件,在 auth 节点中添加以下内容:

auth requisite pam_faillock.so preauth even_deny_root deny=3 unlock_time=180
    
auth sufficient pam_unix.so try_first_pass nullok 行的上下分别添加内容:
    auth [default=die] pam_faillock.so authfail even_deny_root deny=3 unlock_time=180
    auth sufficient pam_faillock.so authsucc even_deny_root deny=3 unlock_time=180

image.png

2.3 查看和解锁用户

 

查看锁定用户

使用 pam_faillock 命令查看当前被锁定的用户:

faillock

 

解锁用户

使用 faillock 命令解锁指定用户:

faillock --user 用户名 –reset

 

注意事项

请确保在配置过程中仔细检查每一行配置,以避免语法错误或配置冲突。配置完成后,建议进行测试以验证配置是否按预期工作。

 

附加说明

deny: 设置允许失败登录的最大次数。

unlock_time: 设置用户在被锁定后自动解锁的时间(秒)。

even_deny_root: 即使是root用户也受限制。

root_unlock_time: 设置root用户在被锁定后自动解锁的时间(秒)。

preauth: 在认证之前进行预认证。

authfail: 在认证失败时记录失败。

authsucc: 在认证成功时记录成功。

 

蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

 

更多技术知识,蓝队云期待与你一起探索。

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: