【メールサーバー構築 第3回】受信編 – Dovecotで実現する「盗聴不可能」なIMAP環境とSSL/TLS完全対応ガイド

スマホで読めないメールに意味はない

こんにちは!「リナックス先生」です。
前回、苦労してPostfixを設定し、ようやく世界中にメールを送れるようになりましたね。しかし、まだ「片手落ち」です。

【連載】Postfix+Dovecotで作る 最強のセキュアメールサーバー構築
コウ君

先生! 前回作ったメールアドレス宛にGmailから返信してみたんです。
エラーメールは帰ってこないので、サーバーには届いているはずなんですけど…どこを見ればいいんでしょう?
まさか毎回 less /home/kou-kun/Maildir/new/... ってコマンドで読むんですか?

リナックス先生

さすがにそれはエンジニアでも辛いわね。
サーバーに届いた手紙を、あなたのスマホやPCのメーラー(OutlookやThunderbird)に配達してくれるのが「Dovecot(ダブコット)」というソフトよ。
今回は、これを導入して「いつでもどこでもメールチェック」ができる環境を作るわ!

1. 基礎知識:POP3 と IMAP の決定的違い

作業に入る前に、メール受信のプロトコル(通信規約)について理解しておきましょう。
メール設定画面でよく見る「POP」と「IMAP」、どちらを選ぶべきでしょうか?

POP3 (Post Office Protocol ver3)

「サーバーからメールをダウンロードして、端末に保存する」方式です。

  • メリット: サーバーの容量を圧迫しない。ネットが繋がらなくても過去メールが読める。
  • デメリット: スマホで受信すると、PCでは見られない(消えてしまう)。端末が壊れるとメールも消える。

IMAP (Internet Message Access Protocol)

「サーバーにあるメールを直接見に行く」方式です。

  • メリット: スマホで見てもPCで見ても同じ状態(既読・未読)が同期される。端末を変えてもデータはサーバーに残っている。
  • デメリット: サーバーの容量(ディスクスペース)を使う。

結論:
現代では、複数の端末でメールを管理するのが当たり前なので、圧倒的に「IMAP」が推奨されます。
今回の講座でもIMAPを中心に構築を進めます。

2. Dovecotのインストール

それでは、Dovecotをインストールしましょう。
OSによってパッケージ名が微妙に異なります。

AlmaLinux / Rocky Linux / RHEL系

dnf install dovecot

Ubuntu / Debian系

Ubuntuでは機能ごとにパッケージが分かれています。必要なものを全て入れます。

apt update
apt install dovecot-core dovecot-imapd dovecot-pop3d

インストール確認

dovecot --version
# -> 2.3.x などのバージョンが表示されればOK

3. Dovecotの設定構造を理解する

Postfixの設定ファイル(main.cf)は1つの巨大なファイルでしたが、Dovecotの設定ファイルは「機能ごとに細かく分割」されています。
これに戸惑う初心者が多いのですが、整理すれば簡単です。

主な設定ファイルの場所: /etc/dovecot/conf.d/

  • 10-auth.conf: 認証(パスワード)の設定
  • 10-mail.conf: メールボックスの場所(Maildir)の設定
  • 10-master.conf: ポート番号やプロセス権限の設定
  • 10-ssl.conf: SSL証明書の設定

メインの /etc/dovecot/dovecot.conf が、これらのファイルを読み込む(Include)仕組みになっています。
それでは、一つずつ設定していきましょう。

4. 設定Step 1:プロトコルとインターフェース (dovecot.conf)

まずは親玉である /etc/dovecot/dovecot.conf を編集します。

vi /etc/dovecot/dovecot.conf

以下の行を探して修正(またはコメントアウトを解除)します。

# 使用するプロトコルを指定
# pop3も入れておきますが、基本はimapを使います
protocols = imap pop3

# 待ち受けIPアドレス
# * はIPv4すべて、[::] はIPv6すべてを意味します
listen = *, ::

5. 設定Step 2:メールボックスの場所 (10-mail.conf)

第2回のPostfix設定で、メールの保存形式を「Maildir」にしましたね。
Dovecotにも「メールはMaildir形式で、ホームディレクトリにあるよ」と教えてあげる必要があります。

vi /etc/dovecot/conf.d/10-mail.conf

30行目付近にある mail_location を探してください。

# デフォルト(mbox形式)をコメントアウト
# mail_location = mbox:~/mail:INBOX=/var/mail/%u

# Maildir形式を有効化
mail_location = maildir:~/Maildir

注意: Postfixの home_mailbox = Maildir/ 設定と一致していないと、メールが見つからずにエラーになります。

6. 設定Step 3:認証とセキュリティ (10-auth.conf)

「どんなパスワードを許可するか」を設定します。
ここではセキュリティのため、「SSL通信していない時の平文パスワード送信を禁止」します。

vi /etc/dovecot/conf.d/10-auth.conf

平文認証の禁止

# SSL通信以外でのプレーンテキスト認証を禁止する(推奨)
disable_plaintext_auth = yes

# 認証メカニズム(通常は plain login)
auth_mechanisms = plain login

先生の解説:
disable_plaintext_auth = yes にすると、Outlookなどで「SSLなし」で接続しようとした瞬間に「認証不可」として弾かれます。
これはパスワード漏洩を防ぐための必須設定です。

7. 設定Step 4:SSL/TLS暗号化 (10-ssl.conf)

第1回で取得した Let’s Encrypt のSSL証明書をDovecotにも適用します。
これにより、通信経路が暗号化され、カフェのWi-Fiなどでメールチェックしても盗聴されなくなります。

vi /etc/dovecot/conf.d/10-ssl.conf

以下の2行を探して、証明書のパスを書き換えてください。

# SSLを有効化
ssl = required

# 証明書と秘密鍵のパス(第1回でメモしたもの)
# 行頭の < を忘れずに!
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem

8. 設定Step 5:プロセスとポート設定 (10-master.conf)

ここは少し上級者向けですが、Postfixが認証を行うためにDovecotの機能を使う場合などに設定します。
今回は基本的なポート設定を確認するだけに留めます。

vi /etc/dovecot/conf.d/10-master.conf

service imap-loginservice pop3-login のセクションで、SSLポート(imaps:993, pop3s:995)が有効になっているか確認します(デフォルトで有効なはずです)。

9. 起動とFirewall設定

設定が終わったら、Dovecotを起動し、外部からの接続を受け入れるためにファイアウォールを開けます。

起動と自動起動設定

# 設定ファイルの構文チェック(何も出なければOK)
doveconf -n > /dev/null

# 起動
systemctl enable --now dovecot

Firewallのポート開放

暗号化されたIMAP (993) と POP3 (995) を開けます。
平文の 143/110 は、SSL必須設定にしたので閉じておいても良いですが、STARTTLS(途中から暗号化)を使うクライアントのために開けておくのが一般的です。

AlmaLinux (firewalld)

firewall-cmd --add-service=imaps --permanent
firewall-cmd --add-service=pop3s --permanent
firewall-cmd --add-service=imap --permanent
firewall-cmd --add-service=pop3 --permanent
firewall-cmd --reload

Ubuntu (ufw)

ufw allow 993/tcp
ufw allow 995/tcp
ufw allow 143/tcp
ufw allow 110/tcp

10. 接続テスト:ついに開通の瞬間!

さあ、いよいよクライアントソフト(メーラー)を設定して接続してみましょう。
PCのThunderbirdやWindowsメール、またはスマホのメールアプリを用意してください。

アカウント設定情報

メールアドレス kou-kun@example.com (第2回で作ったユーザー)
パスワード Linuxユーザーのパスワード
受信サーバー mail.example.com
プロトコル IMAP
ポート 993 (SSL/TLS)
送信サーバー mail.example.com
ポート 587 (STARTTLS) または 465 (SSL/TLS)

これで「接続成功」となり、受信トレイが表示されれば成功です!
自分宛てにテストメールを送って、すぐに受信トレイに現れるか確認してみましょう。

繋がらない時は?(トラブルシューティング)

もしエラーが出る場合は、サーバー側のログを確認するのが一番の近道です。

# メール関連のログをリアルタイム表示
tail -f /var/log/maillog
# (Ubuntuの場合は /var/log/mail.log)
  • Permission denied: /home/kou-kun/Maildir の権限がおかしいかも?所有者がユーザー本人になっているか確認。
  • Certificate error: SSL証明書のパスが間違っているか、期限切れかも?
  • Timeout: Firewallでポート(993など)が開いていないかも?

第3回まとめ:モバイル時代のメール環境

お疲れ様でした!
これで、あなたのサーバーは「送る」だけでなく「受け取る」こともできるようになりました。

  1. IMAP採用: スマホとPCで同期できる環境を作った。
  2. Maildir形式: PostfixとDovecotで保存場所を統一した。
  3. 設定ファイル分割: conf.d 以下のファイルを適切に編集した。
  4. SSL暗号化: 10-ssl.conf で証明書を設定し、盗聴を防いだ。
コウ君

先生! iPhoneでメールが見れました! 感動です!
自分で作ったサーバーを経由してメールが届くって、なんか不思議な気分ですね。
これでGmailとも普通にやり取りできますか?

リナックス先生

機能としてはできるわ。
でも…実は今の状態だと、Gmailに送ったメールは高い確率で「迷惑メールフォルダ」に入れられてしまうの。
なぜなら、あなたのメールには「署名」がないから。
次回は、Gmailなどの厳しいフィルターを通過するために必須の技術、「SPF・DKIM・DMARC」を設定して、サーバーの信頼性を最強レベルに引き上げるわよ!

▼大容量Maildirも安心のVPS

IMAP運用ではサーバーにメールが溜まり続けます。ディスク容量が豊富で、将来的なスケールアップも簡単なLinux工房推奨VPSはこちらです。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント