CentOS 7 – 阻止某些国家(菲律宾,俄罗斯,中国)

我经营的网站只与某些地方的客户打交道。

最近,我的负载平衡器正受到菲律宾/俄罗斯/中国的要求。 邮件机器人,蛮力攻击等

有阻止这三个国家访问我的网站的简单方法吗? (国家代码块?)我看到很多关于使用IP表,但即时通讯使用我的CentOS7负载平衡器Firewalld ..

任何build议?

谢谢,克里斯

我不会太担心哪个国家,而是看看那些引起反感行为的IP地址和IP地址。

试图封锁国家是有问题的,而且容易出错。 你会试图追查每个国家的特定ISP和他们的IP地址块。

我会使用日志和其他来源来列出不正确的IP地址列表,将其卷入子网,然后阻止这些子网。 定期重访。

绝对是一个更适合防火墙和负载平衡器的工作,但iptables或firewalld可以做到这一点,但你的主机将不得不查看和处理stream量,而不是阻止更远的上游。

更像是fail2ban( http://www.fail2ban.org/wiki/index.php/Main_Page )而不是像“阻挡中国”

过去为此我使用了防火墙。 试图在CentOS或专用Web服务器上执行此操作很困难,因为这往往是更多的networking问题。

我会研究防火墙解决scheme,并阻止IP范围。 我知道这并不是直接回答你的问题,而是回答我过去所做的事情。

你会惩罚整个国家的一小撮坏人。 更糟的是,你也会错过来自其他国家的坏人。

正如Tep所说,Fail2Ban对此非常理想。 还要确保你有一个像mod_security或naxsi的WAF。 然后在混合中添加repsheet以获得更好的效果,而不仅仅是攻击基于签名的保护,还有基于行为/信誉的监控。

如果你真的想阻止国家,但与防火墙的路线斗争,看看你的networking服务器是否可以做到这一点,如Nginx可以。

将不需要的国家路由到一个更便宜的应用程序: https : //www.digitalocean.com/community/tutorials/how-to-use-nginx-as-a-global-traffic-director-on-debian-or-ubuntu

阻止不需要的国家/地区: http : //nginxlibrary.com/ip-based-country-blocking/

最好不要阻止这些国家的合法用户! 这可能是一个美国/欧洲/无论您的商业或假期的目标市场。

我有这个问题,正如tep所说,pipe理IP块可能会很棘手。 然而,我发现一个地方,使用BGP(主要互联网路由协议)汇总和pipe理每个国家的IP块列表,我发现他们是非常准确的。

http://www.ipdeny.com/

然后,为了让我的生活变得简单,我写了一个脚本,从上面的站点中抽取用户定义的国家列表,聚合并格式化IP,并将它们注入到您最喜欢的防火墙包中。 目前它支持pf,ipfw,iptables,ipset和现在的iptablesreplacenftables。 你可以在这里抓住它的github:

https://github.com/KaiLoi/update-fw-BC

我只是从cron运行它,并select了我的名单前十名黑客国家,黑客攻击我的服务器已经非常蒸发。 我的服务器上的fail2ban是无聊的树。 ;)