2009年10月30日金曜日

FreeBSD でサーバ構築 #18 Cyrus IMAP 編

林檎生活100: FreeBSD でサーバ構築 #17 UW IMAP 編の続き.今回は,Cyrus IMAP で IMAP サーバを構築してみる.

Cyrus IMAP は,メールボックスを1箇所で集中管理するタイプのサーバで,クウォータを設定できたり,サーバサイドでのメールフィルタ (Sieve) を使用できたりする.UW IMAP に比べ高機能で高性能だが,その分設定する項目も多くなっているので,導入は少し面倒である.このエントリでは,UW IMAP 編で UW IMAP を導入したときと同等の機能の IMAP サーバを構築することを目指すことにする.つまり,IMAP over SSL なサーバであり,クウォータやメールフィルタの設定は行わない.(そのような設定に付いては,参考文献を参照してほしい.)

Cyrus IMAP の動作は,UW IMAP の動作とは大きく異なる.UW IMAP のように UNIX のメール環境と共存するわけではなく,完全に独立したメールボックスを構成する.そのため,サーバにログインして mail コマンドでメールを読むことはできなくなる.あくまで IMAP(設定によっては POP も可能.)でメールボックスにアクセスする.UNIX のメール環境における,ローカルのメールボックス (/var/mail) とユーザのメールボックス (~/mbox) は使用しないのだ.Sendmail のローカル配信が Cyrus IMAP のメールボックスになるように設定するので,このような動作になる.

さて,さっそくインストールと設定をしていこう.

1. Ports からインストールする.
# cd /usr/ports/security/cyrus-sasl23
# make install clean



2. cyrus ユーザの所有権を持つ証明書と秘密鍵を /var/imap/certs などに配置する.

3. 設定ファイル (/usr/local/etc/imapd.conf) を変更する.下記設定項目について,該当行を変更する.
allowplaintext: yes
admins: root
sasl_pwcheck_method: saslauthd
sasl_mech_list: plain
tls_cert_file: /var/imap/certs/cert.pem
tls_key_file: /var/imap/certs/key.pem
tls_ca_file: /var/imap/certs/cacert.pem
tls_ca_path: /var/imap/certs

4. メールスプールなどを作成・設定するスクリプトを実行する.
# /usr/local/cyrus/bin/mkimap

5. /etc/rc.conf に次の行を追加する.
cyrus_imapd_enable="YES"

6.Cyrus IMAP を起動する.DB_ERROR ってのが大量に出るが,ユーザのメールボックスにメールが配信されると,そのメッセージはでなくなるので気にしない.
# /usr/local/etc/rc.d/imapd start

7. ユーザのメールボックスを作成する.
# cyradm --user root localhost
> createmailbox user.takuya
> quit

8. Sendmail のローカル配信を Cyrus IMAP にするので,設定ファイル (僕の環境では,/etc/mail/lucifer.legna.org.mc である.) に以下の行を追記する.
dnl Cyrus IMAP options
define(`confLOCAL_MAILER', `cyrusv2')
MAILER(`cyrusv2')

9. Sendmail に設定を反映し,再起動する.
# cd /etc/mail
# make install
# /etc/rc.d/sendmail restart


設定完了♪メールの送受信をしてテストしてみてほしい.WAN 側から接続するときは TCP の143番へのポートマッピングを設定すること.

残った問題として,IMAP over TLS の状態じゃなく,平文の状態でもログインができてしまうことがある.imapd.conf の allowplaintext を no にすればいいのだけど,そうすると cyradm が使えなくなる.うーん,どうしたらいいのかな.

次回は,メールのちょっとした設定などについて解説して,メール編は終わりの予定♪では,また.

参考文献:
Cyrus IMAP Server v2.3 Documentation
IMAP

0 件のコメント: