小陶在网上逛的时候,发现了一个BadIP网站。众所周知前段时间小陶的博客被各种恶意攻击,所以对于网络安全非常地敏感。看到这个网站感觉还是比较香的,仔细看了看,是《江苏极元信息技术有限公司》分享的,应该是专门为企业做WEB WAF的。虽然咱们这种个人博客小站自然是没钱去做这种专门的防护墙服务,因为一般都是几千甚至几万一年。但是人家公司分享了危险ip,为什么咱们不拿来用一用呢。于是小陶就想着自己写了一个脚本,对于危险IP进行动态封禁。
BadIP-全球网络威胁动态狩猎与情报共享计划,致力于长期主动追踪各类活跃网络安全威胁。基于极元BadIP-全球网络威胁动态狩猎系统,实时免费分享活跃的网络空间威胁情报。
BadIP每一天都在分享恶意ip,但是根据小陶的经验,大部分恶意ip都是肉鸡,永久封禁根本没有啥用,最好是动态封禁ip,比如每一天的IP都封禁3天。如果3天后的危险ip中不再有了,那么就可以解除封禁了。
于是小陶就根据BadIP网站写了一个自动更新封禁的IP脚本,采用Nginx来进行封禁。这里可能有小伙伴问,为什么使用Ngixn封禁ip而不是Linux内置的防火墙呢?Nginx 拉黑 IP针对性强,只影响Web服务,我们想做的就是禁止这些恶意IP访问我们的网站。使用基于iptables的防护墙进行防护的话适用于需要彻底封禁IP的场景,全面阻止IP的所有访问,包括Web、SSH等。
实际上对于咱们这种动态封锁肉鸡,没必要使用iptables。更何况小陶的防火墙规则是只允许CDN节点访问,别的IP都禁止了。(见文《如何设置仅限CDN节点ip回源服务器_firewalld/iptables防火墙》、《本站使用宝塔面板设置仅限CDN的ip回源80和443端口,防止恶意爬虫和扫描》)。