最近服务器仍然被很多不知名的 IP 地址发起大量的访问,这些访问应该是使用各种脚本以及僵尸爬虫等方式进行的攻击。虽然这些爬虫来自不同的 IP,甚至网段也不尽相同,但研究发现它们通常来自同一个地域或者 ISP。这让我开始关注一个之前没怎么注意过的概念:ASN。
什么是 ASN?
ASN(Autonomous System Number)是自治系统编号,它是用于互联网路由的一个重要标识符。每个 ASN 代表着一个自治系统(AS),通常属于同一个网络运营商、数据中心或大型组织。
举个例子:
- AS45102 属于阿里云
- AS13335 属于 Cloudflare
- AS16509 属于亚马逊 AWS
这就像是互联网世界的”门牌号”,每个大型网络服务提供商都有自己独特的 ASN,方便网络通信和路由管理。
如何查询 IP 对应的 ASN
有多种方式可以查询 IP 对应的 ASN:
- 在线工具:
- bgp.he.net
- ipinfo.io
- whois.ipip.net
- 命令行工具:
whois IP地址
- API 服务:
- IPinfo.io API
- Team Cymru IP to ASN service
Cloudflare 中的 ASN 屏蔽设置
在 Cloudflare 的 WAF 规则中设置 ASN 屏蔽非常直观:
- 登录 Cloudflare 控制台
- 进入 Security > WAF
- 创建新规则
- 在匹配条件中选择 ASN
- 输入要屏蔽的 ASN 号码
- 选择操作(如 Block)
- 保存规则
ASN 屏蔽的优缺点
优点:
- 批量管理:一次性屏蔽整个数据中心或 ISP 的流量
- 更高效:比维护 IP 黑名单更容易管理
- 准确性:可以精确定位恶意流量的来源
- 持久有效:即使攻击者更换 IP,只要在同一 ASN 范围内仍然会被屏蔽
缺点:
- 可能存在误伤:如果屏蔽了大型公共云服务商的 ASN,可能会影响正常用户
- 需要专业知识:正确识别和管理 ASN 需要一定的网络知识
- 实现限制:并非所有防火墙都支持 ASN 级别的屏蔽
- 动态性:ASN 信息可能会变化,需要定期更新
最佳实践建议
- 优先屏蔽已知恶意 ASN
- 避免屏蔽大型公共云服务商的 ASN
- 结合其他安全措施使用
- 定期review屏蔽列表
- 保持监控和日志记录
虽然目前国内的云服务商的安全组大多还没有直接支持 ASN 屏蔽,但随着安全需求的增长,这个功能可能会在未来加入。在此之前,对于使用 Cloudflare 等支持 ASN 屏蔽的服务的用户来说,这是一个值得尝试的安全防护方案。