mod_security规则960015不断捕捉谷歌和其他好的机器人。 我在vhost中有以下几个方面来防止被抓到的好机器人:
SecRule REQUEST_HEADERS:User-Agent "Mail.ru" log,allow SecRule HTTP_USER_AGENT "Mail.RU_Bot" log,allow
Google和Yandex也一样。
它工作99%的时间,但是在其他时间有一些真正的bizare原因失败,这里是Mail.ru bot的日志示例:
全成:
217.69.134.79 - - [07/Mar/2014:10:17:13 +0400] "GET / HTTP/1.1" 200 189934 "-" "Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/Fast/2.0; +http://go.mail.ru/help/robots)" [Fri Mar 07 10:17:13 2014] [error] [client 217.69.134.79] ModSecurity: Access allowed (phase 2). Pattern match "Mail" at REQUEST_HEADERS:User-Agent. [file "/etc/apache2/sites-enabled/xxx"] [line "28"] [hostname "xxx"] [uri "/"] [unique_id "UxlkaQp-d4EAABU9BSIAAAAV"]
而下一分钟则失败:
217.69.134.79 - - [08/Mar/2014:02:14:19 +0400] "GET / HTTP/1.1" 403 389 "-" " Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/ help/robots)" [Sat Mar 08 02:14:19 2014] [error] [client 217.69.134.79] ModSecurity: Access denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. [file "/usr/share/modsecurity-crs/activated_rules/ modsecurity_crs_21_protocol_anomalies.conf"] [line "47"] [id "960015"] [rev "2.2.5"] [msg "Request Missing an Accept Header"] [severity "CRITICAL"] [tag "PROTOCOL_VIOLATION/MISSING_HEADER_ACCEPT"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [hostname "xxx"] [uri "/"] [unique_id "UxpEuwp-d4EAAEMnBFQAAAAE"]
我知道正确的方法是做反向查找,但是他们减慢了网站速度,我想至less有一些安全性,但是因为它现在不能使用960015,因为它阻止了Google和其他人。 在同一时间这是一个非常有用的规则,抓住了几百个坏机器人。
如果有人知道如何设置反向查找,实际上会工作,并允许谷歌和其他好的机器人索引 – 欢迎您在这里发表。 不过,我也在寻找一个快速和肮脏的解决scheme,使其现在工作,因为一些安全性更好,然后没有安全。
首先一个免责声明:我是不良行为的作者,一个类似的产品,一些ModSecurity核心规则是从不良行为派生的。
RFC 2616指出Accept头应该存在于所有的请求中。 请注意,这不是一个绝对的要求,所以如果用户代理不发送这个头,它仍然是有条件的(在RFC中定义的)。
拒绝没有Accept头的请求的基本原理是,所有常规的Web浏览器确实发送头,而许多机器人却没有。 但实际上,在看到数以百万计的请求后,一些“好”的机器人也不会发送Accept头。 所以这个规则并不完美,并且会产生误报。
不良行为不会阻止这些,除非请求是POST请求。 这减less了垃圾邮件,并将误报减less到大约零,但仍然通过其他机器人。 根据我的经验,无论如何,其中许多人都被其他规则所困扰。
在你的情况下,我只是禁用此规则。 它不像你想象的那样买你的东西。 如果需要,可以对其进行修改,使其仅适用于POST请求。
这是一个适合目的的修改规则,现在已经运行了48个小时,谷歌和其他人正常工作,而坏人仍然被抓住,喔!
将其添加到有问题的虚拟主机中:
SecRule REQUEST_HEADERS:User-Agent "Google|Mail|Yandex" "phase:1,t:none,pass,nolog,ctl:ruleRemoveById=960015"
2015更新与更新的情况 – 骗子已经起来,现在大多假冒为谷歌假冒头,需要不同的安全策略。