Dovecot で IMAP/POP3 の LDAP認証を行う環境を作ってみた。
Dovecot SASL を使った SMTP Auth 環境の構築方法は、『Postfix で SMTP Auth(Dovecot SASL編)』参照。
名称 | バージョン | 備考 |
---|---|---|
Solaris x86 | 10 | |
Dovecot | 1.0 rc7 | 2006.09.11時点での最新版。 Dovecot のインストールや設定の詳細は、『Dovecot で IMAP サーバ構築』参照。 |
OpenLDAP | 2.3.27 | 今回は、CSWパッケージを使用した。 CSWパッケージについては、『Solarisへのフリーソフトのインストール方法』参照。 |
メールの保存形式 | --- | やっぱ Maildir でしょう。 |
LDFLAGS = -L/opt/csw/lib -R/opt/csw/lib CPPFLAGS = -I/opt/csw/include
$ ./configure --with-ldap $ make # maek install
LDAP認証に必要な部分のみを記述する。
基本的な設定は『Dovecot で IMAP サーバ構築』参照。
auth default { mechanisms = plain passdb pam { ← ローカル認証に pam を使用 } passdb ldap { ← ローカル認証に失敗しららLDAP認証 args = /usr/local/etc/dovecot-ldap.conf } userdb passwd { ← ローカル認証のユーザ情報は passwd ファイルから取得 } userdb static { ← LDAP認証時のユーザ情報(本環境では static に設定した) args = uid=5000 gid=5000 home=/var/mail/vhosts/%d/%n ← ※1 } user = root }
hosts = ldap.example.com auth_bind = yes base = o=Example Limited, c=jp pass_filter = (mail=%u)
キャッシュしないと毎回LDAPサーバに問い合わせに行く(pamで解決したユーザは除く)ので、それを避けるにはキャッシュを有効にする。
dovecot.confauth_cache_size = 10 ← キャッシュサイズの最大値[KB](デフォルトは0で無効) #auth_cache_ttl = 3600 ← キャッシュデータの生存時間[sec](デフォルトは1時間)dovecot-ldap.conf
default_pass_scheme = PLAIN ← 本環境では、パスワードを plaintext で扱ったので設定
info_log_path = /tmp/dovecot-log auth_verbose = yes auth_debug = yes auth_debug_passwords = yes
Postfix 2.3.3(2006.09.11時点での最新版)でのバーチャルメールボックスの設定例を簡単に説明しておく。
virtual_mailbox_domains = example.com virtual_mailbox_base = /var/mail/vhosts virtual_mailbox_maps = dbm:/etc/postfix/vmailbox virtual_minimum_uid = 1000 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000
user1@example.com example.com/user1/Maildir/
# postmap /etc/postfix/vmailbox