postfix は特定の送信者アドレス ("MAIL FROM:") のみのメール中継を制限します

postfix は特定の送信者アドレス ("MAIL FROM:") のみのメール中継を制限します

特定の送信者アドレスからのメールのみを中継するように postfix を設定したいと思います。Postfix は、送信者のアドレス ("MAIL FROM:") に応じて、メールを異なるリレーホスト (/スマートホスト) (Gmail、AOL など) に中継する必要があります。

これまでのところ、現在の構成は次のように動作します。

  • 一般的に、メールリレーではユーザーは postfix で認証されます。認証できない場合はリレーはできません。この認証はリレーホストの認証とは異なることに注意してください。

  • 送信者のアドレス ("MAIL FROM:") に応じて、特定のリレーホストが選択されます ( 、、smtp_sender_dependent_authentication) 。これも正常に動作します。sender_dependent_relayhost_mapssmtp_sasl_password_maps

  • ただし、ユーザーが認証でき、送信者アドレスが に含まれていない場合sender_dependent_relayhost_maps、postfix はメールを直接リレーしようとしますが、IP アドレス制限 (ブラックリスト) のためにうまくいかないことがよくあります。


私の質問は、スマートホストなしで直接中継されたメール、つまり、送信者のアドレスが にリストされていないメールを拒否するにはどうすればよいかということですsender_dependent_relayhost_maps。これを実現するためのヒントはありますか?

答え1

何らかの制限テストが必要になるだろう前に permit_sasl_authenticated25これには、受信メール用のポートに別のsmtpdと、提出ポート で587。そうしないと、この制限により、受信メールがテストに合格せず拒否されることになります。次に、 をpermit_sasl_authenticatedポートから25完全に削除し、 の送信構成にテストを追加しますmaster.cf

  • あなたの質問に文字通り答えると、check_sender_access適切なテストとしては、リストされているすべてのドメインをホワイトリストに登録しsender_dependent_relayhost_maps、残りのドメインからのメールを拒否します。

    check_sender_access type:table

    指定されたものを検索アクセス(5)MAIL FROMアドレス、ドメイン、親ドメイン、または のデータベースを検索しlocalpart@、対応するアクションを実行します。

    これはどちらにも追加できますsmtpd_sender_restrictionsまたはsmtpd_recipient_restrictions

  • 同じことをするが、ユーザーがお互いのアドレスを使用することをさらに防ぐには、reject_sender_login_mismatchこれには追加のsmtpd_sender_login_mapsテーブルですが、virtual_alias_mapsエントリがすでに として形成されている場合は[email protected] username、同じファイルを使用でき、 で仮想エイリアス データベースを更新するたびに、許可された送信者アドレスが自動的に更新されますpostmap。 でのこのような送信構成の例master.cf:

    submission inet n - - - - smtpd
    # Other parameters
      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -o smtpd_sender_restrictions=reject_sender_login_mismatch
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    # Other parameters
    

関連情報