Contents
Overview
Dovecot を使用して MRA (Mail Retrieval Agent) を構築します。MRA とは、MTA (Mail Transfer Agent) がローカル配送でメールボックスに保存したメールを取り出し、MUA (Mail User Agent) に提供する機能を指します。MRA は、その機能上、MTA と同じサーバー上で実行される必要がありますが、メールボックスを NFS で共有して別サーバーで実行する設計も考えられます。この設計は、MTA, MRA の冗長構成においても良い選択肢の一つです。
前提条件
- こちらを参考に基本設定が完了していること。
- IMAP のみを前提としています。
- LDAP 認証を前提としています。LDAP との連携は PAM, SSSD を介して行うため、Dovecot としての LDAP 設定はありません。
- Sieve を使用したサーバーサイドでのメール振り分けを想定しています。
インストール
Dovecot をインストールします。dovecot-managesieved は Sieve の利用に必要です。
sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install dovecot-core dovecot-imapd dovecot-managesieved
/etc/dovecot/conf.d/10-mail.conf
10-mail.conf はメールボックスの設定が含まれます。
デフォルト値
デフォルト値は下記の通りです。
grep -v -e '^\s*#' -e '^\s*$' /etc/dovecot/conf.d/10-mail.conf | sed '/^[[:space:]]/s/^[[:space:]]*/ /'
mail_location = mbox:~/mail:INBOX=/var/mail/%u
namespace inbox {
inbox = yes
}
mail_privileged_group = mail
protocol !indexer-worker {
}
設定値
設定例は下記の通りです。
sudo cp /etc/dovecot/conf.d/10-mail.conf{,.orig}
sudo tee /etc/dovecot/conf.d/10-mail.conf <<"EOF"
mail_location = maildir:~/Maildir
namespace inbox {
inbox = yes
}
mail_privileged_group = mail
protocol !indexer-worker {
}
EOF
/etc/dovecot/conf.d/10-master.conf
10-master.conf は Dovecot SASL の設定が含まれます。
デフォルト値
デフォルト値は下記の通りです。
grep -v -e '^\s*#' -e '^\s*$' /etc/dovecot/conf.d/10-master.conf | sed '/^[[:space:]]/s/^[[:space:]]*/ /'
service imap-login {
inet_listener imap {
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
}
inet_listener pop3s {
}
}
service submission-login {
inet_listener submission {
}
}
service lmtp {
unix_listener lmtp {
}
}
service imap {
}
service pop3 {
}
service submission {
}
service auth {
unix_listener auth-userdb {
}
}
service auth-worker {
}
service dict {
unix_listener dict {
}
}
設定値
設定例は下記の通りです。
sudo cp /etc/dovecot/conf.d/10-master.conf{,.orig}
sudo tee /etc/dovecot/conf.d/10-master.conf <<"EOF"
service imap-login {
inet_listener imap {
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
}
inet_listener pop3s {
}
}
service submission-login {
inet_listener submission {
}
}
service lmtp {
unix_listener lmtp {
}
}
service imap {
}
service pop3 {
}
service submission {
}
service auth {
unix_listener auth-userdb {
}
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
}
}
EOF
/etc/dovecot/conf.d/10-ssl.conf
10-ssl.conf は TLS の設定が含まれます。
デフォルト値
デフォルト値は下記の通りです。
grep -v -e '^\s*#' -e '^\s*$' /etc/dovecot/conf.d/10-ssl.conf | sed '/^[[:space:]]/s/^[[:space:]]*/ /'
ssl = yes
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = </usr/share/dovecot/dh.pem
設定値
設定例は下記の通りです。
sudo cp /etc/dovecot/conf.d/10-ssl.conf{,.orig}
sudo tee /etc/dovecot/conf.d/10-ssl.conf <<"EOF"
ssl = yes
ssl_cert = </etc/my-ssl/certs/si1230.com.crt
ssl_key = </etc/my-ssl/private/si1230.com.key
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = </usr/share/dovecot/dh.pem
EOF
/etc/dovecot/conf.d/15-lda.conf
15-lda.conf は Sieve の設定が含まれます。
デフォルト値
デフォルト値は下記の通りです。
grep -v -e '^\s*#' -e '^\s*$' /etc/dovecot/conf.d/15-lda.conf | sed '/^[[:space:]]/s/^[[:space:]]*/ /'
protocol lda {
}
設定値
設定例は下記の通りです。
sudo cp /etc/dovecot/conf.d/15-lda.conf{,.orig}
sudo tee /etc/dovecot/conf.d/15-lda.conf <<"EOF"
protocol lda {
mail_plugins = $mail_plugins sieve
}
EOF
設定の有効化
設定を有効化します。
sudo systemctl restart dovecot.service && systemctl status dovecot.service
Ubuntu 22.04 Dovecot MRA メールサーバー構築