postfixのchrootでハマった

普段、Red Hat系でなんとなくサーバーを構築しています。

Red Hatのデフォルト設定が私にとって都合がいいのでしょうか、CENTOSならなんとなく動くものがDebian系のデフォルトでは動かないことがあります。

今回、pcDuinoからメールを送りたかったんですけど、ISPのメールサーバーにメールのリレーをするためにSMTP認証をしたかったんですけど、saslauthdとの通信がうまくいかなくて思いっきりハマりました。

chrootされたpostfixがsaslauthdとソケット通信できていなかった。

CENTOSでは、postfixがchrrotしていなかったんですよね。それで、debianでもchrootしていないと思い込んで、そこはノーチェックでした。

/etc/postfix/master.cf はデフォルトで以下のようになっています。

# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n – – – – smtpd

CENTOSだと、

# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n – n – – smtpd

です。

結局、CENTOSのmaster.cf風にchrootしない設定にして、なんとか、postfixとsaslauthdと通信出来るようになりました。

後日の確認になりますけど、おそらく、debian系の/etc/defualt/saslauthdの

OPTIONS="-c"

OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

にするのが正解なんだろうという気がしています。