2014年2月5日水曜日

Postfix2.10以降で発生するリレー接続エラー (454:Relay access denied)

554ではないRelay access denied

Postfixを2.9以前のバージョンから2.10以降のバージョンへ更新すると、 次のようなエラーが発生してリレー接続が出来なくなってしまう場合があるようです。
軽くハマったので残しておきます。(・ω・`)

said: 454 4.7.1 <xxxxxxx@xxxxxxxx.xxx>: Relay access denied (in reply to RCPT TO command)

どうやら2.10以降では、パラメータとデフォルト値などに少し変更があったようです。
以下はpostfix.orgのマニュアルから抜粋。

smtpd_relay_restrictions (default: permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination)

Access restrictions for mail relay control that the Postfix SMTP server applies in the context of the RCPT TO command, before smtpd_recipient_restrictions.

This feature is available in Postix 2.10 and later.

smtpd_relay_restrictions (RCPT TOコマンドの場面で適用するメールリレー用のアクセス制限設定)
2.9以前はsmtpd_recipient_restrictionsパラメータで設定されていたものが、このパラメータで設定するようになったとの事です。

取り敢えず、2.9以前のsmtpd_recipient_restrictionsパラメータのデフォルト値を確認してみました。

[root@localhost ~]# postconf smtpd_recipient_restrictions
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

2.10以降ではsmtpd_relay_restrictions パラメータのデフォルト値は以下。
(下位互換の確保として、smtpd_recipient_restrictionsのパラメータ自体も使えはするみたいですが、でも値は空になっています。)

[root@localhost ~]# postconf smtpd_relay_restrictions 
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 

[root@localhost ~]# postconf smtpd_recipient_restrictions
smtpd_recipient_restrictions =  

今回の場合では、アップデートによってpermit_sasl_authenticated値が追加された事で、SMTP:454の応答が返却されていたんですね。