我正在为Apache2.2下的mod_security中的RBL规则而挣扎,这似乎给了我一个错误的肯定。我在审计日志中看到了以下内容(IP地址已编辑):
消息:在REMOTE_ADDR上成功地查找了4.3.2.1.sbl-xbl.spamhaus.org。文件“/etc/httpd/modsecurity.d/已激活_规则/模型安全_crs_42_评论_spam.conf” id“981138” 严重程度“关键”
让我抓狂的部分是,如果我对日志消息中指定的名称执行nslookup,则会得到不存在的结果。据我所知,这个地址不在名单上。那么,为什么mod_security会取得成功呢?
我还使用了spamhaus的查找服务来确认IP地址不是黑名单。
我遗漏了什么?感觉好像有东西在被缓存,但我不知道在哪里。
更多的背景情况是,主机最初使用的是DNS服务器,即使在查找失败时也会返回地址(这很有帮助)。我已经将配置切换到使用google (8.8.8.8和8.8.4.4),现在host和nslookup可以像我预期的那样工作了。我重新启动了服务器,所以理论上没有内存缓存。我还确保将保留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"发布于 2015-01-04 16:26:57
我不再看到这个问题了,我怀疑我知道原因了。
(1)仍然是正确的,但是我已经删除了通配符DNS条目,所以现在搜索example.com将不再导致example.com.mydomain.com上的匹配
https://serverfault.com/questions/646780
复制相似问题