几天以来,有人向我的网站服务器上的wordpress网站发送了数千个请求。
此请求的通用日志行是:
60.173.10.250 - - [23/Nov/2013:18:24:46 +0100] "GET /archivio/mgilbert/ HTTP/1.0" 200 24758 "http://www.**********.it/archivio/mgilbert/#comment-9768++++++++++++Result:+chosen+nickname+%22Tiedimmox%22;+nofollow+is+found;+success+%28from+first+page%29;+BB-code+not+working;" "Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
作为这个请求的结果,网站的所有者正在接收大量的电子邮件。 请求来自不同的IP地址,所以我不能使用IP地址作为filter来阻止它们。
有什么办法阻止这样的要求吗?
该网站正在受到bot,脚本,恶意软件或通常不太好的攻击。 IP地址将会一直改变,因为这就是这些系统的工作原理。 一个父母主服务器控制全世界大量受感染的系统。 并使用这些受感染的系统传播越来越多的恶意软件。
既然你说这是一个WordPress站点,那么安装WordPress的版本有可能会出现漏洞。 如果可能的话,应该升级。
另一种select是安装ModSecurity 。 或者,如果您的托pipe服务已经到位,请让他们激活它。 ModSecurity是一个很好的工具,可以作为Apache2托pipe网站和攻击之间的Web服务器级防火墙。 但是,这说,configuration可能是一个痛苦。 有时误报会影响您网站的正常运作。
过去,另一个好的方法是在wp-admin.php上加上.htaccess/.htpasswd级别的密码保护。 绝大多数机器人在那里下降,他们击中密码提示和您的服务器是安全的。 这对pipe理WordPress网站pipe理员的任何人来说都可能是不方便的,因为他们现在必须记住2组密码 – 但这是阻止攻击的一种非常有效的方法。
如果你使用nginx,你可以在任何头上匹配,并返回403(禁止)
所以例如(closures我的头顶,所以检查语法)
如果$ user_agent =〜/ Gecko / 20100101 Firefox / 15.0.1 / {return 403; }
在Apache上,你可以加载mod_security,但是它有很多误报,特别是如果你有很多的虚拟主机。
如果你的盒子在互联网上,使用公共IP,另一个select是用iptables限制传入的请求,
iptables -A INPUT -p tcp –syn -m limit –limit 1 / s –limit-burst 3 -j RETURN
编辑:作为一个短期的解决scheme,你可以
location =〜/ archivio / mgilbert {return 403; }