第2章 Postfix SMTP サーバーのデプロイと設定
システム管理者は、Postfix などのメール転送エージェント (MTA) を使用してメールインフラストラクチャーを設定し、SMTP プロトコルを使用してホスト間でメールメッセージを転送できます。Postfix は、メールのルーティングと配信を行うサーバー側アプリケーションです。Postfix を使用して、ローカルメールサーバーの設定、null クライアントメールリレーの作成、複数のドメインの宛先としての Postfix サーバーの使用、検索用ファイルに代わる LDAP ディレクトリーの選択を行うことができます。
postfix パッケージは、/etc/postfix/ ディレクトリーに複数の設定ファイルを提供します。
メールインフラストラクチャーを設定するには、次の設定ファイルを使用します。
-
main.cf: Postfix のグローバル設定が含まれています。 -
master.cf: メール配信を実現するために、さまざまなプロセスとの Postfix の対話を指定します。 -
access: Postfix に接続できるホストなどのアクセスルールを指定します。 -
transport: メールアドレスをリレーホストにマッピングします。 -
aliases: ユーザー ID エイリアスを説明するメールプロトコルで必要な設定可能な一覧が含まれます。このファイルは、/etc/ディレクトリーにあることに留意してください。
Postfix の主な機能:
- 一般的なメール関連の脅威から保護するためのセキュリティー機能
- 仮想ドメインおよびエイリアスのサポートを含むカスタマイズオプション
2.1. Postfix SMTP サーバーのインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
メールメッセージを受信、保存、配信するように Postfix SMTP サーバーを設定できます。システムのインストール時にメールサーバーパッケージが選択されていない場合、Postfix はデフォルトで利用できません。Postfix をインストールするには、以下の手順を実行します。
前提条件
- root アクセスがある。
- システムの登録
手順
Sendmail ユーティリティーを削除します。
dnf remove sendmail
# dnf remove sendmailCopy to Clipboard Copied! Toggle word wrap Toggle overflow Postfix をインストールします。
dnf install postfix
# dnf install postfixCopy to Clipboard Copied! Toggle word wrap Toggle overflow Postfix を設定するには、
/etc/postfix/main.cfファイルを編集し、以下の変更を加えます。デフォルトでは、Postfix は
loopbackインターフェイスでのみメールを受信します。特定のインターフェイスをリッスンするように Postfix を設定するには、inet_interfacesパラメーターをこれらのインターフェイスの IP アドレスに更新します。inet_interfaces = 127.0.0.1/32, [::1]/128, 192.0.2.1, [2001:db8:1::1]
inet_interfaces = 127.0.0.1/32, [::1]/128, 192.0.2.1, [2001:db8:1::1]Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのインターフェイスをリッスンするように Postfix を設定するには、以下を設定します。
inet_interfaces = all
inet_interfaces = allCopy to Clipboard Copied! Toggle word wrap Toggle overflow gethostname()関数によって返される完全修飾ドメイン名 (FQDN) とは異なるホスト名を Postfix が使用するようにしたい場合は、myhostnameパラメーターを追加します。myhostname = smtp.example.com
myhostname = smtp.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、Postfix はこのホスト名を、処理するメールのヘッダーに追加します。
ドメイン名が
myhostnameパラメーターのものと異なる場合は、mydomainパラメーターを追加します。mydomain = example.com
mydomain = example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow myoriginパラメーターを追加し、mydomainの値に設定します。myorigin = $mydomain
myorigin = $mydomainCopy to Clipboard Copied! Toggle word wrap Toggle overflow この設定では、Postfix はホスト名ではなく、ローカルで投稿されたメールの発信元としてドメイン名を使用します。
mynetworksパラメーターを追加し、メールの送信が許可される信頼できるネットワークの IP 範囲を定義します。mynetworks = 127.0.0.1/32, [::1]/128, 192.0.2.1/24, [2001:db8:1::1]/64
mynetworks = 127.0.0.1/32, [::1]/128, 192.0.2.1/24, [2001:db8:1::1]/64Copy to Clipboard Copied! Toggle word wrap Toggle overflow インターネットなどの信頼できないネットワークのクライアントがこのサーバー経由でメールを送信できるようにするには、後のステップでリレー制限を設定する必要があります。
main.cfファイルの Postfix 設定が正しいか確認します。postfix check
# postfix checkCopy to Clipboard Copied! Toggle word wrap Toggle overflow postfixサービスが起動時に開始できるように有効化し、開始します。systemctl enable --now postfix
# systemctl enable --now postfixCopy to Clipboard Copied! Toggle word wrap Toggle overflow SMTP トラフィックがファイアウォールを通過することを許可し、ファイアウォールルールをリロードします。
firewall-cmd --permanent --add-service smtp firewall-cmd --reload
# firewall-cmd --permanent --add-service smtp # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
postfixサービスが実行していることを確認します。systemctl status postfix
# systemctl status postfixCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 出力が停止し、待機中、またはサービスが実行されていない場合は、
postfixサービスを再起動します。systemctl restart postfix
# systemctl restart postfixCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
/etc/postfix/ディレクトリーの設定ファイル内のオプションを変更した後、postfixサービスをリロードして、これらの変更を適用します。systemctl reload postfix
# systemctl reload postfixCopy to Clipboard Copied! Toggle word wrap Toggle overflow
システム上のローカルユーザー間のメール通信を確認します。
echo "This is a test message" | mail -s <subject> <user@mydomain.com>
# echo "This is a test message" | mail -s <subject> <user@mydomain.com>Copy to Clipboard Copied! Toggle word wrap Toggle overflow メールサーバーが外部 IP 範囲からのメールを外部ドメインに中継していないことを確認するには、以下の手順に従います。
-
mynetworksで定義したサブネット内にないクライアントにログインします。 - メールサーバーを使用するようにクライアントを設定します。
-
メールサーバーの
mydomainで指定したドメイン以外のメールアドレスにメールを送信してみます。たとえば、non-existing-user@redhat.comにメールを送信してみます。 /var/log/maillogファイルを確認します。554 Relay access denied - the server is not going to relay. 250 OK or similar - the server is going to relay.
554 Relay access denied - the server is not going to relay. 250 OK or similar - the server is going to relay.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
トラブルシューティング
-
エラーが発生した場合は、
/var/log/maillogを確認してください。