在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地址将被封禁一段时间,从而提高服务器的安全性。