最終更新日 2005/7/7  戻る  483313 人 REMOTE = 38.103.63.59 REFERER =

★Courier-imap覚え書き

1.インストール ここではkaiというユーザを例に挙げます.

 #useradd -g mailuser kai ← mailuserというグループに属するkaiというユーザを作ります
 #passwd kai ← kaiのパスワードをunixpwとします

ディストリにcourierのrpmがあればapt-getで簡単にインストールできます.
 # apt-get install courier-authlib
 # apt-get install courier-authlib-devel
 # apt-get install courier-authlib-userdb
 # apt-get install courier-imap
ディストリにrpmが無ければ下記のようにします. 4.0系から認証ライブラリ(Courier authentication library)が別になったので,このrpmを先に作成してインストールしてからでないとCourier-IMAPの rpmが作成できない.courier-authlib-0.56.tar.bz2courier-imap-4.0.3.tar.bz2をDLしてrpm化.最初Vine3.0をapt-getしたものでrpm化しようとしたのだが途中でエラーが出てしまった.Vine3.1ではOK.
courier-authlib-0.56.tar.bz2とcourier-imap-4.0.3.tar.bz2が/home/kai/rpm/SOURCESにあるとします.
 #su kai
 $cd /home/kai/rpm/SOURCES
 $rpmbuild -ta courier-authlib-0.56.tar.bz2
 $exit
 #cd /home/kai/rpm/RPMS/i386
 #ls
   courier-authlib-0.56-1.i386.rpm
   courier-authlib-devel-0.56-1.i386.rpm
   courier-authlib-userdb-0.56-1.i386.rpm
   courier-authlib-ldap-0.56-1.i386.rpm
   courier-authlib-mysql-0.56-1.i386.rpm
   courier-authlib-pgsql-0.56-1.i386.rpm
   courier-authlib-debuginfo-0.56-1.i386.rpm,

courier-authlib-0.56-1.i386.rpm,courier-authlib-devel-0.56-1.i386.rpm,
courier-authlib-userdb-0.56-1.i386.rpmをインストール.

 #rpm -Uvh courier-authlib-0.56-1.i386.rpm
 #rpm -Uvh courier-authlib-devel-0.56-1.i386.rpm
 #rpm -Uvh courier-authlib-userdb-0.56-1.i386.rpm

courier-imap.specを書き換える

 #cd /home/kai/rpm/SOURCES
 #tar xzvf courier-imap-4.0.3.tar.bz2
 #cd courier-imap-4.0.3
 #vi courier-imap.spec
    %if %(test '%{xflags}' = '%%{xflags}' && echo 1 || echo 0)
    %define xflags --enable-unicode=iso-2022-jp,iso-8859-1,utf-8 ← iso-2022-jp,を書き加える
    %endif
 #cp courier-imap.spec /home/kai/rpm/SPECS
 #su kai
 $cd /home/kai/rpm/SPECS
 $rpmbuild -ba courier-imap.spec
 $exit
 #cd /home/kai/rpm/RPMS/i386
 #rpm -Uvh courier-imap-4.0.3-1.i386.rpm

2.設定ファイルを書き換える.
設定ファイルは/usr/lib/courier-imap/etcにあります.
imapdしかとりあえず動かさず(pop3d,pop3d-ssl,imap-sslは起動させない), パスワードをユニックスパスワードから切り離しCRAM-MD5認証に対応させるようにします.
/usr/lib/courier-imap/etc/imapd
  IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE ← #をとる 
  THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA 
  AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE
  # IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE ← #を付ける
  THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE

  MAPDSTART=YESYESにする

/usr/lib/courier-imap/etc/imapd-ssl
  IMAPDSTARTTLS=NONOにする

/usr/lib/courier-imap/etc/pop3d
  POP3DSTART=NONOにする

/usr/lib/courier-imap/etc/pop3d-ssl
  POP3DSSLSTART=NONOにする
設定し終わったら
 #service courier-authlib start
 #service courier-imap start

3.パスワードを登録する.
courierはimapパスワードを使用してユニックスユーザのパスワードを切り離すことができます.
 #userdb kai set home=/home/kai mail=/home/kai/Maildir uid=501 gid=502 
  (501,502はkaiのuid,gid )
 #userdbpw | userdb kai set imappw ← 平文用imapパスワードとしてimapkaispwと入力
とすると平文用のimapパスワードが設定できる. そして,/etc/authlib/userdbというファイルに
kai  imappw=ZowTVcTWXv6kk|uid=501|mail=/home/kai/Maildir|home=/home/kai|gid=502
が記述される.次に,userdbの実行権限を700にして,これをcourier-imapが読めるようにする
 # chmod 700 /etc/authlib/userdb ← 最初から600に設定されていますが,一応念のため
 # makeuserdb
次に,imapパスワードをCRAM-MD5に対応させます.
 #userdbpw -hmac-md5| userdb kai set hmac-md5pw ← CRAM-MD5用imapパスワードとしてimapkaispwmd5と入力
とするとCRAM-MD5のパスワードが設定できる.そして,/etc/authlib/userdbというファイルに
kai  imappw=ZowTVcTWXv6kk|uid=501|hmac-md5pw=1dfededb6fa72f78528bfac836138c4c5f116675f7b49c571ad2
cef8fbf36cb9|mail=/home/kai/Maildir|home=/home/kai|gid=502
が記述される.これをcourier-imapが読めるようにするために
 #makeuserdb 
このあと,courier-imapを再起動します. これらの設定で,以下の三つのパスワードはいずれも使用可能になります.もちろんメールクライアント側でそれにあった設定が必要です.少なくとも私が使っているBeckyは大丈夫でした.
Unixユーザパスワード         :unixpw
平文imapパスワード           :imapkaispw
CRAM-MD5用imapパスワード     :imapkaispwmd5
セキュリティーのためにはCRAM-MD5用imapパスワードを使うのが一番です.Squeezerなどのパケットキャッチャーを使うと平文パスワードは簡単に分かってしまいます. もう一つはimap-sslを使ってSSLによる暗号化を行うことです.
/usr/lib/courier-imap/etc/imapd-ssl
  IMAPDSTARTTLS=YESYESにする
としてimap-sslを動かし,クライアント側でSSL/TLS関連の設定をします(beckyなどでは,ポート番号993,証明書を検証しないとします).この場合パスワードは平文でもかまいません
もしユーザkaiがqmail-vidaを使った仮想ユーザの場合uid,gidはpopの値を使います.

3.Maildir環境を整える
courierはMaildir方式でしか動きませんので,そのための準備をします.
 #su kai
 $cd /home/kai
 $/usr/lib/courier-imap/bin/maildirmake Maildir
 
新規ユーザ作成時にも自動的にMaildirが作られるようにするには
「/etc/skel」にもMaildirディレクトリを作成しておく.

 #/usr/lib/courier-imap/bin/maildirmake /etc/skel/Maildir

4.rpmでインストールしてメールのやりとりをすると
"Failed to create cache file: maildirwatch (user) Error:
 Input/output error Check for proper operation and configuration
 of the File Access Monitor daemon (famd).”

などというエラーが出るが,FAMとPORTMAPを起動するとこのエラーは消える.


Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free 戻る