pam_tally2模块曾经用于在一定次数的 SSH 登录尝试失败后锁定用户帐户,但由于具有更多的灵活性和安全性选项,该模块已pam_faillock被基于 RHEL 的发行版和其他现代 Linux 发行版弃用并被其取代。

以前,该pam_tally2模块负责计算登录失败次数并锁定账户。但是,作为安全性改进的一部分,pam_faillock通过提供更好的集成和更多的配置选项,该模块已成为新版 Linux 中管理登录失败次数的标准。

从 pam_tally2 过渡到 pam_faillock

虽然它pam_tally2由两部分组成 -pam_tally2.so和pam_tally2命令 – 但已被逐步淘汰,取而代之的是pam_faillock,旨在以更安全、更灵活的方式处理登录尝试。

pam_faillock提供类似的功能,但有所改进,例如:

增强了失败尝试的记录和报告。

更好地处理帐户锁定策略。

支持配置登录尝试失败次数的限制以及超时后的自动帐户解锁。

本文演示了如何使用pam_faillock模块配置在一定次数的登录尝试失败后 SSH 帐户锁定。

如何使用 pam_faillock 锁定和解锁用户帐户

根据您的系统和您正在配置的服务,打开两个 PAM 配置文件/etc/pam.d/password-auth和。/etc/pam.d/sshd

sudo vi /etc/pam.d/password-auth
sudo vi /etc/pam.d/sshd

将以下行添加到该部分的开头auth以配置失败登录尝试策略:

auth        required      pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200
auth        [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=1200

将以下行添加到该account部分以启用登录失败的帐户管理:

account     required      pam_faillock.so

参数解释:

deny=3:3 次尝试失败后拒绝访问。

even_deny_root:将该策略也应用于 root 用户。

unlock_time=1200:20 分钟(1200 秒)后自动解锁帐户。如果您希望帐户保持锁定状态直到手动重置,请删除此选项。

audit:将失败的登录尝试记录到系统审计日志中。

现在打开/etc/security/faillock.conf文件并指定多少次失败尝试将触发锁定以及锁定期限的持续时间。

# Number of allowed failures before lockout
deny = 5

# Lockout duration in minutes
unlock_time = 15

# Path to the faillock database
# Optional: You can specify where to store faillock information
# faillock_path = /var/lib/faillock

接下来,打开/etc/ssh/sshd_config文件并启用以下设置以使用 PAM 进行 SSH 身份验证。

UsePAM yes

要应用更改,请重新启动 SSH 服务:

sudo systemctl restart sshd

如何测试 SSH 帐户锁定功能

保存上述配置后,您可以通过对 SSH 服务器进行 3 次失败的登录尝试来测试登录锁定机制。

ssh user@192.168.0.10

user@192.168.0.10's password:
Permission denied, please try again.
user@192.168.0.10's password:
Permission denied, please try again.
user@192.168.0.10's password:
Account locked due to 3 failed logins

如何检查用户 SSH 登录失败

要检查特定用户的失败登录尝试,请使用以下命令:

sudo faillock --user username

示例输出:

Login           Failures  Latest failure     From
user                3     10/17/2024 14:15   192.168.0.5

如何重置或解锁用户帐户

要重置失败的尝试并解锁用户帐户,请使用以下命令:

sudo faillock --user username --reset

此命令清除失败尝试次数并解锁用户。

验证用户账户是否已解锁

您可以通过再次运行 faillock 命令来确认帐户是否已解锁:

sudo faillock --user username

如果没有失败的登录尝试,则输出将为空,表明用户帐户已解锁。

总之,该pam_faillock模块提供了一种改进的、更安全的方式来管理失败的登录尝试,取代了现在已弃用的pam_tally2。请确保更新您的 PAM 配置文件以pam_faillock保持与最佳实践和安全标准同步。

pam_faillock欲了解更多信息,您可以使用命令行中的man 。

man pam_faillock

 

相关推荐
人工智能训练如何影响计算资源的需求?
近年来,人工智能的格局发生了显著变化,计算资源在这一转变中起到了至关重要的作用。随着我们从小规模模型向大规模训练转变,对计算能力的需求急剧上…
头像
技术指南 2024-10-27
866
如何搭建《方舟:生存升级》的独立服务器?
当您的游戏环境成功启动后,吸引玩家的关键在于有效的推广策略。随着《方舟:生存升级》在游戏界的热潮,许多玩家希望搭建自己的独立服务器,以获得个…
头像
技术指南 2024-10-27
387
独立IP地址为您的网站带来的优势是什么?
如果您在使用共享IP服务器时遇到问题,例如网站因攻击而停机,那么可能是时候考虑升级到独立IP了。本文将引导您完成从共享IP到独立IP的转换,…
头像
技术指南 2024-10-27
547
如何解决在联想服务器上运行CentOS时的驱动冲突问题?
许多系统管理员和服务器租赁提供商在联想服务器上运行CentOS时会遇到兼容性问题。本文将深入探讨这些问题的根源,并提供切实可行的解决方案,以…
头像
技术指南 2024-10-26
245
为什么服务器租用提供商会将服务器禁ping?
在服务器租赁和管理领域,您可能会发现服务器会阻止Ping请求。这种现象被称为“Ping阻止”或“ICMP过滤”,在服务器租赁提供商和管理员中…
头像
技术指南 2024-10-26
939
如何选择合适的视频聊天服务器租赁方案?
在挑选合适的视频聊天服务器租赁方案时,有几个重要因素需要考虑。视频聊天应用程序需要稳定且强大的服务器解决方案,以确保用户享受到流畅的交流体验…
头像
技术指南 2024-10-26
892