Postfix reject_unknown_reverse_client_hostname:デフォルトのunknown_client_reject_code(450)を550に置き換えます。なぜ/いつしないのですか?


9

毎日のスパムとの戦いで、ワイルドなインターネットから接続しているクライアントからのDNS要件を厳しく施行したいと思ったことが何度かあります。

具体的には、私が追加されているでしょうreject_unknown_reverse_client_hostname私の中の設定はsmtpd_client_restrictionsののように、セクションを:

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 

とにかく、私はそのような制限に達したときのデフォルト値unknown_client_reject_codeが450であるため、Postfixの動作はかなり「ソフト」であることを指摘しました。したがって、クライアントは再試行を続けるように求められます。

550の応答を調査しているときに、Postfixの公式ドキュメントで次の声明に会いました

ここに画像の説明を入力してください

私は絶対にRFC 5321全体の専門家ではありませんがRFC 821を知るのに十分な年齢の誰かとして、450ではなく550応答が最大SMTPレベルでPostfixインスタンスに影響を与える可能性がある理由は本当にわかりません( RFC準拠の違反)、特に一時的なエラーの場合、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 

回答:


12

2つの実用的な答えから始めます

  1. 最初の最も明白な答えは、一時的なDNSエラーが発生した場合、一時的なバウンスにより、DNSエラーが修正されるまで送信者のメールサーバーが再試行できることです。この場合、恒久的なバウンスは実際のハムメールがあなたに届くことをブロックします。

  2. 2番目の答えは、大量のスパムが、メールを送信するための実際の機能プログラムの形式を持たないボットネットボックスを介して送信されることです。彼らはジャンクを一度だけスプレーし、メッセージに一時的または永続的なエラーが発生したかどうかに関係なく、メッセージの再送信を試みません。したがって、一時的なエラーを使用することで、スパムの大部分を永久にブロックしていますが、ハムが再試行することは許可しています。(ちなみに、これがグレーリストが機能し、依然として多くのスパムをキャッチしている理由です。)

これらのものに加えて、理論とRFCにもっと耐える答えもあります

RFCはセクション4.2.1で述べています。それ:

返信が4yzまたは5yzカテゴリ(下記参照)に当てはまるかどうかを判断する経験則は、コマンド形式または送信者または受信者のプロパティ(つまり、 、コマンドは同じように繰り返され、レシーバーは新しい実装を行いません)。

逆引き参照の失敗の場合、DNSエラーが修正されていれば、メッセージ自体を変更せずにメッセージを受け入れることができます。したがって、これは一時的なエラーです。

メッセージがスパムではない場合、送信メールサーバーのシステム管理者がエラーメッセージに気づき、DNSの問題を修正して、ユーザーが介入してメッセージを再送信しなくてもメッセージを配信できるようにします。また、メールを送信するユーザーがメールサーバーやそのDNSエントリも担当している場合を除いて、永続的なバウンスを直接受けても、たとえばスペルミスの場合とは異なり、それを使用して何かを行うことはできません。住所。

もちろん、あなたは依然として何らかの理由でメールを拒否する権利を常に持っています。


DNSの一時的な問題について考えましたが、問題ではないようです...「一時的なエラー条件のためにマッピングが失敗した場合、SMTPサーバーは常に450で応答します。」これらには、一時的なDNSルックアップの問題が含まれるはずです。ね?2番目のポイント(BotNet、グレイリストなど)に関しては、それは合理的に聞こえます。クライアントが適切なキューイングメカニズムを実装していない場合、4XX応答は5XX応答と同じ効果をもたらします。とにかく、なぜこれがRFCレベルで影響を与えるのかはまだわかりません。
Damiano Verzulli 2015

2
@DamianoVerzulliこれは、DNSが誤った名前を返すように正しく構成されておらず、その後修正される場合ではなく、エラーでマッピングが失敗した場合に適用されます。いずれにせよ、私はRFCに関連する問題について少し拡張しました。
ジェニーD

1
適切なRFCセクションを指摘していただきありがとうございます。私はこれに焦点を当てている:「応答が繰り返された場合、彼らが成功することができるかどう4yzですそのままコマンド形式またはPROPERTIES中SENDERまたは受信機」。私の最初の推測では、クライアントのDNSホスト名だけでなく、その逆DNSマッピングが、ということですされている送信者のプロパティ。ね?そうしないと、送信者のプロパティが何であるかを確認できません。(ところで、私のコメントは個人的に取らないでください。私はこの議論に本当に興味があり、あなたの指摘に本当に感謝しています。コメントをありがとう!)
Damiano Verzulli

1
@DamianoVerzulli DNSホスト名は送信メールサーバーのプロパティではなく、メールサーバー構成内で変更することはできません。権限のあるDNSサーバーによって制御されます。これは通常、同じサーバーでもなく、電子メールサーバーの一部ではありません。同じ組織内で管理されていない場合もあります。(私はそれを個人的に取り上げているわけではありません。これは事実についての議論であり、アドホミネムの議論がなければ、個人的に取り上げることは何もありません。非常に興味深いことに同意します。明確であるとは思いません。反対側のためにも作られました。)
ジェニーD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.