Temos visto muitos spam de referência em um de nossos servidores, então decidi adicionar algumas regras personalizadas de modsecurity para tentar parar pelo menos algumas delas.
Adicionei várias regras, por exemplo:
SecRule REQUEST_HEADERS:User-Agent "/\byourekillingme.org\b/" \
"phase:1,log,deny,status:503,msg:'Referer spam1',id:101"
SecRule REQUEST_HEADERS:User-Agent "/\bahrefs.com/robot\b/" \
"phase:1,log,deny,status:503,msg:'Referer spam2',id:102"
SecRule REQUEST_HEADERS:User-Agent "/\bsemrush.com/bot\b/" \
"phase:1,log,deny,status:503,msg:'Referer spam6',id:106"
mas como você pode ver na saída do log, enquanto a regra de ahrefs (id 102 acima) está sendo aplicada, as outras não são (existem outras, mas a ahrefs é a única que está funcionando):
107.180.120.23 - - [23/Nov/2017:11:08:00 +0000] "GET /tri-levlen-28-side-effects-3f1 HTTP/1.1" 200 50965 "http://www.mydomain.co.uk/tri-levlen-28-side-effects-3f1#elephant" "WordPress/4.9; http://yourekillingme.org"
51.255.65.42 - - [23/Nov/2017:10:40:51 +0000] "GET /pink-viagra-price-52c HTTP/1.1" 503 315459 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.2; +http://ahrefs.com/robot/)"
46.229.168.73 - - [23/Nov/2017:11:07:50 +0000] "GET /viagra-for-sale-online-cheap-52c HTTP/1.1" 200 51060 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)"
Eu também verifiquei /usr/local/apache/logs/modsec_audit.log para confirmar que é a minha regra que está causando o 503 e não outra regra em algum outro lugar, e isso mostra muitas entradas para:
Message: Access denied with code 503 (phase 1). Pattern match "/\bahrefs.com/robot\b/" at REQUEST_HEADERS:User-Agent. [file "/usr/local/apache/conf/modsec2.myrules.conf"] [line "8"] [id "102"] [msg "Referer spam2"]
indicando que minha regra modsec está parando.
Alguém pode ver por que minhas outras regras não estão sendo aplicadas?