2020年8月9日日曜日

postfixのメール中継設定

メール中継サーバで利用しているCentOS6のEOLが迫ってきたので、CentOS8に入れ替えました。 その際にpostfixのメール中継サーバ設定で少しはまったのでメモしておきます。

結論から言うと「パラメータのデフォルト値が変わっているのでマニュアルを確認しよう」です。

CentOS8ではpostfix 3.3.1がインストールされますが、compatibility_levelの設定値によりパラメータのデフォルト値が変わります。
postconfの出力からcompatibility_levelを抜き出すと、下記になります。
# postconf | grep compatibility_level
append_dot_mydomain = ${{$compatibility_level} < {1} ? {yes} : {no}}
compatibility_level = 2
mynetworks_style = ${{$compatibility_level} < {2} ? {subnet} : {host}}
relay_domains = ${{$compatibility_level} < {2} ? {$mydestination} : {}}
smtpd_relay_restrictions = ${{$compatibility_level} < {1} ? {} : {permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination}}
smtputf8_enable = ${{$compatibility_level} < {1} ? {no} : {yes}}
#
デフォルトのmain.cfでは、compatibility_levelが2に設定されています。
このためrelay_domainsのデフォルトが空となり、リレーが許可されません。
リレーを許可するには、明示的にrelay_domainsを設定する必要があります。
また、これらパラメータを参照しているパラメータも影響を受けるので注意が必要です。

今回のリプレースでは旧サーバの設定ファイルをコピーせず、デフォルトの設定ファイルから書き直しました。 main.cf内のコメントを読みながら設定していて「The default relay_domains value is $mydestination.」と記載があったため、旧バージョンと同じと考えてしまい、リレーできない原因が分からず暫くはまりました。

マニュアルにはバッチリ記載がありましたので、横着せずマニュアルを確認しようと言うことかと思います。 ちなみにcompatibility_levelのデフォルトは0なので、旧サーバの設定をコピーした場合は挙動が変わることはなかったようです。

0 件のコメント:

コメントを投稿