前言:
作为一个站长,你是否经常收到来自香港 IDC 的各种端口扫描?
是否厌倦了看到日志里满屏的 UCLOUD INFORMATION TECHNOLOGY (HK) LIMITED?
是否试过封 IP,但总有新的 IP 来骚扰?
今天,我要分享一个暴力但优雅的解决方案...
正文:
🤔 事情是这样的...
某天深夜,我照例查看服务器日志,发现又双叒叕被 UCLOUD 香港的 IP 扫描。这些 IP 就像打不完的小怪,封了这个又来那个...
看看我的日志:
Failed password for root from 43.xxx.xxx.xxx port 48526 ssh2
Failed password for root from 43.xxx.xxx.xxx port 48892 ssh2
Failed password for root from 43.xxx.xxx.xxx port 49106 ssh2
...(省略 1000 条类似记录)
😠 忍无可忍,无需再忍
在封了第 108 个 IP 后,我终于忍不住了:
"为什么要一个个 IP 封禁?直接封掉整个 ASN 不就完事了?"
一查发现这些 IP 都来自 AS135377,也就是 UCLOUD HK 的 ASN。
ASN查询:https://ping0.cc/as/AS135377
🎯 解决方案
于是我写了这个脚本,只需要:
curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/asn-blocker.sh && chmod +x asn-blocker.sh && ./asn-blocker.sh
选择菜单1,输入:AS135377 一键封禁,干净利落!从此再也不用看到这些烦人的扫描了~
😎 效果立竿见影
注意要选择菜单5:安装系统服务 然后启动服务,使其生效,再添加ASN
可以在一段时间后查看数据包:
iptables -L INPUT -v -n | grep "blocked-asn" | awk '{match($0,/blocked-asn-([0-9]+)/,a); printf "ASN %-12s packets: %-4s bytes: %-6s\n", a[1], $1, $2}'
🤓 技术原理
这个脚本会:
- 自动获取指定 ASN 的所有 IP 段
- 使用 ipset 高效管理 IP 列表
- 配置防火墙规则一键封禁
- 还可以随时优雅地解除封禁
📝 小贴士
- 不建议随意封禁 ASN,要谨慎使用
- 建议先查清楚 ASN 的身份,避免误伤
- 如果是正常业务相关的 ASN,要三思而后行
🤪 彩蛋
其实还有个更暴力的操作,一次性封禁多个 ASN
sudo ./asn-blocker.sh --add AS135377 AS202306 AS14061
🔚 结语
工具的诞生往往源于需求。
这个脚本虽然简单,但确实解决了我的烦恼。
希望也能帮助到同样被困扰的你!
为何UCLOUD这种大厂会来扫SSH?
是不是有人租了UCLOUD的机器来扫的,那直接投诉阿。
@gabcarwin #1 ssh扫的不多,更多是扫后台,漏洞扫描之类,会导致服务器负载很高,投诉没用的
好贴帮顶,实战派
好文,赏
你这个脚本太牛X了
牛逼class, 不明觉厉
MARK
不明觉历
明白了,这就在goedge里封掉整个ucloud,其实正经用户也不会用这个来访问的,遇到扫描、伪装正经爬虫的,我一般都是直接封半年起,清净