有什么东西(僵尸网络?)似乎正在攻击我的 Wordpress 网站。我在 Apache 访问日志中看到很多这样的条目,每秒就有好几条:
46.105.113.8 - - [14/Apr/2013:22:57:18 -0400] "POST /blog//wp-login.php HTTP/1.1" 200 4115 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/20091028 15 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
74.207.229.103 - - [14/Apr/2013:22:57:19 -0400] "POST /wp-cron.php?doing_wp_cron=1365994639.0381069183349609375000 HTTP/1.0" 200 222 "-" "WordPress/3.5.1; http://mysite.com"
我在想有些东西正在试图强行猜测密码。
我的一个想法是阻止对 wp-login.php 的所有请求,除了我的家庭 IP 地址。我该如何实现呢?
或者是否有一个 Wordpress 插件可以自动阻止这些暴力攻击?
或者有更好的想法吗?
我在 Ubuntu 12.04 上运行 Apache 2.2.22。
答案1
在大规模(针对多个网站)中,我建议使用 Mod Security 规则来监控 wp-login.php 上的 POST,并在达到一定数量后进行阻止。在较小规模中,我建议使用以下方法:
http://wordpress.org/extend/plugins/better-wp-security/
在我见过的每种情况下,更改登录 URL(插件的一个功能)都可以很好地缓解这种情况。您还可以管理 IP 访问 - 尽管您也可以通过 wp-admin 目录中的 .htaccess 进行此操作。
答案2
谢谢您的指点。
这里有几个 Wordpress 插件,它们会在多次登录尝试失败后阻止 IP 地址:
因为我有很多 Wordpress 网站,并且想要快速阻止攻击,所以我不想到处安装插件......下面是我最终做的事情:
- 已安装Apache mod_security使用说明如何在 Ubuntu 12.04 上安装 mod_security– 正如nerve所说,mod_security是一个Apache模块,它有助于防止此类攻击,并执行许多其他很酷的安全操作。我按照上述文章中的说明安装了默认规则集。
- 通过输入以下内容找到我的家庭网络的 IP 地址“我的 IP 地址是多少”进入谷歌。
- 我在 /etc/modsecurity/modsecurity.conf 文件中添加了以下规则:
# site configuration
# allow all access from home
SecRule REMOTE_ADDR "^1.2.3.4" phase:1,nolog,allow,ctl:ruleEngine=off
# deny all access to wp-login to prevent wordpress botnet attacks
SecRule REQUEST_URI "@rx (.*)wp-login.php(.*)" deny,nolog
- 我用我的家庭 IP 地址替换了 1.2.3.4。(如果您从多个 IP 地址访问 WordPress 网站,则可以有多行这样的代码,但我不需要这样做。)
- 我重启了 Apache:$ sudo /etc/init.d/apache2 restart 就这样 - 它阻止了僵尸网络攻击。我检查了我的 Apache 日志,发现僵尸网络请求返回的不是成功代码 (200),而是 403 错误代码。
最终僵尸网络放弃并停止了 POST 尝试。
当我有时间时,我可能会稍后回去安装这两个插件中的一个。