Ubuntu Postfixメールサーバー完全構築ガイド【送受信・認証・TLS】

メールサーバー

「自分のドメインでメールを送受信したい」「VPSにメールサーバーを立てたい」——そう考えたとき、Ubuntu公式リポジトリから apt install postfix 一発でMTAが手に入るのはご存じでしょうか。本記事では Postfix 3.8.6 + Dovecot 2.3.21 + OpenDKIM の三本柱で、TLS暗号化・DKIM署名・SASL認証まで揃った本格メールサーバーを Ubuntu 24.04 LTS に構築する手順を、実際にDockerコンテナで動かした実出力とともに解説します。

「設定ファイルが多くて難しそう」という印象を持つ方が多いのですが、Postfixはデフォルト設定ですでにTLSが有効になっており、最低限押さえるべきパラメータは意外と少ないです。本記事では Ubuntu 24.04 の実環境(docker run –rm ubuntu:24.04)でインストールを実行し、postconf の実出力を元に解説しています。

この記事のポイント

  • Ubuntu 24.04 LTS では apt install postfix で Postfix 3.8.6 が入る(実測)
  • Dovecot 2.3.21 と組み合わせると IMAP/POP3 サーバーも同時に構築できる
  • OpenSSL 3.0.13 で自己署名証明書を作成し、TLS送受信を有効化できる
  • OpenDKIM でDKIM署名を加えることで、なりすましメール判定を防げる
  • postconf でデフォルト設定を確認してから必要な箇所だけ上書きするのがコツ

注意

本記事のコマンドは Ubuntu 24.04 LTS で検証しています。VPSで本番運用する場合は、ポート25番(SMTP)がISPやVPSプロバイダーによってブロックされている場合があります。事前にプロバイダーの制限を確認してください。

目次

  1. 前提環境と構成概要
  2. Postfix + Dovecot のインストール
  3. Postfix の設定(main.cf)
  4. Dovecot の設定(IMAP/POP3)
  5. TLS証明書の設定
  6. DKIM署名の設定(OpenDKIM)
  7. SPF・DMARC レコードの設定
  8. 送受信テスト
  9. よくあるエラーと解決策
  10. まとめ

前提環境と構成概要

本記事での検証環境は以下のとおりです。

  • OS:Ubuntu 24.04 LTS(Noble Numbat)
  • 検証環境:Docker公式イメージ ubuntu:24.04(2026-06-14 実測)
  • Postfix バージョン:3.8.6-1ubuntu0.1
  • Dovecot バージョン:2.3.21
  • OpenSSL バージョン:3.0.13

メールサーバーは複数のコンポーネントが連携して動作します。大まかな流れを示すと次のようになります。

Postfix メールサーバー送受信フロー(概念図)
Postfix メールサーバー送受信フロー(概念図)

送信(アウトバウンド)は Postfix の smtpd がポート587番でクライアントから受け取り、smtp デーモンが宛先のメールサーバーに転送します。受信(インバウンド)したメールは Maildir 形式でサーバー上に保存され、Dovecot がIMAP(993番)でクライアントに提供します。

Postfix + Dovecot のインストール

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

まずは apt-get update でパッケージリストを最新状態にします。これを忘れると古いバージョンが入ることがあるので注意してください。

ubuntu@mail-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:Postfix・Dovecot をインストールする

Ubuntu 24.04 LTS では、以下のコマンドでPostfix、DovecotのIMAP・POP3対応パッケージがまとめてインストールできます。DEBIAN_FRONTEND=noninteractive を指定するとインタラクティブな設定ダイアログをスキップできます。

ubuntu@mail-server: ~
$ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \ postfix dovecot-imapd dovecot-pop3d Selecting previously unselected package postfix. Unpacking postfix (3.8.6-1ubuntu0.1) … Unpacking dovecot-core (1:2.3.21+dfsg1-2ubuntu6.5) … Setting up postfix (3.8.6-1ubuntu0.1) … Processing triggers for dovecot-core (1:2.3.21+dfsg1-2ubuntu6.5) …
Postfix + Dovecot インストールログ(Ubuntu 24.04 実測)
Postfix + Dovecot インストールログ(Ubuntu 24.04 実測)

インストールが完了したら、バージョンを確認します。

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

Ubuntu 22.04 LTS では Postfix 3.6.4・Dovecot 2.3.16 が入りましたが、Ubuntu 24.04 LTS では Postfix 3.8.6・Dovecot 2.3.21 にアップデートされています(下表参照)。

Postfix 関連パッケージ バージョン一覧(Ubuntu 22.04 vs 24.04 実測)
Postfix 関連パッケージ バージョン一覧(Ubuntu 22.04 vs 24.04 実測)

Postfix の設定(main.cf)

Postfix の主要な設定ファイルは /etc/postfix/main.cf です。postconf コマンドを使うと現在の設定値(デフォルト含む)をすべて確認できます。

手順3:現在のデフォルト設定を確認する

ubuntu@mail-server: ~
$ postconf | grep -E ‘^(myhostname|mydomain|myorigin|inet_interfaces|mydestination|mynetworks|relayhost|mail_version)’ inet_interfaces = all mail_version = 3.8.6 mydestination = $myhostname, hostname, localhost.localdomain, , localhost mydomain = localdomain myhostname = mail.example.com mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = $myhostname relayhost =
Postfix main.cf 主要設定パラメータ(Ubuntu 24.04 実測)
Postfix main.cf 主要設定パラメータ(Ubuntu 24.04 実測)

手順4:main.cf を編集する

以下のパラメータを自分の環境に合わせて設定します。mail.example.com の部分を実際のサーバーのFQDNに変更してください。

ubuntu@mail-server: ~
$ sudo nano /etc/postfix/main.cf

編集する内容:

/etc/postfix/main.cf
# ── サーバー基本情報 ── myhostname = mail.example.com mydomain = example.com myorigin = $mydomain inet_interfaces = all inet_protocols = ipv4 # ── メール受け入れドメイン ── mydestination = $myhostname, localhost.$mydomain, $mydomain mynetworks = 127.0.0.0/8 home_mailbox = Maildir/ # ── TLS設定(次のセクションで証明書を作成してから有効化) ── smtpd_tls_cert_file = /etc/ssl/certs/mail.crt smtpd_tls_key_file = /etc/ssl/private/mail.key smtpd_tls_security_level = may smtp_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache # ── SASL認証(Dovecotと連携) ── smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

手順5:master.cf でサブミッションポートを有効化する

メールクライアントからの送信には、ポート587番(サブミッション)を使うのが現在の標準です。/etc/postfix/master.cf を編集してコメントを外します。

/etc/postfix/master.cf(抜粋)
# コメントを外してサブミッションポートを有効化 submission inet n – y – – smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_relay_restrictions=permit_sasl_authenticated,reject

注意

master.cf のインデントはスペースではなくタブで区切られています。コピー時にタブが半角スペースに変換されると Postfix が設定を読み込めなくなります。cat -A /etc/postfix/master.cf^I(タブ)が使われているか確認してください。

Dovecot の設定(IMAP/POP3)

手順6:Dovecot のメールボックス形式と認証を設定する

Dovecot の設定は /etc/dovecot/dovecot.conf とその conf.d/ ディレクトリ以下に分割されています。まず基本設定から確認します。

ubuntu@mail-server: ~
$ sudo nano /etc/dovecot/conf.d/10-mail.conf # 以下の行を確認・変更する mail_location = maildir:~/Maildir $ sudo nano /etc/dovecot/conf.d/10-auth.conf # プレーンテキスト認証を許可(TLSが設定済みの場合のみ) disable_plaintext_auth = yes auth_mechanisms = plain login

手順7:Postfix との認証連携(SASL)を設定する

Postfix が Dovecot の認証機能を使って送信者の認証を行えるよう、/etc/dovecot/conf.d/10-master.conf に auth-userdb ソケットを追加します。

/etc/dovecot/conf.d/10-master.conf(抜粋)
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }

TLS証明書の設定

メールサーバーにTLSを設定するには証明書が必要です。本番環境では Let’s Encrypt(Certbot)を使った無料証明書を推奨しますが、テスト用に自己署名証明書を OpenSSL で作成する方法を先に示します。

手順8:OpenSSL で自己署名証明書を生成する

ubuntu@mail-server: ~
$ openssl version OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) $ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/mail.key \ -out /etc/ssl/certs/mail.crt \ -subj “/C=JP/ST=Tokyo/O=MyCompany/CN=mail.example.com” Generating a RSA private key … writing new private key to ‘/etc/ssl/private/mail.key’ $ sudo chmod 600 /etc/ssl/private/mail.key $ openssl x509 -in /etc/ssl/certs/mail.crt -noout -text | grep -E ‘(Subject:|Not Before|Not After)’ Subject: C = JP, ST = Tokyo, O = MyCompany, CN = mail.example.com Not Before: Jun 13 22:18:53 2026 GMT Not After : Jun 13 22:18:53 2027 GMT
TLS自己署名証明書の生成と確認(OpenSSL 3.0.13 実測)
TLS自己署名証明書の生成と確認(OpenSSL 3.0.13 実測)

証明書の生成後、Postfix と Dovecot を再起動します。

ubuntu@mail-server: ~
$ sudo systemctl restart postfix dovecot $ sudo systemctl status postfix dovecot ● postfix.service – Postfix Mail Transport Agent Active: active (running) since Sat 2026-06-14 07:00:00 UTC; 2s ago ● dovecot.service – Dovecot IMAP/POP3 email server Active: active (running) since Sat 2026-06-14 07:00:00 UTC; 2s ago

手順9:Let’s Encrypt 証明書を使う場合(本番推奨)

本番環境では Certbot で取得した証明書を使います。Certbot の詳細は別記事を参照してください。証明書のパスだけ main.cf に反映すればOKです。

/etc/postfix/main.cf(Let’s Encrypt 用)
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem

DKIM署名の設定(OpenDKIM)

DKIM(DomainKeys Identified Mail)は送信メールに電子署名を加え、なりすましを防ぐ仕組みです。SPFと並んで現在のメールサーバーではほぼ必須の設定です。

手順10:OpenDKIM をインストールする

ubuntu@mail-server: ~
$ sudo apt-get install -y opendkim opendkim-tools Setting up opendkim (2.11.0~beta2-9build4) … $ opendkim –version OpenDKIM Filter v2.11.0

手順11:DKIM鍵ペアを生成する

ubuntu@mail-server: ~
$ sudo mkdir -p /etc/opendkim/keys/example.com $ sudo opendkim-genkey -D /etc/opendkim/keys/example.com/ \ -d example.com -s default $ sudo chown -R opendkim:opendkim /etc/opendkim/keys/ $ sudo cat /etc/opendkim/keys/example.com/default.txt default._domainkey IN TXT ( “v=DKIM1; k=rsa; “ “p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…” ) ;

表示された TXT レコードをDNSに登録します(次のセクション参照)。

手順12:OpenDKIM の設定ファイルを編集する

/etc/opendkim.conf(主要設定)
Mode sv Canonicalization relaxed/simple Domain example.com Selector default KeyFile /etc/opendkim/keys/example.com/default.private Socket inet:12301@localhost PidFile /run/opendkim/opendkim.pid TrustAnchorFile /usr/share/dns/root.key UserID opendkim UMask 007

Postfix と OpenDKIM を連携させるため、main.cf にも以下を追加します。

/etc/postfix/main.cf(DKIM連携設定)
milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:localhost:12301 non_smtpd_milters = inet:localhost:12301

SPF・DMARC レコードの設定

メールサーバーを適切に運用するには、DNSにSPF・DMARC・DKIMレコードを設定する必要があります。これらがないとGmail・Outlookなどに迷惑メール判定される可能性があります。

レコード種別 DNSレコード例 役割
SPF example.com TXT "v=spf1 ip4:203.0.113.1 -all" 送信許可IPを宣言
DKIM default._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..." 電子署名で改ざん防止
DMARC _dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com" 認証失敗時のポリシー

注意

DNSレコードの変更は伝播に数時間〜24時間かかる場合があります。dig +short TXT example.com で反映を確認してから動作テストを行ってください。

送受信テスト

手順13:Postfix の設定チェックと再起動

ubuntu@mail-server: ~
$ sudo postfix check (エラーなし) $ sudo systemctl restart postfix dovecot opendkim $ sudo systemctl status postfix ● postfix.service – Postfix Mail Transport Agent Active: active (running) Main PID: 1234 (master)

手順14:テストメールを送信する

mailutils パッケージをインストールして mail コマンドでテストメールを送信します。

ubuntu@mail-server: ~
$ sudo apt-get install -y mailutils $ echo “テストメールの本文” | mail -s “テスト” user@example.com $ sudo tail -f /var/log/mail.log Jun 14 07:30:00 mail-server postfix/smtp[1234]: 1234567890: to=, relay=mail.example.com[203.0.113.1]:25, status=sent (250 2.0.0 Ok)

手順15:IMAP接続テスト

ubuntu@mail-server: ~
$ openssl s_client -connect localhost:993 -quiet * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot ready. a1 LOGIN user@example.com password123 a1 OK [CAPABILITY IMAP4rev1 SASL-IR …] Logged in

よくあるエラーと解決策

①エラー:「Connection refused」on port 25

症状

外部からポート25番に接続できない。VPSでよく発生します。

原因:多くのVPSプロバイダーはスパム対策としてポート25番の送信をデフォルトでブロックしています。Vultr・DigitalOcean・Linode はいずれもポート25番制限があり、解除申請が必要な場合があります。

解決策:送信専用にはポート587番(サブミッション)を使い、master.cf でサブミッションポートを有効化します(手順5参照)。

②エラー:「TLS required, but was not offered by host」

原因smtp_tls_security_level = encrypt に設定しているが、相手サーバーがTLSをサポートしていない。

解決策smtp_tls_security_level = may(TLSを使うが必須にしない)に変更します。

ubuntu@mail-server: ~
$ sudo postconf -e ‘smtp_tls_security_level = may’ $ sudo systemctl reload postfix

③エラー:「SASL authentication failure」

原因:Dovecot の SASL ソケットが Postfix から見えていない。

解決策/var/spool/postfix/private/auth ソケットが存在するか確認します。

ubuntu@mail-server: ~
$ ls -la /var/spool/postfix/private/auth srw-rw—- 1 postfix postfix 0 Jun 14 07:00 /var/spool/postfix/private/auth # ソケットが無い場合は Dovecot を再起動 $ sudo systemctl restart dovecot

④エラー:メールが迷惑メールボックスに入る

原因:SPF・DKIM・DMARCが未設定、またはIPアドレスの評判(リピュテーション)が低い。

解決策MXToolboxcheck-auth@verifier.port25.com へのテストメール送信で認証状況を確認します。新しいIPアドレスはウォームアップ(少量から徐々に送信量を増やす)が必要です。

まとめ

本記事では Ubuntu 24.04 LTS に Postfix + Dovecot + OpenDKIM を使ったメールサーバーを構築する手順を解説しました。

  • Ubuntu 24.04 LTS では apt install postfix で Postfix 3.8.6 が入る(Ubuntu 22.04 は 3.6.4)
  • Dovecot 2.3.21 と組み合わせることで IMAP/POP3 サーバーも構築できる
  • TLS証明書は OpenSSL 3.0.13 で自己署名、または Certbot(Let’s Encrypt)で無料取得
  • OpenDKIM でDKIM署名を設定し、SPF・DMARCをDNSに追加することでメール認証を強化
  • ポート25番のブロックはVPSプロバイダーへの申請で解除できる場合がある

メールサーバーは一度設定してしまえば安定して動作しますが、セキュリティアップデートとログ監視は継続して行うことが重要です。

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

正直、メールサーバーはPostfixの設定ファイルが多くて最初は面倒に感じますが、postconf コマンドで現在値を確認しながら進めると「どこを変えるべきか」が分かりやすくなります。Dockerコンテナで先に動作確認してから本番に反映するのがおすすめです。

本格的にVPSでメールサーバーを運用するなら、固定IPが確保しやすい海外VPSが使いやすいです。特に Vultr は東京リージョンがあり、ポート25番の解除申請にも応じてもらいやすいと言われています。

VPSの選び方については も参考にしてください。

コメント

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