qpopperのSSL化

OS:Freebsd-11-RELEASE

sysrc inetd_enable=”YES”

pkg install qpopper
inetd.confに追加記入
pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -s -T 1200 -t /var/log/pop3/pop3.log
pop3s stream tcp nowait root /usr/local/libexec/qpopper qpopper -f /usr/local/etc/qpoppers.conf -s -T 1200 -t /var/log/pop3/pop3.log

letsencryptの導入
ウェブメールがあるので当然apache24も入っているのでwebrootで証明書を導入
pkg install py37-certbot
certbot certonly -webroot -w /usr/local/www/apache24/data -d サーバ名 -m メールアドレス
/etc/periodic.confを作成または以下を追記
weekly_certbot_enable=”YES”

設定ファイル/usr/local/etc/qpoppers.confを作成
set clear-text-password = always
set tls-support = alternate-port
set tls-version = default
set tls-server-cert-file = /usr/local/etc/letsencrypt/live/サーバ名/qpopper.pem

qpopperはSSL証明書ファイルがkeyファイル+証明書+中間証明書のファイルになるので作成する
cat privkey.pem fullchain.pem > qpopper.pem
実行スクリプト
vi /usr/local/etc/letsencrypt/live/サーバ名/make-qpopper-pem

!/bin/sh

cat /usr/local/etc/letsencrypt/live/サーバ名/privkey.pem /usr/local/etc/letsencrypt/live/サーバ名/fullchain.pem > /usr/local/etc/letsencrypt/live/サーバ名/qpopper.pem

このサーバはこの他にapache24 postfix dovecot(imap)があるので再読み込みをする

servece apache24 reload
service postfix reload
service dovecot reload

実行権限付与
chmod 744 /usr/local/etc/letsencrypt/live/サーバ名/make-qpopper-pem

これをperiodic.confと同期させるため
/etc/crontabに追記
以下の設定が最初から入っていてweeklyの実行でweekly_certbot_enableが実行される
15 4 * * 6 root periodic weekly
つまりこの作業後にqpopper.pemを作ればよい
私は10分後にした
25 4 * * 6 root /usr/local/etc/letsencrypt/live/サーバ名/make-qpopper-pem

dovecotは常時起動でpopクライアントからの接続を待ち受けるが、qpopperはinetdサーバから要求ごとに起動する。
なのでconfigの再読み込みは不要

このサーバは、元々postfix+qpopperのみで稼働していた。
imapを利用するため一時imap-uwを稼働していたがSSL化しようとしたらimap-uwがTLSに対応していなかった。そのためdovecotを導入してpopとimapを利用可能仕様とした。
しかしpopサーバを変えるとクライアントがサーバに残したメールをすべて再読み込みするためqpopperを残すこととした。

来年度の予定としてmailbox方式からmaildir方式に変更予定。その時にqpopperを廃止してdovecotでpopとimapを利用する仕様にする予定。