CentOS4 で Postfix + SMTP Auth(SASL)

はまったのでメモ。

CentOS4 + Postfix 環境の submission(587/tcp) で

  • TLS 必須
  • SMTP Auth 必須
  • パスワードは Unix パスワードを使用

にしようと設定を試みたものの SASL LOGIN authentication failed と言われて SMTP 認証に失敗する。CentOS5 なら

  1. saslauthd を起動
  2. /etc/postfix/main.cf に smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem を追記・再起動

で終わりだったのに... と思って postfix と saslauthd の設定を色々いじって試行錯誤してみたものの、サッパリ分からない --;)。

「そういえば会社で A 君がやってたときもなんだか上手く行かなくてかなり苦労していたなぁ。でも何だったっけ?」と後悔しながらふと CentOS4 環境で

# ps -ef | grep sasl
root      5892     1  0 22:52 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
root      5893  5892  0 22:52 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
root      5894  5892  0 22:52 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
root      5897  5892  0 22:52 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
root      5898  5892  0 22:52 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
root      6389  2465  0 23:02 pts/0    00:00:00 grep sasl

と叩き、CentOS5 環境でも

# ps -ef | grep sasl
root      9436     1  0 21:47 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam
root      9437  9436  0 21:47 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam
root      9438  9436  0 21:47 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam
root      9439  9436  0 21:47 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam
root      9440  9436  0 21:47 ?        00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam
root      9797  9157  0 23:00 pts/1    00:00:00 grep sasl

と叩いてみた... なぬ!? pam? 違いはこれか!? と勢い込んで /etc/sysconfig/saslauthd を以下のように修正。

(省略)
# Mechanism to use when checking passwords.  Run "saslauthd -v" to get a list
# of which mechanism your installation was compiled to use.
# MECH=shadow
MECH=pam
(省略)

その後、saslauthd を再起動... おー、上手く行った!*1

*1:っつーか、俺の 2時間を返せよ orz