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

用 Fail2ban 防御 Linux 上的暴力破解,核心不是“装上就完事”,而是让日志监控、规则触发、封禁动作三者严丝合缝。它不替代强密码或密钥登录,但能大幅降低自动化脚本的成功率和干扰量。
安装与基础服务启动
不同系统命令略有差异,但逻辑一致:先确保仓库可用,再安装,最后启用服务。
- Ubuntu/Debian:
sudo apt update && sudo apt install -y fail2ban && sudo systemctl enable --now fail2ban - RHEL/CentOS/Rocky 8+:
sudo dnf install epel-release -y && sudo dnf install -y fail2ban && sudo systemctl enable --now fail2ban - Fedora:
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),否则封禁动作无效。
标签: linux word centos 防火墙 端口 ubuntu ai dnf 配置文件 日志监控 解封
还木有评论哦,快来抢沙发吧~