sendmail / qmail / postfix の接続元制限

特に、DNS関連(正引きできないと...、逆引きできないと...というケース)について確認した内容をメモしておきます

sendmailの場合

  • 接続元IPアドレスを逆引きし、逆引きできたホスト名に対して正引きを行ったが、答えが一致しない場合にreject
    ⇒mcのLOCAL_RULESETSのRFORGEDで設定
qmailの場合
  • 接続元IPアドレスを逆引きし、逆引きできたホスト名に対して正引きを行ったが、答えが一致しない場合にreject
    ⇒tcpserverの-p(小文字)オプションで設定
postfixの場合
  • 接続元IPアドレスの逆引きができない場合、または接続元IPアドレスを逆引きした結果を正引きした時にAレコードが存在しない場合にreject
    ⇒main.cfのreject_unknown_clientで設定
  • HELO/EHLOのFQDNを正引きした時、そのホスト名がAレコード・MXレコードのいずれでもない場合にreject
    ⇒main.cfのreject_unknown_hostnameで設定
  • Envelope Fromのドメイン部分がAレコード・MXレコードのいずれでもない場合にreject
    ⇒main.cfのreject_unknown_sender_domainで設定
  • ルール:RCPTのドメイン部分がAレコード・MXレコードのいずれでもない場合にreject
    ⇒main.cfのreject_unknown_recipient_domainで設定

と、いうわけで
  • sendmailとqmailの制限は一緒。postfixは微妙に違います。
  • 「HELO/EHLOのFQDNの正引き結果」と「接続元IPアドレス」をマッチさせるルールはないみたい。
  • 「MAIL From:のFQDNの正引き結果」と「接続元IPアドレス」をマッチさせるルールはないみたい。


DNS逆引きチェックを入れちゃった場合に問題になりそう(だと言われている)ケースは
  • 共有ホスティングの場合
  • NAT構成の場合
  • 逆引きが自分で設定できない場合
だと思うんですが

  • 共有ホスティングの場合
    ⇒ホストサーバを正引き・逆引き登録しておけばOK
  • NAT構成の場合
    ⇒gateway(外から見えるIPアドレス)の正引き・逆引きを設定して、NAT内部のサーバが正引きできるように設定すればOK
     NAT内部のサーバの正引き設定は無理くさいので、MTAがHELO/EHLOでgatewayのFQDNを渡すように設定すればOK
     (qmailの場合、conrtolの`helohost`ファイルで指定できます)
     (2009.4.8追記: postfixの場合、main.cfの`smtp_helo_name`で指定できます)
  • 逆引きが自分で設定できない場合(プロバイダ提供の固定IPアドレスや自宅サーバの場合)
    ⇒無理。。正引き・逆引き自体は設定されているのであれば、MTAがHELO/EHLOでそのFQDNを渡すように設定すればOK(かも)

上記以外のreject設定があればぜひ教えてください!


<賛否があるのは承知してますが>
メールがほんとにインフラ化してきていて、重要な連絡もメール一発だったりするご時世なので、逆引きできなくてrejectとかは勘弁してほしいです。


See also