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

第16回 FDSとDovecot

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

Dovecotのインストール

Dovecotとは,近年ずいぶんメジャーになってきたオープンソースのPOP3/IMAP4サーバです。数年前までPOP3サーバといえば,QpopperやCourier-imapが有名でしたが,Dovecotはシンプルな作りであるにもかかわらず高機能,セキュア,開発も活発に行われていることから,さまざまな点でお勧めできるソフトウェアです。

一部の方から反感を買うかもしれませんが,もはやQmail系のシステムはメンテナンスやオペレーション的な観点から言えば使い物にならないので,今回の選択肢にはなり得ません。特別な理由が無い限り別のシステムに乗り換えることをお勧めします。

では,ここで簡単に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から簡単に導入することができます。

図1 Dovecotのインストール

# yum -y install dovecot

Dovecotの設定ファイルは/etc/dovecot.confですが,Apacheの設定ファイルなどにInclude構文があるのと同様,DovecotでもLDAP用の設定ファイルは/etc/dovecot-ldap.confのような別ファイルとして管理します。

デフォルトのdovecot.confの中にはさまざまな設定サンプルが記述されているため,とくに他のドキュメントを参照せずとも,直感的に設定を行うことができると思います。その中でも認証関連の設定となるのは,

auth default {
}

で囲まれた部分です。Dovecotはさまざまな認証をサポートしているため,/etc/passwd形式のパスワードファイルを認証用データとすることができますし,PAMに認証を委任することもできます。その他もちろんSQLサーバや今回のようなLDAPサーバにも対応しています。

簡単な例を挙げて,まずはOSの認証データベース(/etc/passwd, /etc/shadow)とは異なる,テキスト形式のパスワードファイルを使用したいとします。この場合の設定は次のようになります。

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

auth default {
《省略》
  # パスワード情報検索
  passdb passwd-file {
    args = /tmp/mypasswd
  }
  # ユーザ情報検索
  userdb passwd-file {
    args = /tmp/mypasswd
  }
《省略》
}

次にパスワードファイルは/etc/passwd同様,おなじみのフォーマットになります。

リスト9 /tmp/mypasswd

user:{plain}password:5000:5000:gecos:/home/mail/bluecoara.net/hnakamitsu:/bin/sh: 

設定ファイルの準備が終わったら,デーモンを再起動して接続テストを行ってみます。

図2 Dovecotの再起動

# /etc/init.d/dovecot restart

図3 POP3接続テスト

% telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
USER user       ←─── ユーザ名を入力
+OK
PASS password   ←─── パスワードを入力
+OK Logged in.
QUIT            ←─── QUITで終了
+OK Logging out.

図4 IMAP4接続テスト

% telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
* OK Dovecot ready.
1 LOGIN user password  ←─── ユーザ名とパスワードを入力
1 OK Logged in.
1 LOGOUT               ←─── LOGOUTで終了
* BYE Logging out
1 OK Logout completed.

うまく接続できたでしょうか?

著者プロフィール

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

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