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でも使えるため、今後はこの構成がメジャーになっていくのではないかと思いました。