用 fail2ban + nftables 把 SSH 爆破挡在门外

前两天看了下日志,一天被扫了 4000 多次,决定认真配置一下。

先看现状

grep "Failed password" /var/log/auth.log | wc -l
# 4312

一天 4312 次,平均每 20 秒一次。

配置 fail2ban

/etc/fail2ban/jail.local:

[DEFAULT]
bantime  = 7200
findtime = 600
maxretry = 3
banaction = nftables-multiport
backend  = systemd

[sshd]
enabled = true
port    = 22022

效果

配置后一周的数据:

  • 封禁 IP 数:287 个
  • 剩余失败次数:12 次

基本清零了。

一个坑

如果你的 SSH 端口不是 22,port 一定要写对,不然 fail2ban 会以为一切正常,实际上什么都没封。

另外 nftables 和 iptables 的 banaction 不一样,Debian 12 默认是 nftables,别照抄老教程。

RSS

全部回复 8

备案困难户 萌新 #4

认真回一下:1)测试时间最好标注清楚,不同时段结果差异很大;2)测速节点要说明是在哪个城市、什么运营商;3)单次测试意义不大,建议连续测一周取平均。做到这三点,测评的说服力会强很多。

折腾大王 小玩具 #3

已上车,感谢情报。

运维新兵 小玩具 #2

已上车,感谢情报。

建站小白 萌新 回复 @运维新兵

已上车,感谢情报。

前端打工人 萌新 回复 @运维新兵

这个坑我也踩过,血的教训。

独服玩家 萌新 回复 @运维新兵

这价格可以啊,去看看还有没有货。

退休码农 萌新 #1

已上车,感谢情报。

备案困难户 萌新 回复 @退休码农

这个方案我用了半年,稳定。