Ubuntu 22.04 で内部向け Postfix メールサーバーを構築する手順です。ここでは、外部公開の MX サーバーではなく、内部システムやサーバー群から通知メールを受け取り、必要に応じて relayhost へ配送する SMTP 基盤として整理します。
Postfix は SMTP の送受信と配送を担当します。一方、ユーザーがメールボックスを IMAP で読む場合は Dovecot の役割になります。この記事では、内部向け SMTP 基盤としての Postfix に焦点を置きます。
Postfix詳解 MTAの理解とメールサーバの構築・運用
Postfix を中心にメールサーバーの構築と運用を確認したい場合の参考書籍です。Dovecot と組み合わせたメール基盤を理解する補助として使えます。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
関連するメールサーバー記事
Postfix と Dovecot は役割が異なります。ローカル通知、内部向け SMTP、IMAP 受信を分けて読むと、メール基盤の責務を整理しやすくなります。
- Ubuntu 22.04 Postfix ローカル MTA 設定
- Ubuntu 22.04 Postfix 内部向けメールサーバー構築 – 通知基盤と relayhost の設計
- Ubuntu 22.04 Dovecot MRA メールサーバー構築
内部向け Postfix の位置づけ
| 要素 | 役割 |
|---|---|
| Postfix | SMTP 受信、配送、リレーを扱う MTA |
| relayhost | 外部配送や上位メールサーバーへの中継先 |
| aliases | ローカル宛先の転送や管理者宛て通知を扱う |
| Dovecot | IMAP / POP3 とメールボックス閲覧を扱う |
| DNS / MX | 外部公開メールでは重要。内部用途では設計次第 |
Postfix をインストールする
sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y postfix mailutilsmain.cf を設定する
内部ネットワークから SMTP を受ける場合、mynetworks を明示します。広すぎる mynetworks は意図しないリレーの原因になるため、内部ネットワークに限定します。
sudo postconf -e 'myhostname = mail.example.local'
sudo postconf -e 'mydomain = example.local'
sudo postconf -e 'myorigin = $mydomain'
sudo postconf -e 'inet_interfaces = all'
sudo postconf -e 'inet_protocols = ipv4'
sudo postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain'
sudo postconf -e 'mynetworks = 127.0.0.0/8, 10.1.0.0/16'
sudo postconf -e 'relayhost = [smtp.example.local]:25'
sudo postconf -e 'home_mailbox = Maildir/'重要な設定項目
| 設定 | 意味 |
|---|---|
| myhostname | メールサーバー自身の FQDN |
| mydestination | この Postfix が最終配送先として扱うドメイン |
| mynetworks | リレーを許可する送信元ネットワーク |
| relayhost | 上位 SMTP サーバーや外部配送先 |
| home_mailbox | ローカル配送時のメールボックス形式 |
submission を使う場合
内部クライアントから認証付き SMTP 投稿を受ける場合は、25 番の単純なリレーではなく submission の設計を検討します。ここではサービス有効化の例だけ示します。
sudo postconf -M submission/inet='submission inet n - y - - smtpd'
sudo postconf -P submission/inet/syslog_name=postfix/submission
sudo postconf -P submission/inet/smtpd_tls_security_level=may
sudo systemctl reload postfix実運用で submission を使う場合は、SASL 認証、TLS、許可するクライアント、ログ監視を合わせて設計します。
aliases を設定する
sudo tee -a /etc/aliases <<'EOF'
root: admin@example.local
postmaster: admin@example.local
EOF
sudo newaliases設定を確認する
postfix check
postconf -n
systemctl status postfix --no-pager
ss -ltnp | grep ':25'送受信をテストする
echo 'internal postfix test' | mail -s 'internal postfix test' admin@example.local
sudo tail -n 100 /var/log/mail.logPostfix と Dovecot の責務分離
Postfix は SMTP と配送を担当し、Dovecot は IMAP / POP3 とメールボックス閲覧を担当します。メールが Maildir へ配送されても、ユーザーがメールクライアントから読むには Dovecot 側の設定が必要です。
運用上の注意
mynetworksを広げすぎない- 外部公開する場合は SPF、DKIM、DMARC、逆引き DNS、迷惑メール対策を別途設計する
- 内部通知用途では relayhost を明確にする
- mail.log を見て配送失敗を確認する
- IMAP が必要な場合は Dovecot と Maildir の整合性を確認する
まとめ
Ubuntu 22.04 の内部向け Postfix は、サーバーや内部システムの通知を受け、必要に応じて relayhost へ配送する SMTP 基盤として構成します。重要なのは、外部公開メールサーバーと混同せず、mynetworks、relayhost、aliases、ログ確認を明示することです。



