最初に
例のとごく、前回の記事から少し時間が経ってしまいましたが、今回と次回でDovecotによりPOP3/IMAP4サービスを構築することで、一連のFDSのお話はいったん終了する予定です。
まずは前回同様、それぞれの設定ファイルやデータについて整理しておきましょう。
Dovecotのインストール
Dovecotとは、近年ずいぶんメジャーになってきたオープンソースのPOP3/IMAP4サーバです。数年前までPOP3サーバといえば、QpopperやCourier-imapが有名でしたが、Dovecotはシンプルな作りであるにもかかわらず高機能、セキュア、開発も活発に行われていることから、さまざまな点でお勧めできるソフトウェアです。
では、ここで簡単にDovecotの機能を紹介しておきます。Dovecotは本当に高機能で設定もシンプルなので、繰り返しになりますが、ぜひこの機会に乗り換えを検討してみてください。
- 高速で安全
- POP3/POP3S/IMAP/IMAPS対応
- LDAP/SQLなどさまざまな認証サービスに対応
- (Cyrus-saslとは異なる)独自SASLサポート
- バーチャルドメイン・バーチャルユーザサポート
- APOP/CRAM-MD5/DIGEST-MD5のようなチャレンジ・レスポンス認証に対応
- プラグインなどを活用することで、Sieve(IMAP4時のメール振り分け)やソフトウェアQuotaに対応
- MDA等の機能も付属
- mboxやMaildirのメールボックスをサポート
- 豊富なドキュメント
Fedora CoreやCentOSでは標準のリポジトリにも登録されているため、yumから簡単に導入することができます。
Dovecotの設定ファイルは/etc/dovecot.confですが、Apacheの設定ファイルなどにInclude構文があるのと同様、DovecotでもLDAP用の設定ファイルは/etc/dovecot-ldap.confのような別ファイルとして管理します。
デフォルトのdovecot.confの中にはさまざまな設定サンプルが記述されているため、とくに他のドキュメントを参照せずとも、直感的に設定を行うことができると思います。その中でも認証関連の設定となるのは、
で囲まれた部分です。Dovecotはさまざまな認証をサポートしているため、/etc/passwd形式のパスワードファイルを認証用データとすることができますし、PAMに認証を委任することもできます。その他もちろんSQLサーバや今回のようなLDAPサーバにも対応しています。
簡単な例を挙げて、まずはOSの認証データベース(/etc/passwd, /etc/shadow)とは異なる、テキスト形式のパスワードファイルを使用したいとします。この場合の設定は次のようになります。
次にパスワードファイルは/etc/passwd同様、おなじみのフォーマットになります。
設定ファイルの準備が終わったら、デーモンを再起動して接続テストを行ってみます。
うまく接続できたでしょうか?
LDAP向けの設定
先ほどの簡単な例をふまえて、LDAP用のdovecot.confの設定は次のようになります。単に別ファイルを定義しているだけです。
次に、肝となるdovecot-ldap.confの設定例は次の通りです。
設定を順番に見ていくと、まずはいつものようにLDAPサーバのアドレスやバインド情報を設定しています。今回も便宜上、管理者であるDirectory Managerを用いていますが、実際の環境では必ず閲覧専用のDNを作成して設定するようにしてください。
基本設定の後は、user_filter, user_attrs, pass_filter, pass_attrsでそれぞれユーザ、パスワード検索用の設定を行っています。たとえば、POP3セッションで
- ユーザ名: foo@example.com
- パスワード: bar
という情報が入力された場合、これだけの情報ではLDAPサーバから何を検索し、ユーザから受け取った値と何を比較すれば良いのかわかりません。そのためにPOP3/IMAP4時のユーザ情報は
という検索を行った結果から取得する、さらにパスワードはuserPassword属性に格納されており、ホームディレクトリ取得のためにmailMessageStore属性を参照する、といった形の設定を行っています。
設定が完了したら再びプロセスを再起動し、LDAP上に保存されているメールアドレスとパスワードでログインできるかを確認してください。もしうまくいくようであれば、メールソフトの設定を行ってみましょう!
長い道のりでしたがお疲れさまでした! もし接続できないようであれば、DovecotやFDSのログファイルなどを確認してみてください。
次回は、引き続きDovecotでのPOP/IMAP認証の最適化について説明します。