Я борюсь с правилом РУБЛЯ в mod_security под апачскими 2.2, который, кажется, дает мне положительную ложь. Я вижу следующее в контрольном журнале (отредактированный IP-адрес):
Сообщение: за поиском РУБЛЯ 4.3.2.1.sbl-xbl.spamhaus.org следуют в REMOTE_ADDR. [файл "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_42_comment_spam.conf"] [строка "21"] [идентификатор "981138"] [сообщение "Соответствие РУБЛЯ для Источника СПАМА"] [серьезность, "ОЧЕНЬ ВАЖНАЯ"] [отмечает "АВТОМАТИЗАЦИЮ / ЗЛОНАМЕРЕННЫЙ"]
Часть, которая сводит меня с ума, является этим, если я делаю nslookup
на имени, указанном в сообщении журнала, я получаю результат, что это не существует. Который насколько я понимаю означает, что этот адрес не находится в списке. Итак, почему mod_security получает успех?
Я также использовал сервис поиска в spamhaus, чтобы подтвердить, что IP-адрес не помещен в черный список.
Что я пропускаю? Такое чувство, что что-то кэшируется, но я не могу выяснить где.
Немного больше фона, первоначально хост использовал сервер DNS, который (услужливо) возвращал адреса, даже когда поиск перестал работать. Я переключил конфигурацию для использования серверов Google (8.8.8.8 и 8.8.4.4) и теперь host
и nslookup
работайте, как я ожидаю. Я перезагрузил сервер так в теории существует не в кэше памяти. Я также удостоверился mod_security файлы данных, которые сохранили бы IP-адрес, очищены. Я знаю, что это работает, так как начальный поиск для адреса появляется как выше, и последующие, после того, как начальный ложный успех показывает адрес известным адресом СПАМА.
Рассматриваемое правило:
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 с подстановочными знаками, поэтому теперь поиск example.com больше не будет приводить к совпадению example.com.mydomain.com