【一键梭哈】懒人必备!我把 Fail2ban + 静态黑名单 + ASN 封禁融合成了一个脚本!

哈喽,各位佬!

还记得上回咱们讨论怎么让服务器更安全、屏蔽掉那些烦人的扫描器吗?
原帖在这:https://linux.do/t/topic/949334

当时聊得挺 high,我就琢磨着能不能把这事儿弄得再简单点,最好是一键搞定。于是,利用午休和摸鱼的时间,我把这些想法搓成了一个 Shell 脚本,现在分享给大家。

这玩意儿能干啥?

简单说,它就是一个“智能主动防御工事”:

这是一个功能强大的 Shell 脚本,旨在通过 iptablesipset 构建一个智能、高效、且具备“自我学习”能力的主动防御防火墙体系。它不仅能加载你自己准备的静态黑名单(IP、IP段、甚至整个 ASN),更能深度整合 Fail2ban 的动态封禁能力,把那些被 Fail2ban 临时拉黑的 IP 自动抓出来,扔进一个永久的黑名单里。

核心亮点就是:

  1. 一键梭哈,无人值守:新开一台 VPS,一条命令下去,它能自己装好 fail2banipset 这些依赖,自己创建好 SSH 防护,自己加载黑名单,全程不用你操心。
  2. 性能拉满:不管你加一万个还是一百万个 IP 到黑名单,它都用 ipset 处理,对系统性能影响极小。再也不用担心 iptables 规则太多拖慢速度了。
  3. 自动“学习”fail2ban 抓到的新坏蛋,下次脚本一跑,就直接录入“永久黑名单档案”,实现“一次被抓,终身拉黑”的效果。
  4. 高度兼容:脚本能自动识别你的系统是 Debian 系还是红帽系,还能智能处理被压缩过的历史日志文件。

懒人专用一键指令:

想直接开干的佬,下面这条命令复制到 SSH 里,回车就行了:

curl -sSL https://raw.githubusercontent.com/dovetaill/block_threat_ip/master/install.sh | sudo bash

(友情提示:命令是通过管道 | 交给 sudo bash 执行的,不放心的佬可以先把 install.sh 的内容扒下来瞅瞅。)


喜欢自己动手 & 持续更新:

想自己维护黑名单,或者看看代码的,可以直接访问项目仓库:
https://github.com/dovetaill/block_threat_ip

详细的用法、如何自定义黑名单、怎么查看封禁效果,里面的 README.md 文档都写得明明白白了。


最后,也是最重要的提醒!

  1. ASN 封禁是大杀器! 如果你在自己的 .txt 文件里加了 ASN 编号(比如 AS14061 DigitalOcean),那 DO 家的所有 IP 就都跟你拜拜了。虽然能干掉一大片坏人,但也可能误伤友军,用之前一定想清楚。
  2. 脚本运行完,最好自己测试一下!比如让你朋友 ping 一下你的服务器,或者用手机流量访问一下你的网站,确保没问题。万一哪个提供 CDN 服务的佬友不幸地躺在黑名单里,那乐子就大了…

欢迎大家试用、拍砖、提 issue,或者有什么新想法,我们接着在这个帖子里聊!

92 个赞

感谢分享

不错不错!

star一下,等业务中用到

感谢分享

1 个赞

感谢分享! :bili_019:

感谢分享!有时间试试 :saluting_face:

佬太强了!

太强了,大佬。

MD这波喂饭相当可以!

静态列表处理了好久,现在黑名单条目多少条了

3.3万吧,确实挺久看看能优化么

直接拉TXT文件是不能快点

也不快,主要是写规则一条一条的

把所有IP写到临时文件,再用ipset restore添加呢

有道理,我有空试试,感谢

为啥要禁用firewalld,我觉着用firewalld的ipset更合适

因为我的机器都是debian12,iptable用的比较多,firewalld确实接触较少,看看能改改么,同时兼容firewalld

感谢佬分享!

我没用过debian,不了解,如果是iptable 用的多,那就不用改