我这套主要是防中国大陆来源 dos 的,不过应该也有些参考价值。
1,用 geolocation 把中国大陆屏蔽了,香港酌情,建议整体屏蔽,因为很多企业用户从香港出的。
2,ASN 屏蔽掉中国电信(两张网),中国联通(两张网),中国移动(别忘了 pccw 的接入点),中国教育网 /科技网 的全部 as 段,尤其是中国电信,在全球有大量 pop 点,很多拉了专线或者虚拟专线的企业用户会从全球 pop 点出,单纯 geolocation 屏蔽不够。
3,屏蔽全部支持支付宝的机房 ASN 和 ip 段。尤其 digital ocean/vultr/banwagong/Oracle 这些。其他中文主机论坛常出现的主也屏蔽。屏蔽有 cn2 接入的机房,这类服务商在官网会有宣传,或者从 ASN peering 找。
4,屏蔽各大 vpn/机场 /公共代理 ip 列表。
5,来自
baidu.com/qihucdn.com 这类 referal 的请求 CDN 上就直接丢弃,不要把流量压到后面。
6,屏蔽 tor/I2P/IPFS 公共中转代理站。
7,浏览器语言是 zh-cn/zh-hans/zh-Hans-CN 一律直接丢弃。(可能会有新马用户误伤)
8,UC/360 等天朝产浏览器标签直接丢弃。还有那些辣鸡天朝产物联网设备浑身是洞,连接特征也很明显,可以比较简单的找到特征丢弃流量。
9,浏览器+8 时区用户强制 recaptcha 一次。
10,js 检测翻译脚本替换文字,发生大概率是中国人。
11,aws 反复换 ip 刷出被墙无法连接的 ip。
12,符合上述中国大陆特征的用户也可以直接反代给***的网站。并且在大陆开会期间多多在社交网站发布,转发。
13,举报网站
分析:
网页请求用户位置,少数人会给,可以对定位在中国大陆境内的,根据其 ip,canvas fingerprint 等信息分析代理。
比较旧的浏览器会泄露插件,某些插件只有中国人在用。
访问时间段,UTC+8 的模式,攻击基本只在上班时间出现。
另外考虑屏蔽掉所有非目标销售地区的访问。
如果服务器和目标用户很近,可以 js 发起测速,凡是延迟上百 ms 的肯定是代理。ip 屏蔽掉。