✉️ メールサーバーを構築する旅、とうとうDovecot設定の核心に入ってきました!
前の投稿ではDovecotの設定ファイル構造を見てきましたが、いよいよ実践に入る時が来ました。

📌 まだ前回を見ていない方は、ぜひ最初にお読みください。
👉 Linuxでメールサーバーを構築する #3: Dovecotの設定ファイル構造と適用方法

今回の投稿では、メールサーバー運営に不可欠なDovecotの必須設定ファイル4つを一つずつ分析し、仮想ユーザー環境とPostfix連携を考慮した実用的な設定方法をまとめていきます。


🚀 Dovecot必須設定ファイル4つ

Dovecotの設定ファイルが非常に多いため、初めて見ると頭が痛くなるかもしれません。しかし、この4つの設定ファイルさえしっかり理解すれば、基本的なメールサービス運営が可能となります。

設定ファイル 役割
10-auth.conf ユーザー認証(Authentication)設定
10-mail.conf メールストレージ(メールボックス)設定
10-master.conf サービスプロセス(IMAP, POP3, LMTPなど)設定
10-ssl.conf TLS/SSL暗号化設定

各設定ファイルを確認しながら、仮想ユーザー環境とPostfix連携を考慮した設定を適用していきましょう。


🛠️ Dovecotインストール時に生成される vmail ユーザー

Dovecotを初めてインストールすると、システムに vmail という専用ユーザーとグループ(UID/GID 5000)が自動的に生成されます。
このユーザーはメールデータを保存・管理する役割を持っており、システムアカウントではなく、特別にメールを扱うアカウントです。

🔍 vmail ユーザー確認方法

ターミナルで次のコマンドを実行すると確認できます。

id vmail

出力例:

uid=5000(vmail) gid=5000(vmail) groups=5000(vmail)

または /etc/passwd ファイルで直接検索することもできます。

grep vmail /etc/passwd

もし vmail ユーザーが存在しない場合、次のコマンドで手動で作成する必要があります。

sudo groupadd -g 5000 vmail
sudo useradd -u 5000 -g vmail -s /sbin/nologin -d /var/mail vmail

これでDovecotの設定で vmail ユーザーを活用してメールを保存できるようになりました!


1️⃣ 10-auth.conf - ユーザー認証設定

このファイルはユーザーの認証方式を決定する非常に重要な設定ファイルです。
特に私たちは仮想ユーザー(Virtual User)環境を構築する予定なので、これを考慮して設定します。

📌 重要設定ポイント
- 仮想ユーザー方式(DB連携)で認証する
- PLAINおよびLOGIN方式の認証を有効にする(SSL環境で安全に使用)
- システムアカウント(/etc/passwd)ではなくDBを使用して認証

🔹 設定ファイル例 (/etc/dovecot/conf.d/10-auth.conf)

disable_plaintext_auth = yes
auth_mechanisms = plain login

!include auth-sql.conf.ext

💡 説明

  • disable_plaintext_auth = yes → 平文認証はSSLを使用する時のみ許可
  • auth_mechanisms = plain login → IMAP, POP3で最もよく使われる認証方式
  • !include auth-sql.conf.ext → 認証情報をデータベースから取得するように設定

つまり、Dovecotが直接 /etc/passwd のようなシステムアカウントを使用するのではなく、MySQLなどのDBを利用して認証することに構成するということです。

次回は auth-sql.conf.ext ファイルを詳しく扱う予定です!


2️⃣ 10-mail.conf - メールストレージ設定

メールが実際にどこに保存されるかを決定する設定ファイルです。 Postfixと連携してMaildir形式で保存するのが一般的です。

📌 重要設定ポイント
- Maildir形式を使用
- 仮想ユーザーのメール保存パス設定
- メール権限設定

設定ファイル例 (/etc/dovecot/conf.d/10-mail.conf)

mail_home = %h
mail_location = maildir:%h/Maildir

namespace inbox {
  inbox = yes
}

mail_uid = vmail
mail_gid = vmail
mail_privileged_group = mail

💡 説明

  • mail_home = %h → 仮想ユーザーのホームディレクトリを使用(DBから直接パス指定予定)
  • mail_location = maildir:%h/Maildir → メールをMaildir形式で保存
  • mail_uid, mail_gid → メール保存専用ユーザー(vmail)を使用
  • namespace inbox { inbox = yes } → メインメールボックス(受信トレイ)として指定

つまり、ユーザーのメールを特定のシステムアカウントではなく、別の vmail アカウントを使用して管理することに構成するということです。

Pigeon mail carrier on a gear representing mail storage


3️⃣ 10-master.conf - サービスプロセス設定

Dovecotが提供するサービス(IMAP, POP3, LMTPなど)を設定するファイルです。
特にPostfixと連携してLMTP(Local Mail Transfer Protocol)を使用する計画なので、これを有効化する必要があります。

📌 重要設定ポイント
- LMTPを有効化(Postfixと連携)
- 認証ソケット設定(PostfixがDovecotの認証を使用するよう設定)

🔹 設定ファイル例 (/etc/dovecot/conf.d/10-master.conf)

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    group = vmail
  }

  client {
    path = /run/dovecot/auth-client
  }
}

💡 説明

  • LMTPを有効化(service lmtp)
  • PostfixがメールをDovecotへ渡す際に dovecot-lmtp ソケットを利用
  • PostfixとDovecotの認証連携(service auth)
  • Postfixが /var/spool/postfix/private/auth ソケットを通じてDovecotから認証情報を取得できるように設定

つまり、PostfixがDovecotを介してユーザー認証を処理し、メール転送もLMTPを通じて連携するように設定するということです。


4️⃣ 10-ssl.conf - TLS/SSL暗号化設定

メールサーバーは必ず暗号化しなければなりません!このファイルではSSL/TLSを設定してセキュリティを強化します。

📌 重要設定ポイント

  • SSL/TLS暗号化を有効化
  • Let’s Encryptまたは自己署名証明書を使用可能

📌 ⚠️ この投稿ではSSL証明書を発行する過程は省略します。

既にドメインに対する証明書を発行していると仮定して進めますが、Let’s Encrypt、自己署名証明書、または商用証明書を使用できます。

設定ファイル例 (/etc/dovecot/conf.d/10-ssl.conf)

ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem

💡 説明

  • ssl = required → SSLは必須
  • ssl_cert, ssl_key → Let’s Encrypt証明書を使用して暗号化適用

つまり、クライアントが暗号化なしでアクセスできないようにし、TLSを通じてセキュリティを高めるということです。


🏁 まとめ

今回の投稿で扱ったDovecotの必須設定ファイル4つ
- 10-auth.conf → ユーザー認証方式(DBベース仮想ユーザー環境適用)
- 10-mail.conf → メールストレージパスおよび権限設定 (mail_home = %h 適用)
- 10-master.conf → Postfixと連携したLMTPおよび認証サービス設定
- 10-ssl.conf → SSL/TLSセキュリティ設定(Let's Encrypt設定省略)

これらの設定を正確に理解すれば、Postfixと連携してメールを受信・送信する環境を構築できるようになります。 次回は仮想ユーザー環境のためのデータベース設定 (auth-sql.conf.ext)を扱う予定です! 🚀

以前の投稿やメールサーバー構築シリーズの他の記事もぜひ読んでみてください! 下の「Similar Posts」や右上の検索バーに「dovecot」「mail」と検索してみてください!