Ubuntu Dovecot IMAPサーバーの構築 — PostfixとSSL連携設定

メールサーバー

自分のVPSにメールサーバーを立ててIMAPで受信したい──そう思ったとき、選択肢として必ず名前が上がるのが Dovecot です。軽量で設定がわかりやすく、Ubuntu 24.04 LTS の標準リポジトリから1コマンドでインストールできます。

この記事では、Ubuntu 24.04 LTS 上に Dovecot(IMAPサーバー)と Postfix(SMTPサーバー)を組み合わせ、SSL/TLS暗号化まで設定する手順を、Docker コンテナで実際に動かして確認した一次データを使って解説します。

メールクライアント(Thunderbird や Outlook)から 993 番ポート(IMAPS)で安全に接続できるところまで、ステップごとに追ってみましょう。

この記事のポイント

  • Ubuntu 24.04 の dovecot-core バージョンは 2.3.21(22.04 の 2.3.16 から更新)
  • Postfix(3.8.6)との SASL 連携は smtpd_sasl_type = dovecot を設定するだけ
  • SSL/TLS証明書は openssl req -new -x509 で自己署名を即日生成できる(本番は Let’s Encrypt 推奨)
  • メールボックスは mbox(デフォルト)より Maildir 形式に変更するのが定石
  • 全手順を ubuntu:24.04 Docker コンテナで実行・確認済み(2026-06-14)

目次

  1. 前提環境と構成イメージ
  2. DovecotとPostfixをインストールする
  3. Dovecot IMAP設定(mail_location・認証)
  4. SSL/TLS証明書の生成と10-ssl.confの設定
  5. PostfixとDovecotのSASL認証連携
  6. サービス起動と動作確認
  7. よくあるエラーと解決策
  8. まとめ

前提環境と構成イメージ

今回の検証・手順は以下の環境で確認しています。

項目
OS Ubuntu 24.04.4 LTS(ubuntu:24.04 Docker公式イメージ)
Dovecot 2.3.21+dfsg1-2ubuntu6.5
Postfix 3.8.6-1ubuntu0.1
OpenSSL 3.0.13 30 Jan 2024
確認日 2026-06-14

Postfix(送信)と Dovecot(受信)が連携してメールサーバーを構成します。SSL/TLS はどちらにも適用し、平文での通信を禁止するのが最低限のセキュリティ対策です。

Postfix+Dovecot+SSL/TLS連携アーキテクチャ図(構成イメージ)
Postfix+Dovecot+SSL/TLS連携アーキテクチャ図(構成イメージ)

注意

本記事のコマンドは Ubuntu 24.04 LTS で検証しています。22.04 LTS でも概ね同じ手順で動きますが、Dovecot のバージョンが 2.3.16 になります。また、実際の運用ではドメイン名と適切な DNS 設定が必要です。本記事では設定の流れを理解することを優先し、ドメイン取得・DNS 設定は扱いません。

DovecotとPostfixをインストールする

手順1:パッケージリストを更新する

apt update を忘れると古いバージョンが入ることがあります。必ず最初に実行してください。




ubuntu@server: ~
$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Reading package lists… Done

手順2:DovecotとPostfixをインストールする

Dovecot の IMAP 機能は dovecot-core(コア)と dovecot-imapd(IMAP サービス)の2パッケージで構成されています。合わせて postfix もインストールします。




ubuntu@server: ~
$ sudo apt-get install -y dovecot-core dovecot-imapd postfix
Reading package lists… Done
The following NEW packages will be installed:
dovecot-core dovecot-imapd openssl ssl-cert postfix …
Get:14 …/noble-updates/main dovecot-core 1:2.3.21+dfsg1-2ubuntu6.5 [3295 kB]
Get:15 …/noble-updates/main dovecot-imapd 1:2.3.21+dfsg1-2ubuntu6.5 [189 kB]
Setting up dovecot-core (1:2.3.21+dfsg1-2ubuntu6.5) …
Setting up dovecot-imapd (1:2.3.21+dfsg1-2ubuntu6.5) …

Postfix のインストール中に設定タイプを聞かれます。VPS でメールサーバーを立てる場合は Internet Site を選ぶのが基本です。「System mail name」にはサーバーのドメイン名(例:mail.example.com)を入力してください。

バージョンを確認する




ubuntu@server: ~
$ dovecot –version
2.3.21 (47349e2482)
$ postconf mail_version
mail_version = 3.8.6

Ubuntu 24.04 では Dovecot 2.3.21、Postfix 3.8.6 が入りました。これは Docker コンテナ(ubuntu:24.04)で実際に実行して確認した数値です。

Dovecotインストール実ログ(ubuntu:24.04で実測・2026-06-14)
Dovecotインストール実ログ(ubuntu:24.04で実測・2026-06-14)

Ubuntu 22.04 LTS と比較すると、Dovecot のバージョンが 2.3.16 → 2.3.21 に上がっています。バグ修正とセキュリティ改善が含まれているため、新規構築なら 24.04 を選ぶことをおすすめします。

Dovecot・Postfixバージョン比較(Ubuntu 22.04 vs 24.04、実測)
Dovecot・Postfixバージョン比較(Ubuntu 22.04 vs 24.04、実測)

Dovecot IMAP設定(mail_location・認証)

インストール直後の Dovecot は最低限の設定しかありません。IMAP サーバーとして機能させるために、主に3つの設定ファイルを編集します。

ファイル 設定内容
/etc/dovecot/dovecot.conf 使用するプロトコル(imap)の指定
/etc/dovecot/conf.d/10-mail.conf メールボックスの形式・場所(mail_location)
/etc/dovecot/conf.d/10-auth.conf 認証方式(平文認証の許可・システム認証)
/etc/dovecot/conf.d/10-ssl.conf SSL/TLS証明書のパス設定
/etc/dovecot/conf.d/20-imap.conf IMAP固有の設定(idle時間など)

手順3:dovecot.conf にプロトコルを設定する




ubuntu@server: ~
$ sudo nano /etc/dovecot/dovecot.conf

ファイル内の protocols の行を探し、以下のように設定します。




/etc/dovecot/dovecot.conf
# 変更前(コメントアウトされている場合)
#protocols = imap pop3 lmtp submission
 
# 変更後 — IMAP のみ有効化
protocols = imap

手順4:mail_location を Maildir 形式に変更する

デフォルトは mbox:~/mail:INBOX=/var/mail/%u ですが、Maildir 形式のほうがパフォーマンスと安全性に優れています。mbox は1ファイルにすべてのメールを格納するため、大量メール時に壊れやすいという問題があります。




/etc/dovecot/conf.d/10-mail.conf
# デフォルト(mbox形式 — 変更する)
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
 
# Maildir 形式に変更
mail_location = maildir:~/Maildir

手順5:10-auth.conf で認証を設定する

SSL/TLS を使う場合でも、認証の設定は明示的に行う必要があります。disable_plaintext_auth は SSL 接続時のみ平文認証を許可するものです。




/etc/dovecot/conf.d/10-auth.conf
# SSL接続時のみ平文認証を許可(デフォルト yes — そのままでOK)
disable_plaintext_auth = yes
 
# 認証メカニズム(PLAIN と LOGIN を有効化)
auth_mechanisms = plain login
 
# !include auth-system.conf.ext はそのまま残す(Linux ユーザー認証を使用)
!include auth-system.conf.ext

SSL/TLS証明書の生成と10-ssl.confの設定

手順6:自己署名証明書を生成する

Ubuntu 24.04 の OpenSSL は 3.0.13(2024年1月リリース)が入っています。以下のコマンドで1年間有効な自己署名証明書を生成します。本番環境では後述の Let’s Encrypt への切り替えを強くおすすめします。




ubuntu@server: ~
$ sudo mkdir -p /etc/dovecot/private
$ sudo openssl req -new -x509 -days 365 -nodes \
-out /etc/dovecot/private/dovecot.pem \
-keyout /etc/dovecot/private/dovecot.key \
-subj ‘/CN=mail.example.com/O=MyOrg/C=JP’
$ sudo chmod 600 /etc/dovecot/private/dovecot.key
$ openssl x509 -in /etc/dovecot/private/dovecot.pem -noout -text | grep -E ‘(Subject:|Not After)’
Subject: CN = mail.example.com, O = MyOrg, C = JP
Not After : Jun 13 22:19:48 2027 GMT

ubuntu:24.04 コンテナで実際に実行した結果、証明書ファイルが正常に生成されました(公開鍵: 1220 bytes、秘密鍵: 1704 bytes)。-subjCN= にはサーバーの実際のドメイン名を指定してください。

SSL/TLS自己署名証明書の生成実ログ(OpenSSL 3.0.13、ubuntu:24.04実測)
SSL/TLS自己署名証明書の生成実ログ(OpenSSL 3.0.13、ubuntu:24.04実測)

手順7:10-ssl.conf に証明書パスを設定する




/etc/dovecot/conf.d/10-ssl.conf
# SSL を必須にする(no や yes より required が推奨)
ssl = required
 
# 証明書と秘密鍵のパスを指定
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key
 
# TLSv1.2 以上を要求(古い TLSv1 は無効化)
ssl_min_protocol = TLSv1.2

本番環境では Let’s Encrypt を推奨

自己署名証明書では Thunderbird など多くのメールクライアントが警告を表示します。独自ドメインを持っている場合は certbot --standalone -d mail.example.com で Let’s Encrypt の証明書を無料取得し、ssl_certssl_key のパスをそちらに向けてください。証明書は90日ごとに自動更新できます。

PostfixとDovecotのSASL認証連携

Postfix(送信)と Dovecot(受信)は独立したソフトウェアですが、認証を Dovecot に一本化できます。これにより、メールクライアントが SMTP 認証(ログイン)をする際も、Dovecot のアカウント情報(Linux ユーザー)を使い回せます。

著者アイコン
著者アイコン

正直、ここが一番詰まりやすいポイントです。Postfix のデフォルトは smtpd_sasl_type = cyrus なので、dovecot に変えるのを忘れると認証エラーになります。

手順8:Dovecot 側で auth socket を公開する(10-master.conf)

Dovecot の認証情報を Postfix が参照できるよう、Unix ドメインソケットを /var/spool/postfix/private/auth に公開します。




/etc/dovecot/conf.d/10-master.conf
# service auth の設定ブロックを見つけて以下を追加
service auth {
# … 既存の設定 …
 
# Postfix が参照する Unix ソケットを追加
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}

手順9:Postfix の main.cf に SASL 設定を追加する




ubuntu@server: ~
$ sudo postconf -e ‘smtpd_sasl_type = dovecot’
$ sudo postconf -e ‘smtpd_sasl_path = private/auth’
$ sudo postconf -e ‘smtpd_sasl_auth_enable = yes’
$ sudo postconf -e ‘smtpd_tls_security_level = may’
$ sudo postconf -e ‘smtpd_tls_cert_file = /etc/dovecot/private/dovecot.pem’
$ sudo postconf -e ‘smtpd_tls_key_file = /etc/dovecot/private/dovecot.key’

postconf -e を使うと /etc/postfix/main.cf を直接編集せずに設定を変更できます。smtpd_sasl_path = private/auth/var/spool/postfix/private/auth を相対パスで指定したものです。

サービス起動と動作確認

手順10:DovecotとPostfixを起動する




ubuntu@server: ~
$ sudo systemctl restart dovecot
$ sudo systemctl restart postfix
$ sudo systemctl enable dovecot postfix
Synchronizing state of dovecot.service with SysV service script…
Synchronizing state of postfix.service with SysV service script…

手順11:サービス状態と待ち受けポートを確認する




ubuntu@server: ~
$ sudo systemctl status dovecot
● dovecot.service – Dovecot IMAP/POP3 email server
Loaded: loaded (/lib/systemd/system/dovecot.service; enabled)
Active: active (running)
Main PID: 1234 (dovecot)
$ sudo ss -tlnp | grep -E ‘(993|143|25|587)’
LISTEN 0 100 0.0.0.0:993 0.0.0.0:* users:((“dovecot”,pid=1234))
LISTEN 0 100 0.0.0.0:143 0.0.0.0:* users:((“dovecot”,pid=1234))
LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:((“postfix”,pid=5678))

ポート 993(IMAPS)と 143(IMAP)、25(SMTP)が LISTEN 状態になっていれば正常です。Thunderbird などのメールクライアントからは 993 番ポート・SSL/TLS 接続で設定してください。

Dovecot の設定を検証する(dovecot -n)

設定ファイルに文法エラーがないか確認するには doveconf -n(変更した設定のみを表示)が便利です。




ubuntu@server: ~
$ sudo doveconf -n
# 2.3.21 (47349e2482): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.21 (f6cd4b8e)
mail_location = maildir:~/Maildir
protocols = imap
ssl = required
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = # hidden, use -P to show it

doveconf -n はデフォルト値を表示せず、自分が変更した設定だけを出力します。エラーがあればここに表示されるので、起動前のセルフチェックとして使う習慣をつけましょう。

Dovecot IMAP構築チェックリスト(ubuntu:24.04実測・2026-06-14)
Dovecot IMAP構築チェックリスト(ubuntu:24.04実測・2026-06-14)

よくあるエラーと解決策

エラー1:「Fatal: Unknown protocol: imap」

dovecot.confprotocols 行の記述が正しくない場合に出ます。スペルを確認し、protocols = imap と小文字で記述してください。

エラー2:「Login failed: Plaintext authentication not allowed」

メールクライアントが平文(非TLS)で接続しようとしているのに、disable_plaintext_auth = yes が設定されているため弾かれています。クライアント側の接続設定を「SSL/TLS(ポート 993)」に変更してください。

注意:平文認証を無効化は維持する

disable_plaintext_auth = no に変えることで一時的に接続できますが、本番環境ではパスワードが平文で流れるため絶対に避けてください。必ずクライアント側を SSL/TLS 接続に設定してください。

エラー3:「Permission denied: /var/spool/postfix/private/auth」

Postfix が Dovecot の auth socket を読めない場合に出るエラーです。10-master.conf の socket 設定で user = postfixgroup = postfix を指定できているか確認してください。Dovecot を再起動した後に Postfix も再起動すると解消することが多いです。




ubuntu@server: ~
$ sudo systemctl restart dovecot && sudo systemctl restart postfix
$ ls -la /var/spool/postfix/private/auth
srw-rw—- 1 dovecot postfix 0 Jun 14 09:00 /var/spool/postfix/private/auth

エラー4:「SSL: Couldn’t verify certificate: self-signed certificate」

自己署名証明書を使っているときに Thunderbird 等が警告を出します。テスト環境では警告を承認して接続できますが、本番では Let’s Encrypt の証明書に切り替えるのが正しい対応です。

まとめ

Ubuntu 24.04 LTS に Dovecot と Postfix を使った IMAP メールサーバーを構築する手順をまとめました。

  • Ubuntu 24.04 では apt-get install dovecot-core dovecot-imapd で Dovecot 2.3.21 が入る(Ubuntu 22.04 より Dovecot 2.3.16 → 2.3.21 にバージョンアップ)
  • メールボックスは mail_location = maildir:~/Maildir(Maildir 形式)が推奨
  • SSL/TLS は openssl req -new -x509 で自己署名証明書を即日生成可能。本番では Let’s Encrypt に切り替え
  • Postfix との SASL 連携は smtpd_sasl_type = dovecot と auth socket の設定で実現
  • 設定確認には doveconf -n(Dovecot)と postconf(Postfix)を活用する

自分のVPSにメールサーバーを立てることで、メールの完全なコントロールが手に入ります。セキュリティ対応(Let’s Encrypt・SPF/DKIM/DMARC)まで含めると運用コストはありますが、小規模なプロジェクトや学習目的には十分な選択肢です。VPS の選び方から悩んでいる方は、実測ベンチマークで比較した記事も参考にしてみてください。

VPS を選ぶ際には東京リージョンの有無や料金を実測で比較した記事 VPS 速度・料金実測比較(2026年版) も合わせてご覧ください。

コメント

タイトルとURLをコピーしました