最近我们有很多点击wordpress xmlrpc.php这最终导致服务器的高负载。
我们尝试将所有xmlrpc.php重写为127.0.0.1,但没有多大帮助。 由于Apache仍在处理连接。 最后,我们阻止了这种连接
iptables -I INPUT 1 -p tcp –dport 80 -m string –string“xmlrpc.php”–algo bm -j DROP
不幸的是,所有这些都导致使用像jetpack等xmlrpc.php插件的问题。
任何人都有这种问题的经验,并有一些build议如何处理?
编辑:是否有可能添加额外的规则,这将允许从wordpress IP范围访问? 由于阻止规则正在使用string,该规则将如何显示?
您描述的防火墙规则有两个问题:
你应该为它做一些限制,而不是仅仅阻止一切。
由于性能原因,在防火墙中使用string模块并不是很明智。
你最好的select是把HAProxy放在Apache前面。 你可以看看我的回答在这篇文章中有关如何做到这一点和为什么的更多细节。
我个人在这类事情上的经验是避免“修补”这个问题。 不要阻止一个机器人击中一个链接。 其他机器人只会进来,打其他链接。 你需要设置一些暴力/ DOS的保护,将阻止对你的服务器重复点击。
ModSecurity非常适合这个,如果你使用apache作为你的web服务器的话,它是一个内置的apache。
如果你不是你提到的WordPress的。 WordPress的有多个插件阻止这种重复的活动。 WordFence是一个很好的,我们已经与我们的客户使用成功。
总的来说,我build议你解决根本原因,而不是试图修复单一的实例。
我的build议是关于这个问题,请尝试通过添加此代码来阻止访问
.htaccess <Files "xmlrpc.php"> Order Deny,Allow Deny from all </Files>