使用fail2ban或iptables/nftables可有效限制SSH登录频率,降低暴力破解风险。首先推荐fail2ban工具,通过监控日志自动封禁异常IP,配置简单且灵活;其次可用iptables的recent模块或nftables规则直接限制每IP连接速率;同时应禁用root登录、启用密钥认证、修改默认端口并开启详细日志,形成多层防护体系,显著提升服务器安全性。

SSH 是远程管理 Linux 服务器最常用的方式,但也常成为暴力破解和密码猜测攻击的目标。设置 SSH 登录速率限制能有效减缓这类攻击。虽然不能直接在 SSH 服务内部实现限速,但可以通过系统级工具如 fail2ban 或 iptables/nftables 来实现登录尝试的频率控制。
fail2ban 是最常用的日志监控工具,它通过分析 SSH 登录失败日志,自动封禁异常 IP。
sudo apt update && sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 3
findtime = 10m
bantime = 1h
说明:
- maxretry:允许最大失败次数
- findtime:在多长时间内超过失败次数触发封禁
- bantime:封禁时长
sudo systemctl restart fail2ban
如果不想依赖额外服务,可直接用 iptables 设置每 IP 的连接频率。
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 300 --hitcount 4 -j DROP
解释:
- 使用 recent 模块记录新连接
- 如果同一 IP 在 300 秒内发起第 4 次新连接,则丢弃
sudo iptables-save > /etc/iptables/rules.v4
nftables 是 iptables 的替代方案,语法更简洁。
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
nft add rule inet filter input tcp dport 22 ct state new limit rate 3/minute burst 3 packets accept
nft add rule inet filter input tcp dport 22 ct state new counter packets drop
这条规则允许每分钟最多 3 次新连接,超出则丢弃。
速率限制只是防御一层,还需结合其他措施:
基本上就这些。通过 fail2ban 或防火墙规则设置 SSH 登录频率限制,能显著降低暴力破解风险。推荐生产环境同时启用 fail2ban 和密钥登录,安全又省心。
以上就是Linux 安全:如何设置 SSH 登录速率限制 (Rate Limiting)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号