在Linux中,有时候出于安全考虑需要在一定的登陆尝试次数失败后锁定用户账户来防止恶意攻击和暴力破解等行为。以下是两种常用的锁定用户账户的方法:
方法一:使用pam_tally2
1. 安装pam_tally2
pam_tally2是一个账户锁定模块,提供了一种在用户尝试次数达到限制后锁定账户的方式。
要使用pam_tally2,需要先安装它。在Debian系列的Linux中,使用以下命令进行安装:
sudo apt-get update && sudo apt-get install libpam-tally2
2. 配置pam_tally2
在配置pam_tally2之前,需要注意以下几点:
- pam_tally2需要进行权限配置,只会对有权限的用户有效。
- pam_tally2只会在用户认证过程中计数。
编辑/etc/pam.d/common-auth文件,在文件末尾添加以下行:
auth required pam_tally2.so deny=5 unlock_time=120 fail_interval=10
这里解释一下各个参数的含义:
- deny:表示达到锁定阈值后deny用户,默认为0代表禁止登录。
- unlock_time:表示锁定的时长,在此时间内无法登录,默认为0代表需要管理员手动解锁。
- fail_interval:表示认证尝试失败的时间间隔,单位为秒,默认为0代表不启用此功能。
3. 测试pam_tally2
在配置修改完成后,需要重新启动ssh服务,将修改的内容生效:
sudo systemctl restart ssh
之后,可以进行测试,使用错误的密码进行多次尝试,在5次失败后,会自动锁定账户,并提示:
login: user
Password:
Password:
Password:
Password:
Password:
Account locked due to 5 failed login attempts; please contact your system administrator
在120秒后即可自动解锁。
方法二:使用fail2ban
fail2ban是一个基于日志的安全应用程序。它监控系统日志,发现恶意行为后自动加入防火墙规则或锁定账户。
以下是在Debian系列的Linux中使用fail2ban来锁定账户的方法:
1. 安装fail2ban
使用以下命令进行安装:
sudo apt-get update && apt-get install fail2ban
2. 配置fail2ban
fail2ban的配置文件是/etc/fail2ban/jail.local。通过修改此文件,可以修改规则和行为。
在文件末尾添加以下规则:
[ssh]
maxretry = 5
bantime = 120
这里解释一下各个参数的含义:
- maxretry:表示达到锁定阈值后锁定用户。
- bantime:表示锁定的时长,单位为秒。
3. 测试fail2ban
在配置文件修改完毕后,需要重新启动fail2ban服务:
sudo systemctl restart fail2ban
之后,可以进行测试,使用错误的密码进行尝试,在5次失败后,会自动锁定账户并加入防火墙规则。在120秒后,规则会自动解除。
参考示例:
在Debian系列的Linux中,可以通过以下方式查看fail2ban的防火墙规则:
sudo iptables -L
可以发现,在5次失败后,系统自动加入了以下规则:
Chain fail2ban-ssh (1 references)
target prot opt source destination
REJECT all -- 45.118.134.133 anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
其中,45.118.134.133为攻击者的IP地址。这样,攻击者从此IP地址进行访问将会被拒绝。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux尝试登录失败后锁定用户账户的两种方法 - Python技术站