手当たり次第に書くんだ

飽きっぽいのは本能

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

CentOS 7 で内部向け SMTP サーバーを構築する手順です。ここではインターネットへ大きく公開する MTA ではなく、内部ネットワークからの送信、LDAP 連携、SASL 認証、smtps を組み合わせる既存環境向けの構成として整理します。

内部向け SMTP で重要なのは、Postfix を立てることそのものではなく、どのネットワークから中継を許可するのか、誰を認証するのか、どの宛先へ配送するのかを分けて考えることです。

コマンドはコピペしやすい形を優先しています。ただし、長大な既存設定ファイルを部分的に変更する箇所では、既存値との重複を避けるため、バックアップを取ったうえで設定断片を確認して反映します。

この手順は CentOS 7 設定マニュアル の一部として整理しています。

参考書籍
参考書籍

Postfix詳解 MTAの理解とメールサーバの構築・運用

Postfix を中心にメールサーバーの構築と運用を確認したい場合の参考書籍です。Dovecot と組み合わせたメール基盤を理解する補助として使えます。価格や在庫はリンク先で確認してください。

Amazon で見る

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

必要パッケージ

yum install cyrus-sasl

main.cf の設定

main.cf は既存値との重複が起きやすいため、丸ごと追記せず、下記の設定断片を確認して反映します。

cp -a /etc/postfix/main.cf /etc/postfix/main.cf.bak

cat <<'EOF'
# /etc/postfix/main.cf の該当項目を以下のように整理する
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8, 10.0.0.0/8
alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf
alias_database = hash:/etc/aliases
EOF

LDAP alias 連携

LDAP を alias の参照先にする場合は、bind DN やパスワードを設定ファイルへ書くため、権限を必ず絞ります。

cat <<'EOF' > /etc/postfix/ldap-aliases.cf
server_host = ldaps://localhost/
search_base = dc=mydomain,dc=com
bind = yes
bind_dn = cn=Reader,dc=mydomain,dc=com
bind_pw = [password]
query_filter = uid=%s
result_attribute = mailRoutingAddress
version = 3
EOF

chmod 600 /etc/postfix/ldap-aliases.cf

saslauthd の LDAP 設定

SASL 認証を LDAP に向ける場合は、saslauthd の認証方式と LDAP 接続情報を設定します。

cp -a /etc/sysconfig/saslauthd /etc/sysconfig/saslauthd.bak

cat <<'EOF'
# /etc/sysconfig/saslauthd の MECH を以下に変更する
MECH=ldap
EOF

cat <<'EOF' > /etc/saslauthd.conf
ldap_servers: ldaps://localhost/
ldap_bind_dn: cn=Reader,dc=mydomain,dc=com
ldap_password: [password]
ldap_search_base: dc=mydomain,dc=com
EOF

chmod 600 /etc/saslauthd.conf

smtps の有効化

master.cf で smtps を有効化し、TLS wrapper mode と SASL 認証を指定します。master.cf も既存行の有効化が前提なので、設定断片として確認します。

cp -a /etc/postfix/master.cf /etc/postfix/master.cf.bak

cat <<'EOF'
# /etc/postfix/master.cf の smtps 行を以下のように有効化する
smtps inet n - n - - smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
EOF

サービス起動

systemctl start saslauthd
systemctl enable saslauthd
systemctl status saslauthd

systemctl restart postfix
systemctl status postfix

確認するポイント

  • mynetworks が広すぎないか。
  • LDAP bind 用の認証情報ファイルが 600 になっているか。
  • smtps を内部向けに使う理由が明確か。
  • 外部から中継可能な open relay になっていないか。
  • 配送ログで alias 解決と認証結果を確認できるか。

内部向け SMTP は、便利さのために許可範囲を広げがちです。しかし、SMTP の中継許可は事故の影響が大きいため、認証、送信元ネットワーク、配送先の制御を分けて確認する必要があります。

この手順は CentOS 7 設定マニュアル の一部として整理しています。

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

コメントを残す

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

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

トップへ戻る