手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 7 Postfix 内部向け SMTP サーバー構築 – relay と配送設計

CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。

CentOS 7 サーバー管理ガイドへ戻る

CentOS 7 の Postfix を内部向け SMTP リレーとして構築する手順です。アプリケーションサーバーや監視サーバーからの通知メールを集約し、上位のメールサーバーへ配送する構成として整理します。

内部リレーでは、誰からの送信を許可するかが最重要です。外部に公開する MTA と同じ感覚で設定すると、意図しない中継や配送トラブルにつながります。

構成の前提

  • 内部ネットワークのサーバーからの SMTP を受ける。
  • 外部配送は上位の SMTP サーバーへ relayhost で渡す。
  • mynetworks は内部セグメントに限定する。
  • 外部から直接使わせない。

Postfix をインストールする

yum install postfix

main.cf を設定する

cp -a /etc/postfix/main.cf /etc/postfix/main.cf.bak
myhostname = 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.db
smtp_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 を確認し、どのサーバーからどこへメールが流れるのかを線で追える状態にします。

関連する記事

参考書籍

参考
書籍
参考書籍
Postfix 実用ガイド

Postfix の設計、設定、運用を詳しく確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

CentOS 7 Postfix 内部向け SMTP サーバー構築 – relay と配送設計

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る