CentOS 5 で Postfix を内部用メールサーバーとして構築する時の基本を確認します。ここでいう内部用とは、インターネットへ直接公開するメールサーバーではなく、LAN 内の通知メール、監視メール、システムメールを集約・配送する用途です。
内部用 Postfix の役割
内部用メールサーバーは、外部向け MX サーバーとは役割が違います。サーバーからの通知、監視アラート、cron の結果、アプリケーションの内部通知などを扱うための配送基盤として見ます。
- ローカルサーバーからのシステムメールを受ける
- 監視通知を内部宛に配送する
- 必要に応じて上位メールサーバーへリレーする
- 外部からの不特定 SMTP 接続は受けない
重要なのは、内部用であってもオープンリレーにしないことです。mynetworks と待ち受け範囲を確認し、送信を許可するネットワークを限定します。
インストールと起動確認
yum install postfix
chkconfig postfix on
service postfix start
service postfix status
postconf -nCentOS 5 では sendmail が既定で入っている環境もあります。MTA が複数入っている場合は、どちらが有効かを確認します。
alternatives --display mta
rpm -qa | egrep "postfix|sendmail"
netstat -lntp | grep :25main.cf の基本
内部用では、ホスト名、受信ドメイン、配送先、許可ネットワーク、リレー先を明確にします。
myhostname = mail01.example.local
mydomain = example.local
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8, 192.168.1.0/24
relayhost = [smtp.example.local]
home_mailbox = Maildir/relayhost を使う場合、このサーバーは最終配送先ではなく中継点になります。外部配送をどこに任せるのか、内部配送だけで完結するのかを分けて確認します。
設定確認と配送テスト
設定変更後は postfix check、reload、ログ確認、テスト送信を行います。
postfix check
service postfix reload
echo "test mail" | mail -s "postfix test" root
mailq
tail -f /var/log/maillog配送できない場合は、DNS、リレー先、mydestination、mynetworks、ファイアウォール、上位メールサーバー側の受信許可を順に確認します。
内部用でも確認すべき制御
mynetworksが広すぎないか- 外部から TCP 25 を受けていないか
- リレー先が正しいか
- root 宛メールの転送先が設定されているか
- ログが
/var/log/maillogに出ているか
内部用メールサーバーは地味ですが、監視通知や障害通知の経路になります。障害時に通知が届かないと意味がないため、構築後は実際に通知経路を使ったテストを行います。
まとめ
CentOS 5 の内部用 Postfix は、システム通知や監視メールを集約するための基盤です。外部公開メールサーバーとは違い、配送範囲、リレー先、送信元ネットワークを限定することが重要です。古い環境の移行では、どのサーバーがこの Postfix に依存していたかを棚卸しします。
関連する記事
- CentOS 5 サーバー管理ガイド
CentOS 5 系の記事を役割別に確認できるハブページです。 - CentOS 5 メールエイリアス設定
root 宛メールや管理者通知の転送を設定します。 - CentOS 5 Postfix 外部用メールサーバー構築
外部配送を扱う Postfix 構成との違いを確認します。
参考書籍
Postfix の配送経路、リレー、ログ確認、メールサーバー運用を深く確認したい場合の参考書籍です。
Amazon で見る
