如何保护我的 Wordpress/Apache 网站免受暴力僵尸网络攻击?

如何保护我的 Wordpress/Apache 网站免受暴力僵尸网络攻击?

有什么东西(僵尸网络?)似乎正在攻击我的 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 网站,并且想要快速阻止攻击,所以我不想到处安装插件......下面是我最终做的事情:

  1. 已安装Apache mod_security使用说明如何在 Ubuntu 12.04 上安装 mod_security– 正如nerve所说,mod_security是一个Apache模块,它有助于防止此类攻击,并执行许多其他很酷的安全操作。我按照上述文章中的说明安装了默认规则集。
  2. 通过输入以下内容找到我的家庭网络的 IP 地址“我的 IP 地址是多少”进入谷歌。
  3. 我在 /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
  1. 我用我的家庭 IP 地址替换了 1.2.3.4。(如果您从多个 IP 地址访问 WordPress 网站,则可以有多行这样的代码,但我不需要这样做。)
  2. 我重启了 Apache:$ sudo /etc/init.d/apache2 restart 就这样 - 它阻止了僵尸网络攻击。我检查了我的 Apache 日志,发现僵尸网络请求返回的不是成功代码 (200),而是 403 错误代码。

最终僵尸网络放弃并停止了 POST 尝试。

当我有时间时,我可能会稍后回去安装这两个插件中的一个。

相关内容