IMAPサーバー(courier-imap)の構築

IMAPサーバー(courier-imap)を構築する。

はじめに

PostfixのMaildir形式に対応したIMAPサーバー courier-imapを導入し、クライアントからメーラーを使用しメールを読めるようにする。その際、認証方法にはCRAM-MD5を使用し、暗号化する。

コンパイル&インストール

FreeBSDのportsシステムを使用してインストールする。– 2006/6/4 追加

 # cd /usr/ports/mail/courier-imap
 # make

以下を選択した。

lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x                 Options for courier-imap 4.1.1,1                   x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x     [X] OPENSSL      Build with OpenSSL support                x x
x x     [ ] FAM          Build in fam support for IDLE command     x x
x x     [X] TRASHQUOTA   Include deleted mails in the quota        x x
x x     [ ] GDBM         Use gdbm db instead of system bdb         x x
x x     [ ] IPV6         Build with IPv6 support                   x x
x x     [ ] AUTH_LDAP    LDAP support                              x x
x x     [ ] AUTH_MYSQL   MySQL support                             x x
x x     [ ] AUTH_PGSQL   PostgreSQL support                        x x
x x     [X] AUTH_USERDB  Userdb support                            x x
x x     [ ] AUTH_VCHKPW  Vpopmail/vchkpw support                   x x
x x                                                                x x
x x                                                                x x
x x                                                                x x
x x                                                                x x
x x                                                                x x
tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
x                       [  OK  ]       Cancel                        x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

ソフトの設定は、以下同様に行う。

FreeBSDのportsシステムを使用してインストールする。

認証方法にCRAM-MD5を追加するため、“WITH_CRAM=yes"をmakeコマンドのコマンドラインに指定する。

 # cd /usr/ports/mail/courier-imap
 # make WITH_CRAM=yes
 # make WITH_CRAM=yes install
 # make clean

portupgrade用の設定

/usr/local/etc/pkgtools.confのMAKE_ARGS{ }に以下を追加する。

  MAKE_ARGS = {
            :
        'mail/courier-imap' => 'WITH_CRAM=yes',
  }

courier-imapの設定

設定ファイルのコピー

 # cd /usr/local/etc/courier-imap
 # cp authdaemonrc.dist authdaemonrc
 # cp imapd.dist imapd
 # cp imapd-ssl.dist imapd-ssl
 # cp imapd.cnf.dist imapd.cnf
注) imapd-sslを使用しなくても

設定ファイルの編集

  • imapd

  • ADDRESSにはIMAPサーバーのIPアドレスを設定する

  • 認証方法にCRAM-MD5を使用するため以下の変更を加える。

  • AUTHMODULESを"authdaemon"から"authcram"へ変更する

  • 記載されているコメントに従い、IMAP_CAPABILITYに"AUTH=CRAM-MD5"を追加する。

    diff -C0 imapd.dist imapd

    *** imapd.dist Sat Jan 10 16:12:43 2004 — imapd Sat Jan 10 16:31:15 2004


    *** 24 **** ! ADDRESS=0 — 24 —- ! ADDRESS=192.168.0.1


    *** 85 **** ! AUTHMODULES=“authdaemon” — 85 —- ! AUTHMODULES=“authcram”


    *** 111 **** ! # IMAP_CAPABILITY=“IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE” — 111 —- ! IMAP_CAPABILITY=“IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE”


    *** 114 **** ! IMAP_CAPABILITY=“IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE” — 114 —- ! # IMAP_CAPABILITY=“IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE”

パスワードデータベースの作成

ユーザー"user1"がMaildir形式でメールを保存していることをIMAPサーバーへ教える。

#/usr/local/sbin/userdb "user1@mydomain.com" \
 set home=/home/user1 mail=/home/user1/Maildir uid=1101 gid=1101

ユーザー"user1"のパスワードを設定する。

# /usr/local/sbin/userdbpw -hmac-md5 | \
  /usr/local/sbin/userdb "user1@mydomain.com" set hmac-md5pw
Password:
Reenter password:
# /usr/local/sbin/makeuserdb

IMAPサーバーの起動

2004/11/24以降の設定

  • /etc/rc.confに設定する

    # courier-imap
    courier_imap_imapd_enable=YES
    courier_imap_imapdssl_enable=NO
    courier_imap_pop3d_enable=YES
    courier_imap_pop3dssl_enable=NO
    

古い

起動スクリプトの作成

 # cd /usr/local/etc/rc.d
 # mv courier-imap-imapd.sh-sample courier-imap-imapd.sh

IMAPサーバー起動

 # /usr/local/etc/rc.d/courier-imap-imapd.sh start