web-dev-qa-db-ja.com

Postfixの「Relay Access Denied」を修正するにはどうすればよいですか?

今朝、セキュリティ証明書の名前の不一致の問題を修正するために、から推奨される手順に従いましたメールサーバーのSSLを修正する方法ですが、クライアント(この場合、クライアントはWindowsメール)からメールを送信しようとすると、次のエラーが表示されます。

拒否されたメールアドレスは「[email protected]」でした。被験者 'これはテストです。 '、アカウント:' mail.domain.com '、サーバー:' mail.domain.com '、プロトコル:SMTP、サーバーの応答:' 554 5.7.1:リレーアクセスが拒否されました '、ポート:25、セキュア(SSL):いいえ、サーバーエラー:554、エラー番号:0x800CCC79

編集する:このアカウントからメールを取得することはできますが、同じドメインの他のアカウントにメールを送信します。ドメイン外の受信者にメールを送信できません。

TLSを完全に無効にしてみましたが、サイコロはありません。それでも同じエラーが発生します。

ファイルをチェックするとmail.log、次のように見えます。

Jul 18 08:24:41 company imapd: LOGIN, [email protected], ip=[::ffff:111.111.11.11], protocol=IMAP
Jul 18 08:24:42 company imapd: DISCONNECTED, [email protected], ip=[::ffff:111.111.11.11], headers=0, body=0, rcvd=83, sent=409, time=1
Jul 18 08:25:19 company postfix/smtpd[29282]: connect from company.university.edu[111.111.11.11]
Jul 18 08:25:19 company postfix/smtpd[29282]: NOQUEUE: reject: RCPT from company.university.edu[111.111.11.11]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<UserPC>
Jul 18 08:25:19 company postfix/smtpd[29282]: disconnect from company.university.edu[111.111.11.11]
Jul 18 08:25:22 company imapd: DISCONNECTED, [email protected], ip=[::ffff:111.111.11.11], headers=13, body=142579, rcvd=3289, sent=215892, time=79

ファイルmain.cfは次のようになります。

#
# Postfix MTA Manager Main Configuration File;
#
# Please do NOT edit this file manually;
#

#
# Postfix directory settings; These are critical for normal Postfix MTA functionallity;
#

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

#
# Some common configuration parameters;
#

inet_interfaces = all
mynetworks = 127.0.0.0/8
mynetworks_style = Host

myhostname = mail.domain.com
mydomain = domain.com
myorigin = $mydomain

smtpd_banner = $myhostname ESMTP 2.4.7.1 (Debian/GNU)
setgid_group = postdrop

#
# Receiving messages parameters;
#

mydestination = localhost, company 
append_dot_mydomain = no
append_at_myorigin = yes
transport_maps = mysql:/etc/postfix/transport.cf

#
# Delivering local messages parameters;
#

mail_spool_directory = /var/spool/mail
mailbox_size_limit = 0
mailbox_command = procmail -a "$EXTENSION"

biff = no

alias_database = hash:/etc/aliases

local_recipient_maps =

#
# Delivering virtual messages parameters;
#
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf
virtual_uid_maps=mysql:/etc/postfix/uids.cf
virtual_gid_maps=mysql:/etc/postfix/gids.cf
virtual_mailbox_base=/usr/local/virtual
virtual_maps=mysql:/etc/postfix/virtual.cf
virtual_mailbox_domains=mysql:/etc/postfix/virtual_domains.cf


#
# SASL paramters;
#
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s

smtp_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtp_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtp_tls_key_file = /etc/postfix/ssl/smptd.key

smtpd_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smptd.key

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain =

broken_sasl_auth_clients = yes

smtpd_sender_restrictions =
        permit_sasl_authenticated
        permit_mynetworks

smtpd_recipient_restrictions =
        permit_sasl_authenticated
        check_recipient_access hash:/etc/postfix/filtered_domains
        permit_mynetworks
        reject_unauth_destination

ちなみに、私の雇用主は、クライアント(ThunderbirdとOutlook)からローカルネットワーク内と外部の両方からメールを送信できるようにしたいと考えています。

59
Noah Goodrich

TLSはsmtpセッションでの暗号化を有効にするだけで、Postfixがメッセージをリレーすることを許可するかどうかに直接影響しません。

中継拒否メッセージは、smtpd_recipient_restrictionsルールが一致しなかったために発生します。メッセージが通過できるようにするには、これらの条件の1つを満たす必要があります。

smtpd_recipient_restrictions =
    permit_sasl_authenticated
    check_recipient_access hash:/etc/postfix/filtered_domains
    permit_mynetworks
    reject_unauth_destination

それらのルールを説明するには:

permit_sasl_authenticated

sASL経由で認証された送信者を許可します。これは、通常はブロックされているネットワーク外のユーザーを認証するために必要です。

check_recipient_access

これにより、postfixは/ etc/postfix/filtered_domainsで受信者アドレスに基づくルールを探します。 (ファイル名のファイル名から判断すると、おそらく特定のドメインをブロックしているだけです... gmail.comがそこにリストされているかどうかを確認してください。)

permit_mynetworks

これにより、$ mynetworksで指定されたIP範囲と一致するIPアドレスでホストが許可されます。投稿したmain.cfでは、$ mynetworksが127.0.0.1に設定されているため、サーバー自体によって生成された電子メールのみがリレーされます。

その構成に基づいて、メールクライアントはメッセージのリレーを許可される前にSMTP認証を使用する必要があります。 SASLが使用しているデータベースがわかりません。これは/usr/lib/sasl2/smtpd.confで指定されていると思われます。おそらく仮想メールボックスと同じデータベースも使用しているため、メールクライアントでSMTP認証を有効にして、すべてを設定できるはずです。

60
Brandon
smtpd_use_tls = no

TLSを無効にしたので、mynetworksに追加してローカルネットワークを承認する必要があります。例えば、

mynetworks = 192.168.1.0/24 127.0.0.0/8

これにより、ローカルネットワークからの送信のみが修正されます。ローカルネットワークの外部からメールを送信するには、TLS認証を機能させる必要があります。

15
pgs

デフォルトのrelay_domains=$mydestinationなので、mydestinationでdomain.comが恋しいと思うので、次の行を設定に追加できます。

mydestinations = $mydomain, $myhostname, localhost, localhost.localdomain

または:

relay_domains = $mydomain

Postfix confファイルを編集するたびに、postfixサーバー(service postfix restart)を再起動することを忘れないでください。

6
Dzung Nguyen

Outlookで同じ問題があり(dovecoteおよびpostfixバックエンドを使用)、2日間かけて解決策を探し、構成ファイルを微調整しました。 Outlookのメール設定の[送信]タブで[サーバーは認証が必要]をオンにするだけで、メッセージがGmailに送信されます。ここで設定を見つける方法の詳細な説明 http://support.bluetie.com/node/44 を参照してください。

2
Dee

この問題はしばらくの間私を悩ませていました。 server1.domain.comからserver2.domain.comに接続しようとしていました。

これが私がこれを修正した方法です-

#/etc/postfix/main.cf
mydomain = server1.domain.com
myhostname = $mydomain
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/postfix/virtual
myorigin = /etc/mailname
mydestination = localhost.localdomain localhost $mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

また、/ etc/hostsと/ etc/hostnameが正しく設定されていることを確認し、ネットワークの変更後に次のコマンドを実行する必要があります。

Sudo service networking restart

およびpostfix構成変更後の以下

Sudo service postfix reload
2
A23

私にとって:事実に関係なくlocalhostmynetworksに追加する必要がありました127.0.0.0/8はすでにそこにありました。だから、今それは見えます:

mynetworks = 1.1.1.1/32, 127.0.0.0/8, localhost

0
Putnik