そろそろLDAPにしてみないか?

第16回 FDSとDovecot

この記事を読むのに必要な時間:およそ 4 分

LDAP向けの設定

先ほどの簡単な例をふまえて,LDAP用のdovecot.confの設定は次のようになります。単に別ファイルを定義しているだけです。

リスト10 /etc/dovecot.confの一部

auth default {
《省略》
  # パスワード情報検索
  passdb ldap {
    args = /etc/dovecot-ldap.conf
  }
  # ユーザ情報検索
  userdb ldap {
    args = /etc/dovecot-ldap.conf
  }
《省略》
}

次に,肝となるdovecot-ldap.confの設定例は次の通りです。

リスト11 /etc/dovecot-ldap.conf

# LDAPサーバ
hosts = localhost

# パスワード検索用のバインドDN,パスワード。実際には管理者ではない専用ユーザを使用するように! 
dn = cn=Directory Manager
dnpass = dssecret

# 検索ベースとスコープ
base = ou=Mail,dc=bluecoara,dc=net
scope = subtree

# ユーザを識別するための検索フィルタ
user_filter = (mail=%u)
# mailMessageStore属性をホームディレクトリとみなす
user_attrs = mailMessageStore=home

# パスワードを識別するための検索フィルタ
pass_filter = (mail=%u)
# mail属性をユーザ名,userPassword属性をパスワードとみなす
pass_attrs = mail=user,userPassword=password

# 認証スキーマ。LDAPサーバ側で平文パスワードを保持するため,PLAINと設定
default_pass_scheme = PLAIN

# メールボックスにアクセスする時のUID/GID(Postfix側の設定とあわせる)
user_global_uid = 5000
user_global_gid = 5000

設定を順番に見ていくと,まずはいつものようにLDAPサーバのアドレスやバインド情報を設定しています。今回も便宜上,管理者であるDirectory Managerを用いていますが,実際の環境では必ず閲覧専用のDNを作成して設定するようにしてください。

基本設定の後は,user_filter, user_attrs, pass_filter, pass_attrsでそれぞれユーザ,パスワード検索用の設定を行っています。たとえば,POP3セッションで

  • ユーザ名: foo@example.com
  • パスワード: bar

という情報が入力された場合,これだけの情報ではLDAPサーバから何を検索し,ユーザから受け取った値と何を比較すれば良いのかわかりません。そのためにPOP3/IMAP4時のユーザ情報は

リスト12 /etc/dovecot-ldap.conf

(mail=%u)

※ %uにはPOP3セッション時に入力されたユーザ名が代入されます。

という検索を行った結果から取得する,さらにパスワードはuserPassword属性に格納されており,ホームディレクトリ取得のためにmailMessageStore属性を参照する,といった形の設定を行っています。

設定が完了したら再びプロセスを再起動し,LDAP上に保存されているメールアドレスとパスワードでログインできるかを確認してください。もしうまくいくようであれば,メールソフトの設定を行ってみましょう!

長い道のりでしたがお疲れさまでした! もし接続できないようであれば,DovecotやFDSのログファイルなどを確認してみてください。

次回は,引き続きDovecotでのPOP/IMAP認証の最適化について説明します。

著者プロフィール

中満英生(なかみつひでお)

大学時代に出会ったSolarisがきっかけでUNIXの世界へ。その後ホスティングプロバイダ,データセンターで実務経験を積む傍ら,雑誌記事の執筆や技術セミナーの講師を務める。サーバ設定の他,セキュリティに関する著作や技術者エッセイも執筆経験あり。