web-dev-qa-db-ja.com

PostfixのMailmanによる早期のメール拒否

私は単一のマシンにPostfixをインストールしています。これは次の唯一の最終的なメールの宛先です。

  1. マシンのホスト名(mail.example.org)およびlocalhost
  2. Mailmanはlists.example.orgにリストしています
  3. 多数の仮想ドメイン

main.cfの関連設定は次のとおりです。

myhostname = mail.example.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $myhostname
mydestination = localhost, $myorigin
relay_domains = $mydestination, lists.example.org
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

# Virtual domains
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes
virtual_alias_maps = hash:/etc/postfix/virtual_aliases
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

# mailman configuration
mailman_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport

smtpd_relay_restrictions = permit_mynetworks,
  reject_invalid_hostname,
  reject_unknown_sender_domain,
  reject_unknown_recipient_domain,
  reject_unauth_destination,
  reject_unlisted_recipient,
  reject_rbl_client zen.spamhaus.org,
  permit

現在、lists.example.orgのメールは、次のtransport_maps設定を介してMailmanにルーティングされます。

lists.example.org mailman:

これは機能しますが、電子メールが不明なリストに送信された場合、メッセージはPostfixによって受け入れられ、Mailmanによって処理されるときにバウンスされることを意味します。いくつかの理由で(特に後方散乱を減らし、メールをできるだけ早く拒否する)、PostfixがRCPT TOと一致しMailmanリストに対応しない@lists.example.orgを見つけたらすぐにメールを拒否したい。

この結果は、すべてのMailmanリストエイリアスを含むファイルを作成し、これをrelay_recipient_mapsmain.cfとして指定することで達成できると思います。ただし、私の理解では、relay_recipient_mapsrelay_domainsに適用され、$mydestinationアドレスに影響を与えたくありません。

したがって、私の2つの関連する質問は次のとおりです。

  1. $mydestinationからrelay_domainsを削除する必要があります。削除しても、既存のエイリアスは引き続き機能しますか?
  2. relay_domainslists.example.orgに設定されている場合、relay_recipient_mapsは希望する結果を達成しますか?

あるいは、PostfixがMailmanにクエリを実行し、配信用のメールを受け入れる前に応答を取得する方法がある場合(おそらく、キュー前のフィルターを使用します-これがSpamAssassinへのメールの処理方法です)、それでも私が望むことを達成できます。

前もって感謝します。 :-)

3
pwaring

これを実行するのにしばらく時間がかかりましたが、私が従った手順は次のとおりです。

  1. $mydestinationからrelay_domainsを削除します。
  2. すべてのMailmanエイリアスのリストを/etc/postfixo/relay_recipient_mapsというハッシュファイルに追加します。
  3. 追加:relay_recipient_maps = hash:/etc/postfix/relay_recipient_mapsからmain.cf

存在しないリストへの電子メールは、スパムチェックが行われる前、およびメールがMailmanに渡される前に、最初のSMTPトランザクションの一部として拒否されるようになりました。

0
pwaring