web-dev-qa-db-ja.com

Postfixにより、SASL認証済みユーザーは任意のIPアドレスから送信できます

電子メールを受信するにはポート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]>
2
Vortico

ポートごとの構成は、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 .____。]
2
user1686