これは私をイライラさせます… Linux Debian + postfix… /etc/postfix/main.cf には次の行があります:
smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/access,
reject_invalid_hostname,
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_unauth_destination,
reject_unauth_pipelining,
reject_unknown_recipient_domain,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client sbl-xbl.spamhaus.org,
check_policy_service unix:private/policyd-spf,
check_policy_service inet:127.0.0.1:10023,
permit_auth_destination,
reject
最近、postfix は単一の IP からの受信メッセージを拒否しています:
[email protected]
SMTP error from remote mail server after RCPT TO:<[email protected]>:
host mail.server.ext [123.123.123.123]: 554 5.7.1 Service unavailable; Client host [234.234.234.234] blocked using cbl.abuseat.org; Blocked - see http://cbl.abuseat.org/lookup.cgi?ip=234.234.234.234
良い…http://cbl.abuseat.org/lookup.cgi?ip=234.234.234.234234.234.234.234 がブラックリストに登録されていないことを報告します (明らかに、IP 234.234.234.234 は実際のものではありません)。
これまでに同じ理由で数十件の電子メールがブロックされていますが、RBL を手動で照会するたびに、IP はクリーンであると報告されます。
postfix は RBL へのクエリをキャッシュしていますか? 何が足りないのでしょうか?
お時間をいただきありがとうございます。
答え1
最上層の観点からPostfixはDNS検索(RBLを含む)をlibcリゾルバに依存しているため、動作はライブラリによって異なります。たとえば、postfixは常にNSサーバを介して検索を行います。/etc/resolv.conf.
NSサーバーにキャッシュ機構がある場合、postfixもキャッシュ結果を取得します。プロバイダが「DNSハイジャック「(NS サーバーに転送された DNS パケット)。このイベントでは、(有効になっている場合)キャッシュにもヒットします。」
DNS ルックアップの出力を確認するには、dig
コマンドを使用できます。たとえば、IP アドレス 216.154.195.36 が cbl.abuseat.org にリストされているかどうかを確認します。
$ dig 36.195.154.216.cbl.abuseat.org
; <<>> DiG 9.10.1-P1 <<>> 36.195.154.216.cbl.abuseat.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 48609
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
返された値が NXDOMAIN の場合、IP アドレスはリストされていません。
最下層の視点から、各smtpd
プロセス独自のDNSBL検索結果をキャッシュしているこれらの結果は他のPostfixプロセスと共有されません。各smtpd
プロセスは、max_use
またはmax_idle
到達しました。smtpd
プロセスが終了すると、RBLキャッシュも失われます。デーモンsmtpd
によって新しいプロセスが作成されると、master
新しい設定を取得しますオンmain.cf
(およびを含むmax_idle
)max_use
。したがって、実際には postfix を再起動する必要はありません。