2009年10月23日金曜日

FreeBSD でサーバ構築 #17 UW IMAP 編

林檎生活100: FreeBSD でサーバ構築 #16 SMTP over SSL: TLS による暗号化通信の続き.今回は,UW IMAP で IMAP サーバを構築する.

UW IMAP は,ワシントン大学で開発された IMAP サーバで,リファレンス実装的な立場のものである.伝統的な UNIX のメール環境(FreeBSD のメール環境も含む.)に親和性が高く,導入が容易であるので,今回の IMAP サーバに選択した.とりあえず,IMAP over SSL が使用でき,IMAP の基本的な機能を持っているので十分だろう.ただ,ほかの IMAP サーバよりもメールボックスへのアクセスに時間がかかる(どちらかというと,サーバではなくメールボックス形式の問題.)ので,大量のメールを捌く必要があるのであれば,次回以降に解説する Cyrus IMAP を使用した方がいいかもしれない.なお,UW IMAP の持つ機能の詳細は,Web サイトや参考文献を参照してほしい.

UW IMAP の動作はとてもシンプルだ.メールクライアントが IMAP サーバへのアクセスを試みると inetd (TCP/UDP ポートを監視し,そのポートにパケットが届くと対応づけられたサーバを起動するデーモン.)によって起動され,メールボックスを操作したり,情報を返したりするように動作する.また,サーバが起動された際に,ローカルのメールボックス (/var/mail) からユーザのメールボックス (~/mbox) にメールを移動させる動作をする.(ただし,~/mbox が存在しない場合は,ローカルのメールボックスを IMAP サーバのメールボックスと見なす.)これによって,サーバ上でメールを mail コマンドで読んでも,メールクライアントで UW IMAP を経由してメールを読んでも,ユーザのメールボックスにメールが保持される.ゆえに,自然に IMAP サーバを導入することができる.

インストール方法は,次のとおりである.

1. Ports からインストールする.
SSL を使用しない場合は,SSL_AND_PLAINTEXT にチェックを入れること.デフォルトで,SSL を使用しない認証をはじくようにコンパイルされるため.
# cd /usr/ports/mail/imap-uw
# make install clean



2. inetd の設定ファイル /etc/inetd.conf の該当行を次のように有効化する.
# example entry for the optional imap4 server
#
imap4 stream tcp nowait root /usr/local/libexec/imapd imapd(コメントを外す.)

3. /etc/rc.conf に次の行を追加し, inetd を有効化する.
inetd_enable="YES"

4. inetd を起動する.
# /etc/rc.d/inetd start

5. 証明書を配置する.
# cd /etc/mail/certs
# mkdir /usr/local/certs
# umask 066
# cat key.pem cert.pem > /usr/local/certs/imapd.pem
# umask 022

鍵と証明書を同じファイルに記述して,/usr/local/certs に imapd.pem というファイル名で配置するだけ.(場所とファイル名は固定みたい.)

6. メールボックスのスケルトンを作っておく.
# touch /usr/share/skel/mbox

これは,新規ユーザを追加したときに自動的に mbox がホームディレクトリに作成されるようにするためだ.UW IMAP は,ホームディレクトリに mbox があると /var/mail からメールを取得してくるという仕様になっていて,mbox が無い場合は /var/mail のメールボックスを直接参照する.デフォルトのままユーザが使用すると,/var/mail 以下にメールが蓄積され,論理パーティションを切っている /var を圧迫することになりかねないので,このようなスケルトンを作成する.(まぁ,ssh や ftp でログインされて,mbox を消されたら,結局 /var/mail にメールがたまるわけだけどね.)

これで設定完了♪

外部から接続する場合は,TCP の143番に対してのポートマッピングを設定しよう.また,認証については,PAM を使用しているのだが,/etc/pam.d/imap の内容のままで問題ないので省略した.

次回は,Cyrus IMAP の設定について説明する.Cyrus IMAP には,振り回されたからなぁ.(自分のミスでwww)

参考文献:
University of Washington: IMAP Information Center
IMAP

0 件のコメント: