特定の送信者アドレスからのメールのみを中継するように postfix を設定したいと思います。Postfix は、送信者のアドレス ("MAIL FROM:") に応じて、メールを異なるリレーホスト (/スマートホスト) (Gmail、AOL など) に中継する必要があります。
これまでのところ、現在の構成は次のように動作します。
一般的に、メールリレーではユーザーは postfix で認証されます。認証できない場合はリレーはできません。この認証はリレーホストの認証とは異なることに注意してください。
送信者のアドレス ("MAIL FROM:") に応じて、特定のリレーホストが選択されます ( 、、
smtp_sender_dependent_authentication
) 。これも正常に動作します。sender_dependent_relayhost_maps
smtp_sasl_password_maps
ただし、ユーザーが認証でき、送信者アドレスが に含まれていない場合
sender_dependent_relayhost_maps
、postfix はメールを直接リレーしようとしますが、IP アドレス制限 (ブラックリスト) のためにうまくいかないことがよくあります。
私の質問は、スマートホストなしで直接中継されたメール、つまり、送信者のアドレスが にリストされていないメールを拒否するにはどうすればよいかということですsender_dependent_relayhost_maps
。これを実現するためのヒントはありますか?
答え1
何らかの制限テストが必要になるだろう前に permit_sasl_authenticated
25
これには、受信メール用のポートに別の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