我最近使用easyengine将几个站点迁移到了一个新服务器上,它为每个WP网站创建了一组单独的docker映像。在我的服务器内部,每个站点都有一个专用IP(172.x.x.x),当然,在外部,域通过dns路由到指定的外部服务器,并正常提供服务。我注意到,我迁移的几个站点出现了登录失败的情况(如活动日志插件所示),这些站点没有引用,似乎来自服务器本身的私有IP。当我检查日志时,我在故障发生的准确时间看到如下条目:
172.19.0.1 - - [29/Oct/2021:10:20:27 +0000] "POST /wp-cron.php?doing_wp_cron=1635502827.4259769916534423828125 HTTP/1.1" 200 31 "https://mysitename.com/wp-cron.php?doing_wp_cron=1635502827.4259769916534423828125" "WordPress/5.8.1; https://mysitename.com"
有时,日志显示相同的内部IP试图发布到xmlrpc和几个其他文件。
尽管我已经设置了wordfence,它应该会阻止失败的登录尝试,但它会忽略这些尝试(我假设是因为它们是本地的私有IP),所以它们永远不会被阻止。似乎还没有人能够登录,但这非常令人担忧,我还无法找到它。以下是我注意到的事情以及我对这项活动的疑问:
有人可能从外部请求中欺骗内部IP吗?这似乎不太可能,因为这只发生在来自同一台旧服务器的两个站点上,其他站点似乎仍然没有受到影响我仔细检查了所有文件,没有发现任何恶意代码。我已经在其中一个上完全重新安装了WP,并使用WP导入器导出和重新导入(而不是直接复制db),但仍然有这些尝试,我找不到任何关于此类黑客的参考,有人知道如何追踪它吗
到目前为止,所有这些尝试都没有猜到现有用户名,并且都未能登录谢谢!
最合适的回答,由SO网友:Stephen 整理而成
好吧,花了一段时间,但我弄清楚了这里发生了什么,结果是:任何好事都会受到惩罚。
在设置服务器时,我启用了IPv6,因为我想成为一个好的互联网公民,帮助我们集体迁移到IPv6。我选择easyengine来管理我的WP站点,它为每个网站使用非常隔离的docker容器Easyengine设置了一个nginx反向代理容器,将所有请求传递给相应的站点/容器反向代理设置的问题是,如果原始请求来自IPv6地址,代理将把该地址更改为本地IPv4 IP,然后再将其传递给容器网站这意味着任何wordpress黑客发送命令、错误登录尝试、从IPv6地址获取的信息都不会被任何安全软件(如wordfence)阻止,因为它看到了本地IP,因此不会阻止它
而且,在ee docker容器上启用IPv6支持远非易事,我还无法做到这一点。所以现在我已经在服务器上禁用了IPv6以阻止这些攻击。当/如果我找到一种简单的(ish)方法在easyengine上运行的docker容器上启用IPv6反向代理,我将返回这里提供更多信息。
这里我应该注意到,作为一个测试,我使用一个apache站点设置了一个小型服务器,没有代理,所有内容都按照预期读取并使用IPv6寻址和阻塞。但我必须管理好几个网站,我真的很喜欢easyengine的管理工具和docker隔离(理论上),所以这就是我做出选择的原因。希望这一切对其他人有所帮助。