電子メールを受信するにはポート25にSMTPが必要であることを理解していますが、これをリレーポートにしたくありません。代わりに、登録済み(SASL認証済み)ユーザーが任意のIPアドレスから、サーバーを介して、任意の電子メールサーバー(GMail、Yahooなど)に電子メールを中継するために使用するポート587を使用します。
メールを受信してユーザーを認証するようにPostfixを設定しましたが、ポート25と587の違いと、1つを受信用にもう1つを中継用に使用する方法について完全に混乱しています。
これが私のmain.cf
の現在の関連部分です。
myhostname = mx.example.com
mydomain = example.com
#myorigin = $mydomain
mydestination = localhost localhost.localdomain
mynetworks_style = Host
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_relay_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
# reject_unauth_destination is not needed here if the mail
# relay policy is specified under smtpd_relay_restrictions
# (available with Postfix 2.10 and later).
reject_unauth_destination
reject_rbl_client zen.spamhaus.org,
reject_rhsbl_reverse_client dbl.spamhaus.org,
reject_rhsbl_helo dbl.spamhaus.org,
reject_rhsbl_sender dbl.spamhaus.org
そしてmaster.cf
。
smtp inet n - - - - smtpd
#smtp inet n - - - 1 postscreen
#smtpd pass - - - - - smtpd
#dnsblog unix - - - - 0 dnsblog
#tlsproxy unix - - - - 0 tlsproxy
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_restrictions=reject_sender_login_mismatch
残念ながら、別のIPアドレスからメールクライアントを使用してポート587で送信しようとすると、このエラーが発生します。
NOQUEUE: reject: RCPT from unknown[XXX.XXX.XXX.XXX]: 553 5.7.1 <[email protected]>: Sender address rejected: not owned by user [email protected]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[192.168.1.3]>
ポートごとの構成は、master.cf
ではなくmain.cf
で行われます。デフォルトのPostfix構成ファイルには、すでに適切な設定例があり、コメントを外す必要があります。ポート587は、そこでsubmission
ポートとしてラベル付けされています(ポート25はもちろんsmtp
です)。
設定は多少単純化できます。 main.cf
で、デフォルトのポリシー(ポート25用)をrecipient_restrictions
としてのみ指定します。それ以上は必要ありません。
smtpd_recipient_restrictions = permit_mynetworks reject_unverified_recipient reject_rbl_client zen.spamhaus.org reject_rbl _...... permit_auth ____。]拒否
master.cf
で、以前に設定された制限を削除し、認証されたユーザーに無制限のリレーを許可することで、オーバーライドします。
-o smtpd_sasl_auth_enable = yes -o smtpd_reject_unlisted_recipient = no -o smtpd_recipient_restrictions = -o smtpd_recipient_restrictions = -o smtpd_relay_restrictions = permit_da .____。]