DoS攻击请求服务器上的单个文件,最好的办法来克服?

我的服务器目前正在被一个大的DoS攻击,不得不离开Apache并把所有东西都推送到Nginx上(重写是一场噩梦!)。

来自访问日志的示例:

186.92.86.149 - - [30/Nov/2011:09:49:40 -0500] "GET /boards/search.php HTTP/1.0" 404 169 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)" "-" 187.131.200.33 - - [30/Nov/2011:09:49:40 -0500] "POST /boards/search.php HTTP/1.0" 413 199 "http://rol.ru" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3a) Gecko/20030105 Phoenix/0.5" "-" 189.72.198.227 - - [30/Nov/2011:09:49:40 -0500] "GET /boards/search.php HTTP/1.0" 500 193 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)" "-" 101.109.17.136 - - [30/Nov/2011:09:49:40 -0500] "POST /boards/search.php HTTP/1.0" 413 199 "http://gazeta.ru" "Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC) Opera 6.0 [en]" "-" 186.188.156.111 - - [30/Nov/2011:09:49:40 -0500] "POST /boards/search.php HTTP/1.0" 413 601 "http://rol.ru" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" "-" 

因为他们都试图访问一个页面有一个快速和简单的方法,我可以设置自动添加到iptables或等等?

将文件复制到新的位置,然后让nginx产生一个redirect到该内容的新位置。 这只是一个临时措施,但从networking服务器发送302s与parsing和执行PHP每次将会便宜得多。

真正的用户浏览器应该尊重redirect。

Fail2Ban可能会重写您的规则,以便它可以自动禁止传入的请求到该文件。 您可能还想与上游提供商合作,阻止某些请求(如果可以的话),因为这样做不会阻止DoS阻塞您的连接,只是略微降低其效率。 除非您的数据中心有很大的连接,否则这将降低您的网站提供合法stream量的能力,而您的提供商上游可能会帮助减lesspipe道上方的请求。