Postfix-2.3ではdovecotの認証を利用して、SMTP Authを利用することが出来るようになりました。
そこで、Debian(sarge)でPostfix-2.3+dovecotという構成でSMTP Authを設定してみたのですが、結構はまりどころがあったのでまとめます。
SMTP Authの設定自体は実はほとんど問題はなく、簡単に出来ます。
Postfix付属のドキュメント(Postfix SASL Howto)に沿って設定するだけです。
さて、なにがはまりどころかというと、Debian(sarge)のdovecotはバージョンが0.99.14だということです。
Postfixの説明で書かれている設定方法は、1.0以降でなければ使えない書式と設定のようです。
しかし、Debian(sarge)のdovecot設定ファイル、/etc/dovecot/dovecot.confには、
## Dovecot 1.0 configuration file
と書かれているため、気がつくのが遅れました…
[Dovecot] Error in config を参照。
ということで、dovecotも1.0RCをtarボールを持ってきてインストールしたところ、使えるようになりました。
あと、passdb pamが使えなかったため、shadowを使うようにしました。
一応、うちでやった設定内容を紹介しておきます。
postfixのmake時にsaslを使うように指定しデフォルトでdovecotを指定。
> make -f Makefile.init makefiles > make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SASL_SERVER=\"dovecot\"' > make
/etc/postfix/master.cf
submission inet n - - - - smtpd -o smtpd_etrn_restrictions=reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject
/etc/postfix/main.cf
smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated ...
/usr/local/etc/dovecot.conf
auth default { mechanisms = plain login passdb shadow { } userdb passwd { } user = root socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } }
さらに細かな設定については
Postfix + Dovecot - どさにっき
が参考になります。
他のツールを入れずにPostfix+dovecotだけでSMTP Auth可能で、Maildirでもmboxでも使えるため、今後はこの構成がメジャーになっていくのではないかと思いました。