我有一台运行 virtualmin 的新 CentOS7 Web 服务器。它托管一个刚刚投入生产的新 WordPress 网站。
从今天中午开始,每过一刻钟,我就会开始排除服务器负载高峰的故障。在不同的时间(但主要是在这些高峰期间),access_log 文件会填充数百条条目,如下所示:
50.84.83.122 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
50.79.197.249 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
12.147.195.3 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
207.91.154.164 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
173.241.65.202 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
12.19.212.186 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
71.78.224.10 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
208.69.145.81 - - [25/Mar/2020:22:00:09 -0700] "GET / HTTP/1.1" 301 - "-" "-"
我无法判断这些条目是服务器负载激增的原因还是结果,或者完全是其他原因。缺少用户代理数据也令人费解。
我已经排除了 wp-cron.php 作为罪魁祸首(禁用 cron 并且峰值仍然发生,手动运行,没有峰值)。
我已删除 .htaccess 文件中的所有自定义 301 重定向,禁用了 301 重定向插件,但仍能获取条目。目前唯一可用的重定向是通过 WordPress 常规设置,我已https://example.com作为 WordPress 和站点 URL。
这些条目是什么意思以及它们与服务器负载峰值有何关系?
编辑:附录 - 如果我在其他访问日志中搜索这些 IP 地址,它们只有这些重复的 301 条目(我检查过的所有条目都是每隔几秒或几分钟出现一次,持续超过 48 小时),没有任何其他网页的请求。我几乎认为这是一次攻击?这有道理吗?此服务器上还有另外两个站点(相同的 IP,不同的 SNI),它们的日志看起来正常,没有 301 洪水。我抽查了 IP 地址,看看它们是否在任何黑名单上,结果发现它们很干净。
答案1
这是一次 DDoS 攻击。
在安全顾问的帮助下,我们识别并缓解了针对单个网站的机器人攻击。供将来参考,如果有人遇到类似问题,这些 httpd 条目只是一个线索。IP 地址从未请求过其他页面,来自之前主机的日志有类似的条目,DNS 日志分析,以及对 httpd 日志的深入分析等,都得出了这个结论。攻击已在网络级别得到缓解。