首页 > 运维 > linux运维 > 正文

Linux 安全:如何设置 SSH 登录速率限制 (Rate Limiting)

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

linux 安全:如何设置 ssh 登录速率限制 (rate limiting)

SSH 是远程管理 Linux 服务器最常用的方式,但也常成为暴力破解和密码猜测攻击的目标。设置 SSH 登录速率限制能有效减缓这类攻击。虽然不能直接在 SSH 服务内部实现限速,但可以通过系统级工具fail2baniptables/nftables 来实现登录尝试的频率控制。

使用 fail2ban 实现 SSH 登录限速

fail2ban 是最常用的日志监控工具,它通过分析 SSH 登录失败日志,自动封禁异常 IP。

  • 安装 fail2ban(以 Debian/Ubuntu 为例):

sudo apt update && sudo apt install fail2ban

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

  • 编辑 jail.local 文件:

sudo nano /etc/fail2ban/jail.local

  • 确保 [sshd] 段配置如下:

[sshd]
enabled = true
maxretry = 3
findtime = 10m
bantime = 1h

说明:
- maxretry:允许最大失败次数
- findtime:在多长时间内超过失败次数触发封禁
- bantime:封禁时长

  • 重启服务生效:

sudo systemctl restart fail2ban

使用 iptables 限制 SSH 连接频率

如果不想依赖额外服务,可直接用 iptables 设置每 IP 的连接频率。

  • 限制每个 IP 每 5 分钟最多 3 次新连接:

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set

猫眼课题宝
猫眼课题宝

5分钟定创新选题,3步生成高质量标书!

猫眼课题宝 262
查看详情 猫眼课题宝

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 次新连接,则丢弃

  • 保存规则(Debian/Ubuntu):

sudo iptables-save > /etc/iptables/rules.v4

使用 nftables 替代 iptables(现代方式)

nftables 是 iptables 的替代方案,语法更简洁。

  • 创建规则集限制 SSH 尝试:

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 次新连接,超出则丢弃。

补充安全建议

速率限制只是防御一层,还需结合其他措施:

  • 禁用 root 直接登录:修改 /etc/ssh/sshd_config 中 PermitRootLogin no
  • 使用密钥认证代替密码
  • 更改默认 SSH 端口(可选)
  • 启用详细日志:LogLevel VERBOSE 可帮助追踪攻击源

基本上就这些。通过 fail2ban 或防火墙规则设置 SSH 登录频率限制,能显著降低暴力破解风险。推荐生产环境同时启用 fail2ban 和密钥登录,安全又省心。

以上就是Linux 安全:如何设置 SSH 登录速率限制 (Rate Limiting)的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号