web-dev-qa-db-ja.com

Postfix REJECT(BOUNCEではない)不明な仮想エイリアス

仮想エイリアスマップを使用し、spamassassinを設定して、多数のホストドメインに対して小さなPostfix(およびDovecot)メールサーバーを実行します。

最近、後方散乱が発生していることが明らかになりました。スパムメールは存在しないメールアドレスに送信され、偽造された送信者に返送されます。これは明らかに、メールサーバーの評判の問題であり、スパマーに代わってスパムを送信していることも意味します。

次に、Postfixの動作を変更して、バウンスメールフォームMAILER-DAEMONを生成する代わりに、SMTPトランザクション中にメールが拒否されるようにします。

Local_recipient_maps( http://www.postfix.org/LOCAL_RECIPIENT_README.html )を追加しようとしましたが、違いはありませんでした。これは、virtual_alias_mapsを使用しているためだと思います(他の仮想メールボックスソリューションもここでは適用されないようです)。

postconf -nは以下を生成します:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = all
inet_protocols = all
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 0
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = verrotech.com
myhostname = mail.verrotech.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.domain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.domain.com/privkey.pem
smtpd_tls_security_level = may
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

ありがとうございました。

5
Dave

いくつかの調査の後、あなたの質問は私が私のメールサーバーで同じ問題を抱えていることを理解させたので、最初に、ありがとう。

次に、デフォルトでは、postfixがこの種のトラフィックをブロックすることに注意してください。マニュアルでは smtpd_reject_unlisted_recipient

smtpd_reject_unlisted_recipient (デフォルト:はい)

明示的なreject_unlisted_recipientアクセス制限が指定されていない場合でも、Postfix SMTPサーバーが不明な受信者アドレスのメールを拒否するように要求します。これにより、Postfixキューが配信不能なMAILER-DAEMONメッセージで一杯になるのを防ぎます。

では、なぜ宛先不明のメールについて250 OKを取得するのですか?これらの行のため:

mydestination = $ myhostname、localhost。$ mydomain、localhost
virtual_alias_maps = hash:/ etc/postfix/virtual

smtpd_reject_unlisted_recipientは宛先メールをチェックしますが、具体的には次のとおりです。

アドレスは、virtual(5)エイリアスまたはcanonical(5)マッピングと一致する場合、常に「既知」と見なされます。

   The recipient domain matches $mydestination, $inet_interfaces or $proxy_interfaces, but the recipient is not listed in $local_recipient_maps, and $local_recipient_maps is not null.
   The recipient domain matches $virtual_alias_domains but the recipient is not listed in $virtual_alias_maps.
   The recipient domain matches $virtual_mailbox_domains but the recipient is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps is not null.
   The recipient domain matches $relay_domains but the recipient is not listed in $relay_recipient_maps, and $relay_recipient_maps is not null. 

mydestinationには$mydomain(サーバー名とlocalhostのみ)が含まれておらず、*_domainsが設定されていないため、「既知の」宛先に対する他のチェックはありません。

あなただけを追加する必要があります:

virtual_alias_domains = $ mydomain

リロード後置。 (私があなたの設定を正しく取得していて、すべてのメールが「[email protected]」の形式である場合)


それがうまくいかない場合は、これを試してみてください:

smtpd_recipient_restrictions = permit_mynetworks、reject_unauth_destination、reject_unverified_recipient

注:incomingoutgoingの両方のメッセージに対して宛先trullyが存在するかどうかは、RCPT TOコマンドを介してチェックされます。 注意して使用新しい宛先ごとに追加の接続を作成し、サーバーが処理するすべてのメールに応答するのに時間がかかります(各宛先のテストには数秒かかる場合があります)。

8
NuTTyX

この答えはあなたが求めていたものとは正確には一致しませんが、これが私自身のユースケースで問題を解決した方法です。

バウンスの破棄:

/etc/postfix/main.cfgには、

2bounce_notice_recipient = devnull
bounce_notice_recipient = devnull
bounce_queue_lifetime = 0d
delay_warning_time = 0h
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases

/ etc/postfix/aliasesには、次のようになっています。

devnull:    /dev/null

次に、実行します:

postmap aliases
postfix reload

最終結果は、バウンスが/ dev/nullに移動することです。それはそれらすべてを捕まえないかもしれないので、YMMV。これで問題が解決するかどうかお知らせください。

2
Aaron