〜 安全かつ信頼性の高いメールサーバー運用の基本 〜
目次
🧭 概要
Postfix は、Linux環境で広く使われている**MTA(Mail Transfer Agent)**です。電子メールの送信・受信処理を担う心臓部であり、セキュリティ性・処理速度・拡張性に優れています。
この記事では以下のスキルを身につけます:
- Postfix の基本設定と構造
- メールエイリアス、仮想ドメイン、アクセス制限
- TLS/SMTP認証によるセキュリティ強化
- ログ・スプール監視による運用管理
🛠️ 1. Postfixのインストールとサービス管理
インストール(例:Debian系)
sudo apt update
sudo apt install postfix mailutils
※インストール中の対話形式で「インターネットサイト」を選択。
サービス管理
sudo systemctl start postfix
sudo systemctl enable postfix
sudo systemctl status postfix
🗂️ 2. 主要ディレクトリと設定ファイル
| パス | 内容 |
|---|---|
/etc/postfix/main.cf | メイン設定ファイル |
/etc/postfix/master.cf | サービス構成ファイル |
/etc/aliases | メールエイリアス定義 |
/var/spool/postfix/ | メールキュー・一時処理領域 |
/var/log/mail.log | ログファイル(送受信ログ) |
/var/log/mail.err | エラーログ |
📄 3. Postfixの基本設定(main.cf)
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
補足:
myhostname: ホスト名mydestination: ローカル配送対象のドメインhome_mailbox: Maildir形式(maildirパッケージが必要)
設定を反映するには:sudo postfix reload
✉️ 4. メールエイリアス設定(/etc/aliases)
root や postmaster に届いたメールを別ユーザへ転送します。
root: admin
support: user1
更新後、必ず以下を実行:
sudo newaliases
🌐 5. 仮想ドメインの設定(バーチャルメール)
複数のドメインを 1 台のサーバーで運用する場合に使用。
設定例(main.cf)
virtual_alias_domains = example.net example.org
virtual_alias_maps = hash:/etc/postfix/virtual
/etc/postfix/virtual に以下のように定義:
user@example.net user1
sales@example.org user2
反映コマンド:
sudo postmap /etc/postfix/virtual
sudo postfix reload
🔐 6. アクセス制限(リレー制御や迷惑メール対策)
他ドメインからの無制限リレーを防止:
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
permit_mynetworks:信頼ネットワーク許可permit_sasl_authenticated:認証済みユーザー許可reject_unauth_destination:無許可の中継拒否
🔒 7. TLSとSMTP認証(セキュア通信)
TLS設定(main.cf)
smtpd_tls_cert_file = /etc/ssl/certs/mail.crt
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
SMTP認証(SASL)
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
Postfix は Dovecot または Cyrus SASL と組み合わせてSMTP認証を実装します。
🔎 8. ログ確認とメール監視
ログファイル
| ファイル | 内容 |
|---|---|
/var/log/mail.log | 全般的な送受信ログ |
/var/log/mail.err | エラーメッセージ |
/var/log/mail.info | 詳細情報(必要に応じて) |
ログ監視:
tail -f /var/log/mail.log
📬 9. メール送信と確認
echo "テストメール本文" | mail -s "テスト件名" user@example.com
※ mailutils が必要です。
🔄 10. メールスプールの管理
キューの一覧表示:
mailq
特定メッセージの削除(メッセージID指定):
postsuper -d <ID>
全削除:
postsuper -d ALL
📘 補足:Eximとの比較
| 項目 | Postfix | Exim |
|---|---|---|
| 設計思想 | セキュリティ重視・モジュール型 | 柔軟性・設定自由度重視 |
| 標準採用 | Debian系はEximが多い | RHEL/CentOS系はPostfix |
| 学習曲線 | やや低め | 高め(設定が複雑) |
✅ まとめ
| 項目 | 設定・ファイル | ポイント |
|---|---|---|
| メイン設定 | /etc/postfix/main.cf | 基本設定を管理 |
| TLS/認証 | TLS & SASL設定 | メールの盗聴・不正中継を防ぐ |
| ログ管理 | /var/log/mail.log | トラブルシュートに必須 |
| エイリアス | /etc/aliases + newaliases | 転送メール設定 |
| 仮想ドメイン | virtual_alias_maps | 1台で複数ドメイン対応 |
コメント