限制SSH登录尝试次数是一种常见的安全措施,可以防止暴力破解攻击。以下是几种常见的方法来实现这一目标:
PAM是一种灵活的认证框架,可以用来限制SSH登录尝试次数。以下是具体步骤:
编辑PAM配置文件:
打开 /etc/pam.d/sshd 文件,添加以下行:
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600
解释:
onerr=fail:如果认证失败,立即返回失败。deny=5:允许的最大失败尝试次数。unlock_time=600:锁定时间(秒),在这段时间内用户无法尝试登录。重启SSH服务:
sudo systemctl restart sshd
Fail2Ban是一个入侵防御软件框架,可以监控日志文件并根据配置的规则禁止恶意IP地址。以下是具体步骤:
安装Fail2Ban:
sudo apt-get install fail2ban
配置Fail2Ban:
编辑 /etc/fail2ban/jail.local 文件,添加以下内容:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
解释:
enabled = true:启用该jail。port = ssh:监控SSH端口。filter = sshd:使用默认的sshd过滤器。logpath = /var/log/auth.log:日志文件路径。maxretry = 5:最大失败尝试次数。bantime = 600:锁定时间(秒)。重启Fail2Ban服务:
sudo systemctl restart fail2ban
iptables可以用来限制SSH登录尝试次数。以下是具体步骤:
创建iptables规则:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
解释:
保存iptables规则:
sudo iptables-save > /etc/iptables/rules.v4
设置iptables规则开机自启动:
编辑 /etc/network/if-pre-up.d/iptables 文件,添加以下内容:
#!/bin/sh
iptables-restore < /etc/iptables/rules.v4
然后赋予执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
通过以上方法,你可以有效地限制SSH登录尝试次数,提高系统的安全性。