トップ > コンピューティング環境 > Courier-IMAP インストールメモ

[前ページ] [次ページ]


Courier-IMAP インストールメモ

Author: Takeshi Fujiyoshi
Last update: 2010/06/25

目次

はじめに

NetBSD と FreeBSD で IMAP/POP サーバソフトウェア Courier-IMAP を インストールした際の手順と調べたことの覚え書き、など。

どちらの OS でも NetBSD の pkgsrc からインストールした。 2009年8月ごろの話。

OS のバージョン:

pkgsrc の Courier-IMAP のバージョン:

目指す構成

インストール

  1. パッケージのインストール

    pkgsrc/mail/courier-imap で make install する。 couriertcpd、courier-authlib、courier-maildir も一緒にインストールされる。

  2. 起動スクリプトを用意

    /usr/pkg/share/examples/rc.d/ 以下にある courierimap、courierimaps、courierpop、courierpops、および authdaemond を /etc/rc.d にコピー。 /etc/rc.conf に以下のように設定する。:

    courierimap=YES
    courierimaps=YES
    courierpop=YES
    courierpops=YES
    authdaemond=YES
    

    使わないやつは NO にしておく。authdaemond は必須。 各スクリプトを引数 start と共に実行すれば起動する。

設定

IMAP/POP3 デーモンの設定

/usr/pkg/etc/courier/{imapd,imapd-ssl,pop3d,pop3d-ssl}

各デーモンに渡すオプションと環境変数を設定するシェルスクリプト。 デーモン起動用のシェルスクリプトからインクルードされる。

インストール時の設定から修正した点:

  • TLS_PROTOCOL=SSL3 を SSL23 に変更した。 理由は Ruby 1.8.7 の net/imap を使ってSSLで接続すると失敗したため。 stunnel では SSL3 のままでも問題なかった。

その他はインストール時の設定のままで今のところ問題なし。

ユーザ認証の設定

/usr/pkg/etc/authlib/authdaemonrc

認証デーモン(authdaemond)に渡すオプションと環境変数を設定する シェルスクリプト。デーモン起動用のスクリプトからインクルードされる。 /etc/passwd によるユーザ認証で良ければインストールされた設定の ままで(今のところ)問題なし。 たぶん authmodulelistorig="authpwd" がそれ。

未確認だが、PAM を使う場合は authmodulelistorig="authpam" と設定した上で /etc/pam.d/{imap,pop3(?)} を作成する。

/etc/pam.d/imap の例:

auth     required  pam_unix.so
account  required  pam_unix.so
session  required  pam_permit.so

インストールされた設定ファイルでは PAM は使っていないようだが、 出来るだけ PAM を使うのがベターな設計だとは思う。

SSL証明書の作成

証明書ファイルのパスは、上述の IMAP/POP3 デーモンの設定ファイル /usr/pkg/etc/courier/{imapd-ssl,pop3d-ssl} の中で 変数 TLS_CERTFILE に設定される。 インストール時の設定では /usr/pkg/etc/courier/{imap,pop3d}.pem 。 この PEM ファイルには、証明書と秘密鍵の両方を含む(くっつけるだけ)。

スクリプト /usr/pkg/sbin/{mkimapdcert,mkpop3dcert} を実行すると、 /usr/pkg/etc/courier/{imap,pop3d}.pem が自動生成される。 その際、(opensslの)コンフィグファイルとして /usr/pkg/etc/courier/{imapd,pop3d}.cnf が使用される。

Maildirフォルダの作成

/usr/pkg/bin/courier-maildirmake により空のフォルダの作成する。

例:

$ courier-maildirmake ~/Maildir

と言っても、~/Maildir の下に3つのディレクトリ cur、new、tmp が作成されるだけ。オプションはいくつかあるようである。 共有フォルダが何とかかんとか。

他にも Maildir フォルダの操作に関する以下のコマンドあり。

  • courier-maildirkw
  • courier-maildiracl

ファイル構成

絶対パスでないものは /usr/pkg からの相対パスとする。 ドキュメントや設定例の類は除外している。

未調査のファイルは必要になったら調査して説明を追加していく予定。

courier-imap に含まれるファイル

実行バイナリ

  • bin/imapd
  • libexec/courier/imaplogin
  • libexec/courier/courierpop3d
  • libexec/courier/courierpop3login

#何でこういうパス、ファイル名なのか?

シェルスクリプト

sbin/{imapd,imapd-ssl,pop3d,pop3d-ssl}

IMAPサーバ、POPサーバの複雑な起動/停止処理を行なうシェルスクリプト。 引数に "start" または "stop" を指定する。 パラメータは etc/courier/{imapd,imapd-ssl,pop3d,pop3d-ssl} をインクルードすることで取得する。

IMAPの場合、大体に以下のように実行している。:

courierlogger 引数色々 couriertcpd 引数色々 imaplogin  imapd 引数
sbin/{mkimapdcert,mkpop3dcert}
SSLの自己署名証明書を作成するシェルスクリプト。 opensslまたはgnutls(certtool)を使用。 opensslの-configオプションに etc/courier/{imapd,pop3d}.cnf を指定。

couriertcpd に含まれるファイル

実行バイナリ

  • bin/couriertls
  • sbin/couriertcpd

courier-authlib に含まれるファイル

実行バイナリ

  • bin/courierauthconfig
  • sbin/authenumerate
  • sbin/authpasswd
  • sbin/authtest
  • sbin/courierlogger
  • sbin/userdbpw
  • libexec/courier-authlib/authdaemond
  • libexec/courier-authlib/makedatprog

シェルスクリプト

sbin/authdaemond

認証デーモンを起動するシェルスクリプト。 引数には start か stop を指定(たぶん)。 etc/authlib/authdaemonrc をインクルードして環境変数を設定した上、 以下のように実行している様子。:

courierlogger 引数色々 -start authdaemond

Perlスクリプト(未調査)

  • sbin/sysconftool
  • sbin/makeuserdb
  • sbin/pw2userdb
  • sbin/userdb
  • sbin/userdb-test-cram-md5

expectスクリプト?

以下は /usr/pkg/bin/expect をインタプリタとするスクリプトだが、 そんなプログラムは見当たらない。

  • libexec/courier-authlib/authsystem.passwd

ヘッダ、ライブラリ

未調査だが、IMAP サーバ動かすだけなら関係ないだろう。

  • include/courier_auth_config.h
  • include/courierauth.h
  • include/courierauthdebug.h
  • include/courierauthsasl.h
  • include/courierauthsaslclient.h
  • lib/courier-authlib/libcourierauth.{la,a,so*}
  • lib/courier-authlib/libcourierauthcommon.{la,a,so*}
  • lib/courier-authlib/libcourierauthsasl.{la,a,so*}
  • lib/courier-authlib/libcourierauthsaslclient.{la,a,so*}
  • lib/courier-authlib/libauthpwd.{la,a,so*}
  • lib/courier-authlib/libauthpipe.{la,a,so*}
  • lib/courier-authlib/libauthuserdb.{la,a,so*}

courier-maildirに含まれるファイル

実行バイナリ(未調査)

  • bin/courier-maildiracl
  • bin/courier-maildirkw
  • bin/courier-maildirmake
  • bin/deliverquota

シェルスクリプト(未調査)

  • sbin/sharedindexinstall

Perlスクリプト(未調査)

  • sbin/sharedindexsplit

その他

ログ

/var/log/maillog
ここにログが出力される。問題にぶつかったらまず確認。

メールボックスの見え方

IMAP クライアントからのメールボックスの見え方について。 最上位に置かれらメールボックスは全て INBOX 配下にあるように見える (たしか dovecot では最上位に置かれているように見えたけど)。


トップ > コンピューティング環境 > Courier-IMAP インストールメモ

[前ページ] [次ページ]