CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。
CentOS 7 の Postfix を内部向け SMTP リレーとして構築する手順です。アプリケーションサーバーや監視サーバーからの通知メールを集約し、上位のメールサーバーへ配送する構成として整理します。
内部リレーでは、誰からの送信を許可するかが最重要です。外部に公開する MTA と同じ感覚で設定すると、意図しない中継や配送トラブルにつながります。
構成の前提
- 内部ネットワークのサーバーからの SMTP を受ける。
- 外部配送は上位の SMTP サーバーへ relayhost で渡す。
- mynetworks は内部セグメントに限定する。
- 外部から直接使わせない。
Postfix をインストールする
yum install postfixmain.cf を設定する
cp -a /etc/postfix/main.cf /etc/postfix/main.cf.bakmyhostname = smtp-relay.mydomain.com
mydomain = mydomain.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = localhost
mynetworks = 127.0.0.0/8, 10.0.0.0/24
relayhost = [smtp.example.com]:587
smtp_use_tls = yes上位 SMTP 認証を使う場合
cat > /etc/postfix/sasl_passwd <<'EOF'
[smtp.example.com]:587 relay-user:relay-password
EOF
postmap /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.dbsmtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous設定を検証して起動する
postfix check
systemctl enable postfix
systemctl restart postfix
systemctl status postfix送信テストを行う
sendmail user@example.com <<'EOF'
Subject: postfix relay test
relay test
EOFログを確認する
tail -n 100 /var/log/maillog確認するポイント
- mynetworks が広すぎないか。
- relayhost の認証情報を適切に保護しているか。
- 配送失敗時に queue が溜まっていないか。
- アプリケーション側がこの SMTP リレーを使う理由が明確か。
まとめ
内部向け Postfix リレーでは、配送設定よりも許可範囲の設計が重要です。CentOS 7 の既存環境では、mynetworks、relayhost、認証情報、maillog を確認し、どのサーバーからどこへメールが流れるのかを線で追える状態にします。
関連する記事
- CentOS 7 サーバー管理ガイド
CentOS 7 系の記事をまとめたハブページです。
参考書籍
参考
書籍
書籍
参考書籍
Postfix 実用ガイド
Postfix の設計、設定、運用を詳しく確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
CentOS 7 Postfix 内部向け SMTP サーバー構築 – relay と配送設計



