手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Dovecot IMAP サーバー – Maildir のメールを読む

Ubuntu 22.04 の関連記事

Ubuntu 22.04 で Dovecot を使い、IMAP によるメール閲覧環境を構築する手順です。Postfix が SMTP の受付、配送、中継を担当するのに対して、Dovecot はユーザーがメールボックスを読むための IMAP サーバーです。

この記事では、Postfix が Maildir へ配送する前提で、Dovecot の mail_location、IMAP / IMAPS の待ち受け、TLS、認証、ログ確認を扱います。外部公開メールサーバー全体ではなく、内部向けのメール閲覧層としての Dovecot に絞ります。

Dovecot は SMTP を中継する MTA ではありません。メール配送は Postfix、メールボックスの閲覧は Dovecot、という責務分離で考えます。

この記事で扱う内容は次の通りです。

  • Dovecot と Postfix の役割分担
  • dovecot-core / dovecot-imapd の導入
  • Maildir を読むための mail_location 設定
  • IMAP / IMAPS の待ち受け確認
  • TLS、認証方式、ログ確認の基本
対象 OSUbuntu 22.04
用途IMAP によるメールボックス閲覧
サービスdovecot.service
メール保存形式Maildir
主な設定ファイル/etc/dovecot/conf.d/10-mail.conf, 10-auth.conf, 10-ssl.conf
STEP 1Dovecot の役割を確認する
STEP 2Dovecot IMAP をインストールする
STEP 3Maildir を読むように設定する
STEP 4TLS と認証設定を確認する
STEP 5IMAP 接続とログを確認する
参考
書籍
参考書籍
Postfix 実用ガイド

Postfix と組み合わせたメール基盤の構成や運用を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る
このリンクは Amazon アソシエイトリンクです。

Dovecot の位置づけ

Dovecot は、ユーザーがメールクライアントからメールボックスを読むためのサーバーです。Postfix が配送したメールを、IMAP / IMAPS で参照できるようにします。

要素役割
PostfixSMTP 受付、配送、リレー
DovecotIMAP / POP3 によるメール閲覧
Maildirユーザーごとのメール保存形式
TLSメールクライアントとの通信保護
認証ローカルユーザー、PAM、LDAP などの認証経路

Dovecot をインストールする

IMAP サーバーとして必要なパッケージをインストールします。

コマンド
sudo apt update
sudo apt install -y dovecot-core dovecot-imapd

サービス状態を確認します。

コマンド
systemctl status dovecot.service --no-pager

Maildir を使う

Postfix 側で home_mailbox = Maildir/ を使う場合、Dovecot 側も Maildir を参照するように設定します。

コマンド
sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.bak.$(date +%Y%m%d%H%M%S)
sudo sed -i 's|^#\?mail_location =.*|mail_location = maildir:~/Maildir|' /etc/dovecot/conf.d/10-mail.conf
grep '^mail_location' /etc/dovecot/conf.d/10-mail.conf

ユーザーのホームディレクトリ配下に Maildir が作成され、Postfix がそこへ配送する構成を想定します。

コマンド
postconf home_mailbox

IMAP の待ち受けを確認する

Dovecot が IMAP / IMAPS で待ち受けているか確認します。

コマンド
sudo ss -ltnp | grep dovecot || true

通常、IMAP は TCP 143、IMAPS は TCP 993 を使います。内部向けであっても、平文認証を避けるため IMAPS を使う構成を基本にします。

TLS を設定する

証明書と秘密鍵のパスは /etc/dovecot/conf.d/10-ssl.conf で指定します。ここでは内部 CA や自己署名証明書を使う例として、証明書ファイルを配置済みとします。

コマンド
sudo cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.bak.$(date +%Y%m%d%H%M%S)
sudo postconf -n >/dev/null || true
設定ファイル例
sudo tee /etc/dovecot/conf.d/10-ssl.conf >/dev/null <<'EOF'
ssl = required
ssl_cert = </etc/ssl/certs/mail.example.internal.crt
ssl_key = </etc/ssl/private/mail.example.internal.key
EOF
証明書は、クライアントが接続する名前と SAN が一致している必要があります。内部 CA や自己署名証明書を使う場合は、クライアント側にも信頼設定が必要です。

認証方式を確認する

Ubuntu の標準的な Dovecot では、PAM を使ってローカルユーザー認証を行う構成が基本になります。

コマンド
grep -R '^auth_mechanisms' /etc/dovecot/conf.d/10-auth.conf
grep -R 'passdb' -n /etc/dovecot/conf.d/auth-*.conf | head

内部認証基盤に LDAP や SSSD を使う場合は、PAM 側で認証を寄せるか、Dovecot から LDAP を直接参照するかを設計します。この記事では、まずローカルユーザー / PAM 前提の基本構成に留めます。

設定を確認して再起動する

Dovecot の設定を確認してから再起動します。

コマンド
sudo doveconf -n
sudo systemctl restart dovecot.service
systemctl status dovecot.service --no-pager

IMAP 接続を確認する

IMAPS の疎通は openssl s_client で確認できます。

コマンド
openssl s_client -connect mail.example.internal:993 -servername mail.example.internal

証明書チェーン、接続先名、ポート到達性をここで確認します。認証まで含めて確認する場合は、メールクライアントまたは IMAP テストツールを使います。

Postfix から配送されたメールを確認する

Postfix から対象ユーザーの Maildir にメールが配送されているか確認します。

コマンド
sudo -u myuser find /home/myuser/Maildir -maxdepth 2 -type f | head

メールが見えない場合は、Postfix 側の配送先、Dovecot 側の mail_location、ユーザーのホームディレクトリ、ファイル権限を確認します。

コマンド
sudo journalctl -u dovecot -n 100 --no-pager
sudo journalctl -u postfix -n 100 --no-pager

運用上の注意

  • SMTP の配送は Postfix、IMAP の閲覧は Dovecot と分ける
  • Maildir の保存場所を Postfix と Dovecot で一致させる
  • IMAPS を使い、平文認証を避ける
  • 証明書の SAN と接続名を一致させる
  • メールボックスの権限と容量を監視する
  • 認証基盤を LDAP / SSSD に寄せる場合は責務を分けて設計する

まとめ

Ubuntu 22.04 で Dovecot を使うと、Postfix が配送した Maildir のメールを IMAP / IMAPS で閲覧できます。Postfix は SMTP の配送、Dovecot はメールボックスの閲覧という役割で分けて考えると、構成が分かりやすくなります。

基本は mail_location = maildir:~/Maildir を Postfix 側の配送先と一致させ、IMAPS、TLS 証明書、認証方式、ログ確認まで含めて動作を確認します。内部向けのメール基盤でも、証明書、認証、権限、ログを分けて確認することが重要です。

関連する記事
Ubuntu 22.04 Dovecot IMAP サーバー – Maildir のメールを読む

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る