目次
NetBSD と FreeBSD で IMAP/POP サーバソフトウェア Courier-IMAP を インストールした際の手順と調べたことの覚え書き、など。
どちらの OS でも NetBSD の pkgsrc からインストールした。 2009年8月ごろの話。
OS のバージョン:
pkgsrc の Courier-IMAP のバージョン:
パッケージのインストール
pkgsrc/mail/courier-imap で make install する。 couriertcpd、courier-authlib、courier-maildir も一緒にインストールされる。
起動スクリプトを用意
/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 と共に実行すれば起動する。
各デーモンに渡すオプションと環境変数を設定するシェルスクリプト。 デーモン起動用のシェルスクリプトからインクルードされる。
インストール時の設定から修正した点:
その他はインストール時の設定のままで今のところ問題なし。
認証デーモン(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 を使うのがベターな設計だとは思う。
証明書ファイルのパスは、上述の 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 が使用される。
/usr/pkg/bin/courier-maildirmake により空のフォルダの作成する。
例:
$ courier-maildirmake ~/Maildir
と言っても、~/Maildir の下に3つのディレクトリ cur、new、tmp が作成されるだけ。オプションはいくつかあるようである。 共有フォルダが何とかかんとか。
他にも Maildir フォルダの操作に関する以下のコマンドあり。
絶対パスでないものは /usr/pkg からの相対パスとする。 ドキュメントや設定例の類は除外している。
未調査のファイルは必要になったら調査して説明を追加していく予定。
#何でこういうパス、ファイル名なのか?
IMAPサーバ、POPサーバの複雑な起動/停止処理を行なうシェルスクリプト。 引数に "start" または "stop" を指定する。 パラメータは etc/courier/{imapd,imapd-ssl,pop3d,pop3d-ssl} をインクルードすることで取得する。
IMAPの場合、大体に以下のように実行している。:
courierlogger 引数色々 couriertcpd 引数色々 imaplogin imapd 引数
認証デーモンを起動するシェルスクリプト。 引数には start か stop を指定(たぶん)。 etc/authlib/authdaemonrc をインクルードして環境変数を設定した上、 以下のように実行している様子。:
courierlogger 引数色々 -start authdaemond
以下は /usr/pkg/bin/expect をインタプリタとするスクリプトだが、 そんなプログラムは見当たらない。
未調査だが、IMAP サーバ動かすだけなら関係ないだろう。
IMAP クライアントからのメールボックスの見え方について。 最上位に置かれらメールボックスは全て INBOX 配下にあるように見える (たしか dovecot では最上位に置かれているように見えたけど)。