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%的时间可以工作,但是在其他时候由于某些非常奇怪的原因而失败,这里是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"]
我知道正确的方法是进行反向查找,但是他们放慢了网站的速度,我希望至少有一些安全性,但目前无法使用960015,因为它会阻止谷歌和其他人。与此同时,它是一个非常有用的规则,可以捕获100个坏机器人。
如果有人知道如何使用反向查找进行设置,实际上可以正常工作并允许Google和其他好机器人编制索引 - 欢迎您在此处发帖。然而,我也正在寻找一种快速而肮脏的解决方案,使其现在正常工作,因为一些安全性比没有安全性更好。
答案 0 :(得分:2)
以下是我使用的解决方案,运行48小时,谷歌,当100个坏人被阻止时完成罚款,将其放入vhost文件中:
SecRule REQUEST_HEADERS:User-Agent "Google|Mail|Yandex" "phase:1,t:none,allow,nolog,ctl:ruleRemoveById=960015"