2018年3月14日水曜日

Postfixで"454 4.7.1 Relay access denied"で送信が失敗する

Postfixでメール送信を行う際に、/var/log/maillogに以下エラーが出力されて、送信が拒否されることがある。

------------------------------
Feb 17 08:26:31 t1110rh72 postfix/smtpd[10936]: connect from unknown[192.168.11.82]
Feb 17 08:26:31 t1110rh72 postfix/smtpd[10936]: NOQUEUE: reject: RCPT from unknown[192.168.11.82]: 454 4.7.1 <test2@example100.com>: Relay access denied; from=<ex2-1@example2.com> to=<test2@example100.com> proto=ESMTP helo=<[192.168.11.82]>
Feb 17 08:27:36 t1110rh72 postfix/smtpd[10936]: disconnect from unknown[192.168.11.82]
------------------------------

これはメールクライアントにおいてもエラーとして表示される。


エラー原因

Postfixのmain.cfの以下2つの設定値が適切に設定されていないことが原因となる。
  • mynetworks
  • smtpd_relay_restrictions
エラー発生時の設定内容を抜粋する。

------------------------------
mynetworks = 127.0.0.0/8
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
------------------------------

smtpd_relay_restrictionsは、メールをリレーをする際の制限ルールを記載する。デフォルトで、「permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination」が設定されており、それぞれの意味は以下の通りとなる。
  • permit_mynetworks:mynetworksに記載されたクライアントからのメールリレーを許可
  • permit_sasl_authenticated:SASL認証されたメールのリレーを許可
  • defer_unauth_destination:不明な宛先からのメールリレーを一時的なエラーコード(4xx)で拒否
上記の3つのルールは先頭から順番に処理されるようだ。今回の場合、mynetworksにメールクライアントのIPアドレス登録がされておらず、SASL認証もしない設定だったため、defer_unauth_destinationの制限に該当し、「Relay access denied」となった。

したがって、エラーを回避するためには、メールクライアントのIPアドレスをmynetworksに登録すればよい。例えば、メールクライアントのIPアドレスが192.168.11.82であれば以下のように記載する。

------------------------------
mynetworks = 127.0.0.0/8, 192.168.11.82
------------------------------

参考

・Postfix Configuration Parameters - smtpd_relay_restrictions
http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions

0 件のコメント:

コメントを投稿

人気の投稿