在Linux中,你可以使用iptables和fail2ban来限制SSH服务器的登录尝试次数
首先,确保你已经安装了iptables和fail2ban。如果没有安装,可以使用以下命令进行安装:
对于基于Debian的系统(如Ubuntu):
sudo apt-get update
sudo apt-get install iptables fail2ban
对于基于RHEL的系统(如CentOS):
sudo yum update
sudo yum install iptables fail2ban
配置/etc/fail2ban/jail.local文件以限制SSH登录尝试次数。你可以使用以下配置作为示例:
[DEFAULT]
maxretry = 3
bantime = 600
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log maxretry = 3 bantime = 600
这个配置表示,如果一个IP地址在10分钟内连续3次尝试SSH登录失败,那么该IP将被封禁10分钟(600秒)。
3. 启动并启用`fail2ban`服务以应用更改:
对于基于Debian的系统:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
对于基于RHEL的系统:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
4. 使用`iptables`配置防火墙规则以阻止被封禁的IP地址。你可以使用以下命令自动创建这些规则:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT sudo iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited sudo iptables -A INPUT -f /var/lib/fail2ban/iptables.rules
现在,你已经成功配置了SSH服务器以限制登录尝试次数。当有人连续多次尝试登录失败时,他们的IP地址将被封禁一段时间,从而提高服务器的安全性。