CentOS 5.11 の dovecot を 2.2.26 にアップデートしてみる。
Mail Server
CentOS 5.11 の dovecot を 2.2.26 にアップデートしてみようと思ったのですけど、パッケージマネージャー yum で提供されているのが 1.0.7 までのようだったので、ソースコードから入れてみることにしました。
なんとなく macOS の "メール" アプリからメールボックスを思ったように操作できないような気がして、試しに IMAP サーバーとして利用していた Dovecot をアップデートしてみることにしました。
結局のところそれで "メール" アプリの挙動が良くなった感じはしないですけど、とりあえず dovecot をアップデートする中でいくつか戸惑ったことがあったので、今後の備忘録として記しておくことにしました。
環境
今回の主な環境は、次の通りです。
- CentOS 5.11
- dovecot 1.0.7-9.el5_11.4
既存の dovecot は、CentOS 5 系で標準のパッケージマネージャー yum を使ってインストールしてあったのですけど、 現在、インストールしているバージョンよりも新しいものは提供されていない様子でした。
環境はおそらく POP3 及び IMAP でのメール受信を可能にする に近いと思います。
インストール
そこで、今回は Download ページから、現時点で最新の 2.2.26.0 をダウンロードして利用することにしました。
ダウンロード
ここから dovecot-2.2.26.0.tar.gz
を、今回は次のようにして /usr/local/src
ディレクトリーにダウンロードしました。
cd /usr/local/src
wget http://www.dovecot.org/releases/2.2/dovecot-2.2.26.0.tar.gz
cd dovecot-2.2.26.0
ビルド
ダウンロードが終わったら dovecot のビルドを行います。今回は既存の CentOS 環境を真似て、次のようにオプションを添えて configure
を実行することにしました。
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
make install
これでビルドとインストールができました。
これまでの dovecot 環境と違って、設定ファイルが /etc/dovecot.conf
から /etc/dovecot/dovecot.conf
に変わってしまう様子でしたけど、それが何かサーバーの起動に支障をきたすことはなさそうでした。
設定
dovecot のインストールが終わったら、起動の前に設定を調整します。
これまでの 1.0.7 と比べて 2.2.26 の設定ファイルは外側からみて構成が大きく変わったみたいで、上で紹介した dovecot.conf
の場所の他にも、これまでは1つのファイルで記載していた設定が、いくつかのファイルに分散されて /etc/dovecot/conf.d
にも記録されるようになった様子です。
これらのサンプルは /usr/share/doc/dovecot/example-config
に記録されていたので、これを次のようにして、新しい設定ファイルの保存場所 /etc/dovecot
にコピーして使うことにしました。
cp /usr/share/doc/dovecot/example-config/dovecot.conf /etc/dovecot
cp /usr/share/doc/dovecot/example-config/conf.d /etc/dovecot
こうした上で /etc/dovecot
内の各種ファイルを、以前の設定と合うように調整して行きます。
dovecot.conf
まずは /etc/dovecot/dovecot.conf
ですけど、こちらは 2.2.26 では、特にきにするところはなさそうでした。
以前はここの protocols
で imap imaps pop3 pop3s
みたいに "s" が最後に添えられたプロトコルを指定していましたけど、今回のバージョンでは特にそれらを明記する必要はない様子でした。
conf.d/10-auth.conf
そして /etc/dovecot/conf.d/10-auth.conf
で、クリアテキストでの認証を有効にしておくことにします。これは、今までのサーバーでそう設定していたので、今回も同じくそう設定してみた感じです。
disable_plaintext_auth = no
conf.d/10-ssl.conf
続いて /etc/dovecot/conf.d/10-ssl.conf
で SSL 接続に関する情報を設定しておきます。以前は ssl_disable
や ssl_cert_file
などの識別子で設定していましたけど、今回からは ssl
や ssl_cert
で設定するようです。
ssl = yes
ssl_cert = </etc/pki/tls/certs/dovecot.cer
ssl_key = </etc/pki/tls/private/dovecot.key
conf.d/10-mail.conf
メールの保存場所に関する設定は /etc/dovecot/conf.d/10-mail.conf
で行うようです。自分の環境では Maildir 形式を使っているのでそれを mail_location
で、それと以前の認証方式の設定を auth_mechanisms
で指定しておくことにしました。
mail_location = maildir:~/Maildir
auth_mechanisms = cram-md5 plain login
conf.d/auth-system.conf.ext
そして、認証方式の設定です。従来は PAM 認証で設定していたのですけど、今回は CentOS 5.11 の libpam バージョンが 0.99.6.2-14.el5_11 と古いからなのか dovecot をビルドするときに PAM を有効化できなかったので、今回は shadow パスワードで対応しておくことにしました。
そのためには /etc/dovecot/conf.d/auth-system.conf.ext
の passdb
の中で driver = pam
になっているものを無効化して、代わりに driver = shadow
になっているものを有効化します。
#passdb {
#driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
#args = dovecot
#}
passdb {
driver = shadow
# [blocking=no]
#args =
}
dovenull アカウント
それと dovecot 2.2.26 では dovecot の起動に dovenull
という名前のアカウントも使う様子でした。このアカウントは登録されてなかったので、次のようにして登録しておくことにします。
useradd -s /sbin/nologin -d /var/empty dovenull
このような感じで、とりあえず自分の環境の dovecot 1.0.7 を 2.2.26 にアップデートできた様子です。
起動
ここまでできたら、あとは CentOS 5.11 の普段通りに dovecot を再起動します。
service dovecot restart
これで無事に動いて、IMAP でのメール受信などができるようになりました。
動かなかったとき
ただ、設定が不完全だったりした最中に、この段階で dovecot dead but subsys locked
というメッセージが表示されたり、その他いくつかの要因で起動できなかったりすることがありました。
そんなときには /var/lock/subsys/dovecot
を削除してみたり、/var/run/dovecot/master.pid
を削除してみたり、Linux を再起動してみたりしながら、設定を上記のように調整していったところ、いつの間にやらすっかり安定的に dovecot を起動できるようになりました。