Dovecot で IMAP/IMAPS/POP3/POP3S サーバ環境を構築したので情報を整理しておく。
構築にあたっては、Courier-IMAP との互換性も少し考慮した(Courier-IMAP で動いているサーバもあるため)。
LDAP認証については、『Dovecot で IMAP/POP3 の LDAP認証』参照。
| 名称 | バージョン | 備考 |
|---|---|---|
| Solaris | 10 | 他のOSでも良かったけど、たまたま近くにあった。 |
| Dovecot | 1.0 beta5 | 2006.04.11時点での最新版。 |
| メールの保存形式 | --- | やっぱ Maildir でしょう。 |
# groupadd dovecot # useradd -g dovecot -s /bin/false -d /dev/null dovecot
$ tar zxf dovecot-1.0.beta5.tar.gz $ cd dovecot-1.0.beta5 $ ./configure $ make # maek install
# cd /usr/local/etc # cp dovecot-example.conf dovecot.conf
# ベースディレクトリの指定。
# 指定しない場合は、/usr/local/var/run/dovecot/ になる。
base_dir = /var/run/dovecot/
# 動作させるプロトコルの指定
protocols = imap imaps pop3 pop3s
# 各プロトコルのポート番号指定
protocol imap {
listen = *:143
ssl_listen = *:993
}
protocol pop3 {
listen = *:110
ssl_listen = *:995
}
# プレインテキストでの認証を許可
disable_plaintext_auth = no
# 500 より小さい UID を使用している場合は設定する。
first_valid_uid = 100
# メール保存領域の指定。自動検出するが明示的に指定した。
default_mail_env = maildir:~/Maildir
# Courier-IMAP との互換性のための設定
namespace private {
separator = .
prefix = INBOX.
inbox = yes
}
# POP3 UIDL フォーマットの指定。推奨値に設定。
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
ここでは、ローカル証明書の作成手順を示す。
証明書は、ソースを展開したディレクトリ(以降、$DOVECOT)にある doc/mkcert.sh で簡単に作成できる。
# mkdir -p /etc/ssl/certs # mkdir -p /etc/ssl/privateカレントディレクトリを移動する。
# cd $DOVECOT/docSSL証明書作成用の設定ファイル dovecot-openssl.cnf を編集する。
# 2文字の国コード。日本の場合は JP。 C=JP # 都道府県名。 ST=Tokyo # 市町村名。 L=Marunouchi # 組織名(会社名)。 O=xxxxxx # 部署名。 OU=yyyyyy # サーバのFQDN。 CN=imap.xxxxxx.com # 連絡先E-Mailアドレス emailAddress=aaa@xxxxxx.comスクリプトを実行して証明書を作成する。
# sh mkcert.sh Generating a 1024 bit RSA private key ...........++++++ ..++++++ writing new private key to '/etc/ssl/private/dovecot.pem' ----- subject= /C=JP/ST=Tokyo/L=Marunouchi/O=xxxxxx/OU=yyyyyy/CN=imap.xxxxxx.com/emailAddress=aaa@xxxxxx.com MD5 Fingerprint=90:01:80:4F:70:20:84:99:AA:47:51:51:EE:94:00:C3証明書の内容を確認する場合は以下のコマンド。
$ openssl x509 -in /etc/ssl/certs/dovecot.pem -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=JP, ST=Tokyo, L=Marunouchi, O=xxxxxx, OU=yyyyyy, CN=mail.xxxxxx.com/emailAddress=aaa@xxxxxx.com
Validity
Not Before: Apr 17 04:49:34 2006 GMT
Not After : Apr 17 04:49:34 2007 GMT
Subject: C=JP, ST=Tokyo, L=Marunouchi, O=xxxxxx, OU=yyyyyy, CN=mail.xxxxxx.com/emailAddress=aaa@xxxxxx.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:d0:e8:74:05:37:04:7a:2a:4c:1c:80:1e:be:ba:
07:2f:a7:c4:ec:50:5f:95:76:ff:8b:02:fd:f6:5e:
02:f6:6e:b0:b6:11:ea:53:e1:c3:87:37:4b:25:de:
44:08:03:c4:7d:e1:43:eb:38:01:f7:c4:68:a3:d4:
6d:fb:24:58:dd:e7:c4:64:5c:db:ff:93:2a:da:28:
eb:96:21:e7:e2:1e:c5:c9:66:27:b9:36:80:83:08:
81:7c:e9:8c:3f:f7:a9:7c:fb:4b:66:cf:e9:90:42:
90:0f:8f:1b:ed:0a:71:f2:e8:5b:82:64:81:50:20:
ca:9d:c3:88:95:53:38:f0:df
Exponent: 65537 (0x10001)
X509v3 extensions:
Netscape Cert Type:
SSL Server
Signature Algorithm: md5WithRSAEncryption
4f:38:84:cb:a2:f2:e8:83:e8:80:2d:f0:21:6f:d7:49:4c:8d:
b8:14:04:06:a5:48:0f:1c:f8:99:9a:ae:2f:55:d5:85:4f:7f:
26:bd:de:0d:c0:d4:f7:d7:a0:73:61:1b:ac:92:64:81:56:f6:
a2:d8:f0:49:57:31:9b:73:ce:87:e4:ac:42:a6:97:1e:30:de:
15:5a:1e:ef:98:a2:ab:ae:28:72:63:90:d2:8d:77:0f:c5:de:
d2:41:7f:82:ef:ae:03:fa:f8:1a:eb:88:07:a4:e9:d1:3e:32:
b3:81:c4:6c:8a:1f:75:de:e1:75:39:15:a2:e1:52:c7:4f:12:
47:83
#!/sbin/sh
CFG=/usr/local/etc/dovecot.conf
BIN=/usr/local/sbin/dovecot
if [ ! -f $CFG ]; then
exit 0;
fi
case $1 in
'start')
$BIN -c $CFG
;;
'stop')
pkill -TERM -fu root $BIN
;;
'restart')
pkill -TERM -fu root $BIN
sleep 2
$BIN -c $CFG
;;
*) echo "Usage: $0 {start|stop|restart}"
;;
esac
リンクを作成して自動起動を有効にする。
# cd /etc/rc3.d # ln -d ../init.d/dovecot S86dovecot # cd /etc/rc2.d # ln -d ../init.d/dovecot K10dovecot # cd /etc/rc1.d # ln -d ../init.d/dovecot K10dovecot # cd /etc/rc0.d # ln -d ../init.d/dovecot K10dovecot # cd /etc/rcS.d # ln -d ../init.d/dovecot K10dovecot
初回起動(boot)時にSSLパラメータファイルが作成される。
SSLパラメータファイルが作成されるまで、SSL(IMAPS/POP3S)の接続はできない。但し、非SSL(IMAP/POP3)接続は問題なし。
ssl-build-param $base_dir/login/ssl-parameters.datログファイル(/var/log/syslog)には以下のメッセージが出力される。
Generating Diffie-Hellman parameters for the first time. This may take a while..SSLパラメータファイルの作成が完了すると、上記プロセスは消滅しSSL(IMAPS/POP3S)接続ができるようになる。