我已经接管了我工作的一个网站,该网站是由一位以前的员工开发的,最近该网站似乎通过使用xmlrpc pingback成为了一系列DDoS攻击的受害者,日志条目如下所示:
154.16.63.40 - - [22/May/2016:06:52:49 +0100] "POST /xmlrpc.php HTTP/1.1" 200 596 "-" "Googlebot/2.1 (+http://www.google.com/bot.html)"
(显然这不是谷歌机器人,因为谷歌没有理由发布到此文件。)
我相信有很多解决方法(This tutorial) 但我倾向于直接阻止对文件的访问。然而,我不确定这个站点是否实际使用xmlrpc允许您使用的服务。有没有什么特别的方法可以检查之前的开发人员是否已经准备好使用wordpress xmlrpc功能?我是否可以检查特定文件中的功能/是否有任何突出显示以确定用途的内容?
这方面的任何帮助都将是巨大的!
EDIT: 像这样的东西有用吗?
<FilesMatch "^(xmlrpc\\.php)">
Order Deny,Allow
# IP address Whitelist
Allow from xxx.xxx.xxx.xxx
Deny from all
</FilesMatch>
如果我允许从服务器的ip地址,这是否适用于插件等,或者他们是否都有自己的ip地址需要添加?
最合适的回答,由SO网友:dan9vu 整理而成
这看起来像垃圾邮件机器人或枚举,而不是DDoS攻击。当然,您应该查看您的资源消耗、IP地址的动态以及有效负载。
1. Blocking access to xmlrpc.php
file.:
我认为你不应该:
这帮不了你survive a real DDoS attack.作为@cybmeta 他说,这可能会破坏许多第三方服务允许从某些IP访问也没有帮助,因为IP可能是伪造的,并且您无法列出将使用XML-RPC服务的所有IP我经常记录所有向xmlrpc.php
, 使用iptables设置速率限制。然后,阻止那些肯定是邪恶的IP。
2. How to know if your site is using xmlrpc.php
xmlrpc 输入函数名或文件名,以便浏览主题和插件以检查是否有匹配项xmlrpc.php 哪一个
define(\'XMLRPC_REQUEST\', true)
因此,您可以使用:
if ( defined(\'XMLRPC_REQUEST\') && XMLRPC_REQUEST ) {
// Log something.
// Or exit immediately if something is evil in the request.
}
请注意,您不能在主题/插件文件中使用该代码。
xmlrpc.php
独立于主题和插件,因此您必须将其放入
wp-config.php
文件