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-ssl"は作成しておかないと/usr/local/etc/rc.d/courier-imap-imapd.shを使ってIMAPサーバーを起動できない。

設定ファイルの編集 _

  • 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

パソコンでサーバーを構築して、自宅サーバにしよう。