我在云中使用虚拟机管理WordPress网站,最近,我注意到许多对xmlrpc的不需要的请求。php组件导致站点运行速度减慢,从而导致高CPU负载。如果是我的话,我会完全禁用它,但该网站使用JetPack插件,它依赖于xmlrpc。
所以,我的问题是:如何允许JetPack访问xmlrpc,同时阻止其他所有人,而不禁用服务器上的xmlrpc?
该站点使用JetPack启用了bruce for protection,fail2ban已启用并正常工作,但似乎无法解决问题。
在进行一些研究时,我发现了以下解决方法:https://www.namehero.com/startup/how-to-safely-disable-xmlrpc-in-wordpress-while-keeping-jetpack/ 但在将这些设置应用于htaccess之后,它会立即停止不需要的请求,但JetPack也会被阻止。所以,它似乎没有按预期工作,或者我做错了。
<Files xmlrpc.php>
Order allow,deny
Allow from 192.0.64.1/192.0.127.254
Deny from all
Satisfy All
ErrorDocument 403 http://127.0.0.1/
</Files>
更新:WordPress表示jetpack需要这些IP地址:
所以,问题还在于,如何将这些IP地址发送到上面的htaccess块?
122.248.245.244/32
54.217.201.243/32
54.232.116.4/32
192.0.80.0/20
192.0.96.0/20
192.0.112.0/20
195.234.108.0/22
192.0.96.202/32
192.0.98.138/32
192.0.102.71/32
192.0.102.95/32
SO网友:Sten
对于白名单,通常先拒绝所有,然后允许。然后继续添加Allow
根据需要输入。尝试以下操作:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 122.248.245.244/32
Allow from 54.217.201.243/32
Allow from 54.232.116.4/32
Allow from 192.0.80.0/20
Allow from 192.0.96.0/20
Allow from 192.0.112.0/20
Allow from 195.234.108.0/22
Satisfy All
ErrorDocument 403 http://127.0.0.1/
</Files>
注意:您问题列表中的最后几个IP包含在前面
CIDR range, 192.0.96.0/20
, 所以我省略了它们。
您可以在此处获取各种Jetpack服务的白名单特定IP地址的最新详细信息:https://jetpack.com/support/hosting-faq/.
我个人使用fail2ban
. 该方法的优点是防止sketchy IP向服务器发出任何其他类型的请求,无论是永久性的还是在一段时间内(根据您的设置)。您可能只需要查看fail2ban设置,并将其重新配置为更紧密。可能有关联to this issue.
值得注意的是,Automatic提供free support 适用于所有Jetpack用户。(完全披露:我在那里工作。)