
Apache 2.2 の mod_security の RBL ルールで誤検知が発生しているようです。監査ログに次の内容が表示されています (IP アドレスは編集されています)。
メッセージ: 4.3.2.1.sbl-xbl.spamhaus.org の RBL 検索が REMOTE_ADDR で成功しました。[ファイル "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_42_comment_spam.conf"] [行 "21"] [ID "981138"] [メッセージ "SPAM ソースの RBL 一致"] [重大度 "CRITICAL"] [タグ "AUTOMATION/MALICIOUS"]
私を悩ませているのは、nslookup
ログ メッセージで指定された名前に対して を実行すると、存在しないという結果が返されることです。私の理解では、これはこのアドレスがリストにないことを意味します。では、なぜ mod_security は成功するのでしょうか?
また、spamhaus の検索サービスを使用して、IP アドレスがブラックリストに登録されていないことを確認しました。
何が足りないのでしょうか? 何かがキャッシュされているような気がしますが、どこにあるのかわかりません。
背景をもう少し詳しく説明すると、当初ホストは DNS サーバーを使用していましたが、これは (ありがたいことに) 検索が失敗してもアドレスを返していました。構成を切り替えて Google サーバー (8.8.8.8 および 8.8.4.4) を使用するようにしたところ、期待どおりに動作するhost
ようnslookup
になりました。サーバーを再起動したので、理論上はメモリ キャッシュはありません。また、IP アドレスを保持する mod_security データ ファイルがクリアされていることを確認しました。アドレスの最初の検索が上記のように表示され、最初の誤った成功後の後続の検索では、アドレスが既知の SPAM アドレスとして表示されるため、これが機能していることがわかります。
問題となっているルール:
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
この問題はもう発生しておらず、原因はわかっていると思います。
- ネームサーバーは、/etc/resolv.confの「search」設定を介してmydomain.com内の名前を検索するように構成されました。
- *.mydomain.comのワイルドカードDNSエントリがIPアドレスを返していました
(1) は依然として当てはまりますが、ワイルドカード DNS エントリを削除したので、example.com を検索しても example.com.mydomain.com に一致する結果は表示されなくなります。