Dovecot 2.2系から2.3系への更新

FreeBSDのportsでもDovecotの標準バージョンが2.3系になった。2.3系では設定項目の一部が2.2系とは異なるので本番稼働しているDovecotをいきなり更新するのは(動かなくなるリスクがあるので)怖い。そこで更新のトラブル情報やTipsが出回るまで暫く放置することを考えたが、他のportsを更新したときに依存関係でつられて意図せずに2.3系に更新されてしまう可能性があり、そうすると心の準備が出来てない中で慌てて設定を直すハメになるかも。それはそれで非常に怖い。

仕方がないので放置せずに更新することに。

Dovecotの更新

# cp -pR /usr/local/etc/dovecot /usr/local/etc/dovecot.BK2235
# portupgrade -fr dovecot-2.2.35

これで更新される筈。2018年4月6日現在だとDovecotは2.3.1、Sieveプラグインのdovecot-pigeonholeは0.5.1になった。
設定を変更するまでDovecotを再起動しないこと。(動かなくなる可能性あり)

SSL周りの設定変更

2.3系での変更の主なのはSSLの設定。
/usr/local/etc/dovecot/conf.d/10-ssl.conf (変更)
1
2
3
4
5
# ssl_dh_parameters_length = 2048             #この設定は廃止
ssl_dh = /usr/local/etc/dovecot/ssl/dh.pem    #DH鍵交換のパラメータファイルを作って指定

# ssl_protocols = !SSLv3                      #ssl_protocolsはssl_min_protocolに変更で書く内容も変わった
ssl_min_protocol = TLSv1.2                    #TLSv1, TLSv1.1, TLSv1.2のどれかを書く SSLv3というのはもう無しだろう

最低限ここだけは直さないとDovecotが起動しなくなるらしい。

Dovecotの推奨のDH鍵交換のパラメータファイル作成方法
# dd if=/var/db/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /usr/local/etc/dovecot/ssl/dh.pem

その他の変更は、そこを変えなかったからDovecotが動かなくなるとかはなさそう。

正直2.3系への変更はもっと大変かと思ったが、全然そうじゃなかった。