我有随机 IP 不断攻击我的 Apache 服务器。我的日志中出现的内容示例如下:
80.108.96.31 - - [18/Aug/2017:16:16:08 +0000] "GET /machine.xml HTTP/1.1" 403 520 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
200.163.163.189 - - [18/Aug/2017:16:16:08 +0000] "GET /machine.xml HTTP/1.1" 403 520 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"
45.51.75.129 - - [18/Aug/2017:16:16:08 +0000] "GET /user.xml HTTP/1.1" 403 517 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
83.130.137.207 - - [18/Aug/2017:16:16:08 +0000] "GET /user.xml HTTP/1.1" 403 517 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)"
180.191.87.191 - - [18/Aug/2017:16:16:08 +0000] "GET /machine.xml HTTP/1.1" 403 520 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3)"
我已经实施了 fail2ban 来检查访问日志并禁止了一年,但最终我得到了这些巨大的访问日志,服务器磁盘被访问日志填满了。请帮忙。
答案1
您可能需要安装 LogRotate 来帮助您保持日志更整洁。
Fail2Ban 可以完成您要做的事情,但是您可能需要创建一些详细的过滤器才能获得您想要的结果,简单地将 Fail2Ban 指向访问日志并设置一个长计时器根本无济于事。
此外,如果您收到那么多请求,则很可能是分布式攻击,而使用 Fail2Ban 一次阻止单个 IP 可能不是最好的方法 - 但是,如果您想这样做,我会专门为 user.xml、machine.xml 以及在给定时间范围内创建超过几个 403 的任何人创建过滤器。
您可能想要创建自己的防火墙规则并丢弃来自世界大部分地区的任何流量 - 您可以找到“已知不良行为者”IP 块列表并禁止所有这些块 - 您还可以对到达您的 IP 进行 WHOIS 查找并提取出它们来自的任何块并开始以这种方式阻止它们。
或者创建防火墙规则或 .htaccess 规则,仅允许来自使用 apache 服务器的已知位置的流量。
但实际上......如果这是一个需要对所有人开放的网络服务器,那么您将无法对它受到的大量攻击采取很多措施,安装 LogRotate,如果您愿意的话,稍微扩展一下 Fail2Ban 规则,然后忘掉它,您永远无法完全停止您所看到的内容,除非您的项目范围允许您专门允许某些 IP 仅访问您的服务器。