毎日のスパムとの戦いで、ワイルドなインターネットから接続しているクライアントからのDNS要件を厳しく施行したくなったことが何度かあります。
具体的には、次のように smtpd_client_restrictions セクション内に reject_unknown_reverse_client_hostname 設定を追加します。
smtpd_client_restrictions =
permit_sasl_authenticated
check_client_access hash:/etc/postfix/access
check_policy_service inet:127.0.0.1:4466
reject_unknown_reverse_client_hostname
reject_unauth_pipelining
とにかく、そのような制限に達したときのPostfixの動作は、unknown_client_reject_code
は450です。したがって、クライアントは再試行を続けるように求められます。
550の応答を調査しているときに、次の文に会いました Postfixの公式ドキュメント :
私は絶対にではありません全体についての専門家です RFC 5321 ですが、知るのに十分な年齢の誰か RFC 821 、なぜかわかりません。450ではなく550の応答が、最大のSMTPレベルでRFCコンプライアンスに違反してPostfixインスタンスに影響を与える可能性があります。特に、一時的なエラーが発生した場合、Postfixは引き続き明示的な設定に関係なく450。
それで、誰かがそのような置き換えの問題を理解するのを手伝ってくれる?
PS:その間、私は「リラックスした」制限で終わりました:
smtpd_client_restrictions =
permit_sasl_authenticated
check_client_access hash:/etc/postfix/access
check_policy_service inet:127.0.0.1:4466
warn_if_reject reject_unknown_reverse_client_hostname
reject_non_fqdn_helo_hostname
reject_unauth_pipelining
reject_invalid_helo_hostname
最初の最も明白な答えは、一時的なDNSエラーが発生した場合、一時的なバウンスにより、DNSエラーが修正されるまで送信者のメールサーバーが再試行できることです。この場合、恒久的なバウンスは実際のハムメールが届かないようにします。
2番目の答えは、メールを送信するための実際の機能プログラムの形式を持たないボットネットボックスを介して大量のスパムが送信されることです。彼らはジャンクを1回だけスプレーし、メッセージに一時的または永続的なエラーが発生したかどうかに関係なく、メッセージの再送信を試みません。したがって、一時的なエラーを使用することで、スパムの大部分を永久にブロックしていますが、ハムが再試行することは許可しています。 (ちなみに、これがグレイリストが機能し、lotのスパムをキャッチする理由です。)
RFCはセクション4.2.1で述べています。それ:
返信が4yzまたは5yzカテゴリ(下記参照)に当てはまるかどうかを判断する経験則は、送信者または受信者のコマンド形式またはプロパティを変更せずに繰り返しても成功した場合、返信は4yzであるということです。 、コマンドは同じように繰り返され、レシーバーは新しい実装を行いません)。
逆引き参照が失敗した場合、DNSエラーが修正されていれば、メッセージ自体に変更を加えることなくメッセージを受け入れることができます。したがって、これは一時的なエラーです。
メッセージがnot spamである場合、送信メールサーバーのsysadminがエラーメッセージに気づき、DNSの問題を修正して、ユーザーが介入して再送信しなくてもメッセージを配信できるようにします。メッセージ。また、メールを送信するユーザーがメールサーバーやそのDNSエントリも担当している場合を除き、永続的なバウンスが直接発生しても、それを使用して何かを行うことはできません。スペルミスのある場合。
もちろん、あなたはいつでも、何らかの理由でメールを拒否する権利を常に持っています。