Courier-imap4 and pop3 over SSL on Ubuntu 12.04 TLS

投稿日:

Ubuntu 12.04 TLSに、SSL対応した imap がほしい。ついでにpop3も。
というとこで、courier imapを採用。理由は、移行前もcourierを使っていたので、同じほうが楽だと勘違いしてから。。。
apt-get できても、courier はやっぱりしんどい。

1.devecot のuninstall

ubuntu server distribution には、imapサービスとしてdevecotがinstallされる。 まずは、これを削っておかないとcourier imap & pop3 と競合してしまう。
% sudo dpkg --remove dovecot-imapd dovecot-pop3d

2. courie-imap install

ubuntuなので、apt-get でOK。
% sudo apt-get install courier-imap courier-imap-ssl courier-authdaemon

3. courie-imap の設定

/etc/courier/authdaemonrc で、unixアカウントのパスワード認証に設定。
authmodulelist="authpam"

/etc/courier/imapd で、最大接続数を80に、1IP当たりの同時最大接続数数を16に増やす。こうしないと、imap folder がたくさんある人が初期にたくさん接続すると、すぐにセッションが埋まってしまう。
サーバ起動時にサービス起動できるようにする。
認証は平文対応もするけど、その場合は imap4 over SSL の利用を推奨。

MAXDAEMONS=80
MAXPERIP=16
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=LOGIN AUTH=PLAIN"
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE AUTH=LOGIN AUTH=PLAIN"
IMAPDSTART=YES

/etc/courier/imapd も同様。

IMAPDSSLSTART=YES
IMAPDSTARTTLS=YES

4. courie-imap のテスト

通常の IMAP4(port:143)は、telnet でテストする。
% telnet mai.foobar.com 143
Trying XXX.XXX.XXX.XXX...
Connected to mail.foorbar.com.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=LOGIN AUTH=PLAIN ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2011 Double Precision, Inc.  See COPYING for distribution information.
a CAPABILITY
* CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=LOGIN AUTH=PLAIN ACL ACL2=UNION STARTTLS
a OK CAPABILITY completed
b LOGIN ユーザ名 パスワード
b OK LOGIN Ok.
c. LOGOUT
closed

ここで、「OK LOGIN Ok」ではなく、以下のようにエラーになることがある。

 BYE Clock skew detected. Check the clock on the file server closed

Maildir のあるユーザの$HOMEが、NFSの場合、 NFSサーバとimap4サーバの日付がずれていると、このエラーが発生する。100秒くらいずれてたよ。。。
しかも、courier-pop3 だとこのエラーは発生しない。。。

Over SSLの IMAP4(port:993)は、openssl でテストする。

% openssl s_client -connect mail.foorbar.com:993
...たくさんのダンプ

あとは、上記のtelnet と同じ。