我正在apache 2.2下的mod_security中使用RBL规则,这似乎给了我一个错误的肯定。 我在审计日志(IP地址编辑)中看到以下内容:
消息:4.3.2.1.sbl-xbl.spamhaus.org的RBL查找在REMOTE_ADDR成功。 [file“/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_42_comment_spam.conf”] [line“21”] [id“981138”] [msg“垃圾邮件来源的RBL匹配”] [严重性“CRITICAL”] [自动化/ MALICIOUS“]
驱动我坚持的部分是,如果我对日志消息中指定的名称执行nslookup ,则会得到一个不存在的结果。 据我所知,这意味着这个地址不在列表中。 那么为什么mod_security获得成功呢?
我也使用spamhaus上的查询服务来确认IP地址没有被列入黑名单。
我错过了什么? 感觉好像有东西被caching,但我不知道在哪里。
更多的背景,最初主机使用的DNS服务器是(帮助)返回地址,即使查找失败。 我已经切换configuration使用谷歌服务器(8.8.8.8和8.8.4.4),现在host和nslookup工作正如我所料。 我重新启动了服务器,理论上没有内存caching。 我也确保将保留IP地址的mod_security数据文件被清除。 我知道这是工作,因为地址的初始查找如上所示,后来的,在最初的假成功后,显示地址为已知的垃圾邮件地址。
有关规则:
SecRule REMOTE_ADDR "@rbl sbl-xbl.spamhaus.org" \ "phase:1,id:'981138',t:none,pass,nolog,auditlog,msg:'RBL Match for SPAM Source',\ tag:'AUTOMATION/MALICIOUS',severity:'2',setvar:'tx.msg=%{rule.msg}',\ setvar:tx.automation_score=+%{tx.warning_anomaly_score},\ setvar:tx.anomaly_score=+%{tx.warning_anomaly_score},\ setvar:tx.%{rule.id}-AUTOMATION/MALICIOUS-%{matched_var_name}=%{matched_var},\ setvar:ip.spammer=1,expirevar:ip.spammer=86400,setvar:ip.previous_rbl_check=1,\ expirevar:ip.previous_rbl_check=86400,skipAfter:END_RBL_CHECK"
我不再看到这个问题,我怀疑我知道原因。
(1)保持不变,但我已经删除了通配符DNS条目,所以现在searchexample.com将不会再导致example.com.mydomain.com上的匹配