手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 8 Postfix 内部メールサーバー構築 – LDAP alias と smtps の設計

CentOS 8 で内部向け Postfix サーバーを構築する手順です。内部ネットワークからのメール送信、LDAP alias、smtps、SASL 認証を組み合わせる構成として整理します。

内部向け SMTP は、外部公開 MTA より簡単に見えますが、実際には中継許可範囲、認証、配送先、LDAP 参照、TLS の責務を分けて設計する必要があります。

コマンドはコピペしやすい形を優先しています。ただし、Postfix や Dovecot のような長大な設定ファイルは既存値との重複が起きやすいため、バックアップを取り、設定断片として確認して反映します。

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

参考書籍
参考書籍

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

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

Amazon で見る

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

前提

  • CentOS 8 を前提にする。
  • SELinux / Firewalld は環境の方針に合わせて調整する。
  • LDAP alias は LDAPS で参照する。
  • 内部向けであっても open relay にならないようにする。

インストール

dnf install postfix postfix-ldap cyrus-sasl

main.cf の整理

main.cf は既存値が多いため、丸ごと追記するのではなく、下記の項目を確認して整理します。

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

cat <<'EOF'
# /etc/postfix/main.cf の該当項目を以下のように整理する
compatibility_level = 2
myhostname = smtp.si1230.com
inet_interfaces = all
inet_protocols = 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
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/private/server.key
smtpd_sasl_auth_enable = yes
EOF

master.cf の smtps 有効化

master.cf も既存行の有効化が前提です。smtps を使う場合は TLS wrapper mode を指定します。

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

LDAP alias の設定

Postfix から LDAP alias を参照する設定です。bind パスワードを含むため、ファイル権限を必ず絞ります。

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

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

saslauthd の確認

SASL を PAM 認証で使う場合は、saslauthd の MECH を確認します。LDAP 認証に寄せる場合は Dovecot や LDAP クライアント設定との整合も見ます。

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

cat <<'EOF'
# /etc/sysconfig/saslauthd の確認例
SOCKETDIR=/run/saslauthd
MECH=pam
FLAGS=
EOF

起動と確認

systemctl enable --now saslauthd.service
systemctl enable --now postfix.service
systemctl status saslauthd.service
systemctl status postfix.service
postconf -n

運用上の注意

  • mynetworks を広く取りすぎない。
  • LDAP bind 情報を含むファイルを 600 にする。
  • smtps を有効にする理由と利用クライアントを明確にする。
  • 配送ログで alias 解決、認証、配送先を確認する。

内部メールサーバーは、便利さを優先すると中継範囲が膨らみます。ネットワーク制御、認証、alias 解決、TLS を分けて確認するのが安全です。

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

CentOS 8 Postfix 内部メールサーバー構築 – LDAP alias と smtps の設計

コメントを残す

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

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

トップへ戻る