Fail2ban防御暴力破解需日志监控、规则触发、封禁动作三者协同,不替代强密码但可大幅降低自动化攻击成功率;安装后须手动配置jail.local,确保ignoreip、logpath、banaction三项精准匹配。

用 Fail2ban 防御 Linux 上的暴力破解,核心不是“装上就完事”,而是让日志监控、规则触发、封禁动作三者严丝合缝。它不替代强密码或密钥登录,但能大幅降低自动化脚本的成功率和干扰量。
不同系统命令略有差异,但逻辑一致:先确保仓库可用,再安装,最后启用服务。
sudo apt update && sudo apt install -y fail2ban && sudo systemctl enable --now fail2ban
sudo dnf install epel-release -y && sudo dnf install -y fail2ban && sudo systemctl enable --now fail2ban
sudo dnf install -y fail2ban && sudo systemctl enable --now fail2ban
安装后服务默认不启用任何防护 jail(监禁规则),必须手动配置才生效。运行 sudo systemctl status fail2ban 确认 Active: active (running),说明后台进程已就绪。
永远不要直接编辑 /etc/fail2ban/jail.conf。它会被升级覆盖。正确做法是创建 /etc/fail2ban/jail.local(全局覆盖)或 /etc/fail2ban/jail.d/*.local(模块化管理)。
推荐最小可行配置示例(适配多数场景):
[DEFAULT] ignoreip = 127.0.0.1/8 ::1 192.168.1.100 # 替换为你自己的管理IP bantime = 1h # 封禁1小时(可设为 86400 或 -1 永久) findtime = 10m # 10分钟内统计失败次数 maxretry = 5 # 累计失败5次即触发封禁 backend = systemd # 推荐,比 file 轮询更准、更省资源 <p>[sshd] enabled = true port = ssh # 若改过SSH端口,这里写具体数字如 2222 logpath = /var/log/auth.log # Ubuntu/Debian 路径</p><h1>logpath = /var/log/secure # CentOS/Rocky 路径</h1><p>filter = sshd banaction = firewallcmd-ipset # 配合 firewalld(Rocky/CentOS 默认)</p><h1>banaction = iptables-multiport # 配合 iptables(旧系统或自定义环境)</h1>
关键点:
ignoreip 必须填你常用登录的公网或内网IP,否则可能把自己锁在外面;
logpath 必须和真实 SSH 日志路径一致,错一条路径,Fail2ban 就完全“看不见”攻击;
banaction 要匹配你实际启用的防火墙服务(firewalld 或 iptables),否则封禁动作无效。
配置保存后,重启服务:sudo systemctl restart fail2ban。然后分三步确认:
sudo fail2ban-client status sshd → 显示 “Number of jail: 1” 和 “Status: started” 表示 jail 已加载sudo journalctl -u fail2ban -n 20 -f → 尝试用错误密码连 SSH,应看到类似 “Found xxx.xxx.xxx.xxx” 和 “Ban xxx.xxx.xxx.xxx” 的记录sudo fail2ban-client status sshd → 输出中 “Banned IP list” 下应出现被封 IP如果没反应,优先检查:
– sudo tail -20 /var/log/auth.log 是否真有 “Failed password” 记录;
– sudo fail2ban-client get sshd logpath 输出是否和日志实际路径一致;
– sudo firewall-cmd --list-rich-rules | grep fail2ban(firewalld)或 sudo iptables -L f2b-sshd(iptables)是否生成了规则。
封禁不是一劳永逸,要兼顾防护与可用性:
sudo fail2ban-client set sshd banip 203.0.113.42
sudo fail2ban-client set sshd unbanip 203.0.113.42
sudo fail2ban-client stop sshd(排查问题时用)sudo fail2ban-client status
注意:解封后 IP 不会自动重试登录,但下次再触发规则仍会被封。若发现某 IP 频繁误触(比如公司出口 NAT 共享 IP 下多个用户输错),可调高 maxretry 或加入 ignoreip。
基本上就这些。Fail2ban 不复杂,但容易忽略日志路径、防火墙匹配、白名单设置这三个关键点。配好之后,每天少看几百条失败登录告警,服务器也安静不少。
以上就是Linux暴力破解如何防御_使用fail2ban自动封禁策略深入说明【技巧】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号