防止 access.log 中出现空的 apache 请求

防止 access.log 中出现空的 apache 请求

在我的 access.log 文件中,我发现了数百行这样的空请求

mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:20 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"
mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:24 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"
mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:24 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"
mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:20 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"

它们都来自同一个 IP 地址,有时每秒大约有 3-5 个请求。

我从这个答案中读到 https://serverfault.com/a/386136/210624

换句话说,这可能是有人打开和关闭了端口 80 的连接,但没有发送或接收任何数据。

但与这个问题不同的是,我的响应代码是 200,

问题1:25491在这种情况下数字代表什么意思?

问题2:这可能是一次 dos 攻击吗,因为在那段时间里,我看到我的 VPS 统计数据显示 CPU 使用率很高。

问题3:我能以某种方式阻止这种请求吗?比如说,使用 fail2ban 或其他方式阻止 IP 地址?

谢谢

更新:我刚刚数了一下,在 20 分钟内,我收到了来自同一个(且只有那个) IP 地址的约 8000 次点击,所有行都如上所示

答案1

1:25491 是您的服务器返回的响应的大小(以字节为单位)。

2:根据描述,这可能是某种低级 DoS 攻击。很可能是“机器人”。

3:fail2ban 是个好主意。您可以按照以下方式设置过滤器正则表达式(未经测试!):

\[<HOST>\] - - \[.*\] "GET / HTTP/1.[01]" 200 \d+ "-" "-"

然后将其放入监狱中,最大重试次数为 100,查找时间为 60 秒。

相关内容