courier-imap3.0.8 インストールメモ #--------------------------------------------------------------------------------------------- # courier-imap 概要 #--------------------------------------------------------------------------------------------- Courier-IMAP はMaildir 形式のメールボックスにIMAP アクセスを提供するサーバソフトウェアです。このIMAP サーバは伝統的なUNIX mbox 形式のメールボックス(/var/spool/mail, etc) をサポートしません。 #--------------------------------------------------------------------------------------------- # プロトコル 概要 #--------------------------------------------------------------------------------------------- IMAP4 プロトコルはPOP3 プロトコルと同様、メールを読むために実装されたプロトコルです。しかし、POP3 と違い、メールをクライアントにダウンロードするのではなく、メール、メールボックス全ての管理をメールサーバーにて行います。 ポート番号は143 を使い、メール管理に関する様々なコマンドが用意されており、POP3 プロトコルには無い、次の特徴があります。 ・モバイル環境での利用を想定したコマンドが実装されている ・メールボックスやメールフォルダの管理を行うコマンドが実装されている ・従来のLOGIN 認証の他に、セキュリティーを高めた拡張認証方法が実装されている ・複数ユーザーでの利用を想定し、共有メールボックスが利用できる ・メールを操作するコマンドが多数実装されている ・メールを検索するコマンドが標準で実装されている ・メールの属性を示すフラグが実装されている ・メーラーが常にオンラインではないことを想定し、メールデータの同期をとる機能が実装されている #--------------------------------------------------------------------------------------------- # courier-imap のインストール方法 #--------------------------------------------------------------------------------------------- courier-imap のソースをインターネットよりダウンロード後、ソースを解凍します。 # su root # cd /usr/local/src/ # wget courier-imap-3.0.8.tar.bz2 # tar jxvf courier-imap-3.0.8.tar.bz2 courier-imap を解凍後、ディレクトリに入りインストール作業を行います。 # chown -R nobody:nobody ./courier-imap-3.0.8 # su nobody # cd courier-imap-3.0.8 # ./configure --prefix=/usr/local/courier-imap --enable-unicode=iso-2022-jp,utf-8 \ --enable-workarounds-for-imap-client-bugs --with-trashquota \ モジュール関連のオプションを指定 ... # make # su root # make install # make install-configure ※ 注意 ) make までは一般ユーザーで行わないとエラーとなります。また、認証モジュールは必要に応じて設定してください。 #--------------------------------------------------------------------------------------------- # 認証モジュールについて #--------------------------------------------------------------------------------------------- courier-imap では、authdaemon を利用することで認証モジュールの適用順を指定することができます。具体的に言うと、./configure 時に [--with-authdaemon] が有効な場合、authdaemonrc ファイルの”authmodulelist”に定義してある認証方法を使ってユーザー認証を行います。主にサポートしている認証方法を次にあげます。 ・authpam 認証 Linux システムのPAM 認証(/etc/passwd ファイルによるLOGIN 認証) のことです。authpam が認証方法としてauthdaemonrc にて設定された場合、IMAP プロトコル上でのユーザー認証はLinux システムのPAM 認証によって行われます。この場合、メールボックスはLinux システムユーザーのホーム以下のMaildir/ が参照されます。 ・authuserdb 認証 courier-imap 付属のuserdb ユーティリティーにおいて仮想ユーザーを作成し、仮想ユーザーにて認証を行います。Linux システムにユーザー情報を持たないので安心な上、バーチャルアカウントが作成できるので非常に有用です。 ・authvchkpw 認証 vpopmail のvpasswd ファイルにおいてユーザー認証を行います。vpopmail とcourier-imap を同居する際に利用すると良いでしょう。 #--------------------------------------------------------------------------------------------- # IMAP Before SMTP に関して #--------------------------------------------------------------------------------------------- courier-imap でIMAP Before SMTP を行うには、./configure オプションが下記条件を満たす必要があります。 ・--without-authdaemon , --with-authvchkpw を含むこと ・# export CFLAGS="-DHAVE_OPEN_SMTP_RELAY"; ./configure .... のようにCDFLAGS をセットすること authdaemon が有効な場合においてauthvchkpw にてvpasswd 認証を行うことはできますが、IMAP Before SMTP は有効になりません。つまり、open-smtp ファイルが所定の場所に作成されないのです。 上記条件を満たす場合、IMAP Before SMTP が有効となり、/usr/local/vpopmail/etc 直下に一時アクセス許可ファイルopen-smtp が作成され、IMAP 時にopen-smtp とtcp-smtp の内容をマージしたCDB ファイルが自動生成されます。 ※ 注意 ) /usr/local/vpopmail/etc のディレクトリオーナーは必ずvpopmail:vchkpw とし、権限を700 としてください。courier-imap はvpopmail 権限でopen-smtp およびtcp-smtp.cdb を作成しようとします。 #--------------------------------------------------------------------------------------------- # courier-imap の設定 #--------------------------------------------------------------------------------------------- /usr/local/courier-imap/etc の配下に設定ファイルが置かれます。これらのファイルによって、courier-imap の動作が決定されます。通常、IMAP 通信で参照される設定ファイルは以下の通りです。 > imapd ファイル IMAP デーモン自体の動作を定義します。IMAP で利用するポート番号や、待ち受けるデーモンの数等を設定します。 > authdaemonrc ファイル 認証に関わる部分の設定を行います。ディフォルトでは、courier-imap が扱うことができる全ての認証モジュールがインストールされますが、このファイルでどのモジュールを有効とするかを設定することができます。 #--------------------------------------------------------------------------------------------- # courier-imap によるバーチャルアカウント #--------------------------------------------------------------------------------------------- courier-imap では、Linux システムアカウントとは別に、独自で仮想メールアカウントを作成し、さらに、複数のドメインをバーチャルドメインとして登録し、管理することができます。仮想メールアカウント管理はuserdb ユーティリティーによって実現し、その認証はauthuserdb 認証を用います。 なお、courier-imap では仮想メールアカウント管理はできるが、実際仮想メールアカウントにメールを配送すべき設定をqmail にはしません(virtualhost に記述しない)。courier-imap にて仮想メールアカウントを利用する場合は、qmail のvirtualdomains ファイル、assign ファイルを編集する必要があります。 ● 設定方法 ここでは、例として次のアカウントをIMAP バーチャルアカウントとして登録します。バーチャルアカウントをcourier-imap に登録するには次のコマンドを実行します。バーチャルアカウントはvpopmail の設定と同様、あつ実ユーザーのUID,GID の設定が必要となります。今回はvpopmail というユーザーを実ユーザーとして利用します。 アカウント名 : test@spicy-islands.com メールボックスパス : /home/spicy-islands.com/test/Maildir 実ユーザー : vpopmail:ppp ↓ バーチャルアカウントのメールボックスを作成します # su root # make -p /home/spicy-islands.com/test # chown -R vpopmail:ppp /home/spicy-islands.com/test # cd /home/spicy-islands.com/test # su vpopmail # /usr/local/qmail/bin/maildirmake ./Maildir # exit ↓ courier-imap にバーチャルアカウント情報を登録します。この時、実ユーザーをvpopmail とします ※ vpopmail アカウントのUID を2000、ppp グループのGID を2000 とします # cd /usr/local/courier-imap/sbin # ./userdb test@spicy-islands.com set home=/home/spicy-islands.com/test \ mail=/home/spicy-islands.com/test/Maildir uid=2000 gid=2000 # ./userdbpw | ./userdb test@spicy-islands.com set imappw # ./makeuserdb 上記設定にてauthuserdb 認証によるバーチャルアカウントが作成されました。 ● CREAM-MD5 による暗号化認証(CREAM-MD5 を使ったauthuserdb 認証)を行うための設定 通常、上記方法にてバーチャルアカウントを作成した場合、通常の平文にて認証情報のやり取りがなされます。平文は危険なので、POP3 プロトコルのAPOP などのような暗号化認証、CREAM-MD5 によるauthuserdb 認証の設定を行います。 CREAM-MD5 によるauthuserdb 認証を行うには、まずは/usr/local/courier-imap/etc/imapd ファイルを下記のように編集する必要があります。なお、imapd ファイルを編集した場合はcourier-imap 自体を再起動する必要があるので注意してください。 ------------------------------------------------------------ IMAP_CAPABILITY="IMAP4ver1〜(省略)〜QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE" ------------------------------------------------------------ 次に、次のコマンドにてuserdb のパスワードをMD5 対応とします。 # ./userdbpw -md5 | ./userdb test@spicy-islands.com set imappw # ./makeuserdb #--------------------------------------------------------------------------------------------- # サービスの起動 #--------------------------------------------------------------------------------------------- 次のコマンドでcourier-imap サーバーを立ち上げます。 # /usr/local/courier-imap/libexec/imapd.rc start