Fail2ban 防爆破速记:安装、监狱配置与封禁管理
只要服务器开着 SSH,登录日志里迟早会出现成片的失败记录——有人在拿字典挨个试密码。Fail2ban 干的事很朴素:盯着日志,发现某个 IP 短时间内失败太多次,就调用防火墙把它封一段时间。本文把安装、配置和日常管理整理成速记。
安装与启动
Debian/Ubuntu 上一条命令:
apt install fail2ban -y
systemctl enable --now fail2ban
systemctl status fail2ban
装好默认就对 SSH 生效,其它发行版包名相同。先确认服务在跑,再谈调参数。
配置别改原文件
主配置是 /etc/fail2ban/jail.conf,但升级会被覆盖,正确做法是新建 /etc/fail2ban/jail.local,在里面写自己的覆盖项。最常改的就这几个:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
含义是:10 分钟(findtime)内失败 5 次(maxretry),封禁 1 小时(bantime)。封禁时长可以写成 1h、1d 这种形式;想永久封写 -1,但不建议——容易把自己关在门外。
白名单一定要先配
在 [DEFAULT] 里加 ignoreip,把自己的固定 IP、办公出口和跳板机地址填进去,空格分隔:
ignoreip = 127.0.0.1/8 你的固定IP
这一步要在收紧参数之前做。没有固定 IP 的话,至少保留一个网页控制台之类的带外入口,真被误封时还能进去解封。
日常管理命令
fail2ban-client status sshd # 看 sshd 监狱状态和当前封禁列表
fail2ban-client set sshd unbanip IP # 手动解封
fail2ban-client set sshd banip IP # 手动封禁
tail -f /var/log/fail2ban.log # 看封禁动作日志
改完 jail.local 用 systemctl restart fail2ban 生效;也可以用 fail2ban-client reload 热加载。
一个常见误区
Fail2ban 只能拦“失败次数多”的爆破,拦不住用对了密码的登录。真正的安全顺序是:先改成密钥登录并关掉密码认证,再把 Fail2ban 当作减少日志噪音和挡低水平扫描的补充,两者别搞反。
小结
安装一条命令,配置只写 jail.local,先白名单再收紧参数,管理记住 status 和 unbanip。做到这些,服务器的爆破噪音能降一个数量级。
- 点赞
- 收藏
- 关注作者
评论(0)