![Apache:仅允许来自一个国家的流量](https://linux22.com/image/779089/Apache%EF%BC%9A%E4%BB%85%E5%85%81%E8%AE%B8%E6%9D%A5%E8%87%AA%E4%B8%80%E4%B8%AA%E5%9B%BD%E5%AE%B6%E7%9A%84%E6%B5%81%E9%87%8F.png)
我有一个个人博客,每天只有少数合法点击量。它使用我的母语(非英语),所以我对来自国外的流量不感兴趣。我不卖任何东西。我没有广告。没有货币化。阻止此类流量不会给我带来任何损失。
然而,该网站的流量来自世界各地。所有尝试都是为了寻找漏洞。我安装了 fail2ban,它可以阻止来自单个 IP 地址的尝试,但为时已晚。我只是想阻止来自国外的所有流量。
是的,我知道我的国家也存在攻击者,但没关系。这不是关于阻止所有恶意流量的问题。而是关于阻止外国流量的问题。目前,对于每一个合法的攻击,都有大约一千个非法(外国)攻击。
现在我知道有很多基于地理位置的 IP 列表。但我真的不想使用庞大的列表。我为我的国家/地区生成了一个 IP 范围列表(以允许访问),该列表长度接近 150,000 行。
理想情况下,我希望有一个 Apache 模块可以对传入的 IP 地址进行反向查找,以找出请求来自哪个国家。如果请求来自我的国家/地区之外,则该请求将被阻止。
我搜索了互联网,但没能找到类似的东西。这样的事真的存在吗?或者还有其他方法可以做到这一点?
如果做不到,我可能会通过 Perl 脚本路由所有日志,过滤掉所有非本地流量。这至少能给我干净的日志文件……