第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 sendmailPostfix をインストールします。
# dnf install postfixPostfix を設定するには、
/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]すべてのインターフェイスをリッスンするように Postfix を設定するには、以下を設定します。
inet_interfaces = allgethostname()関数によって返される完全修飾ドメイン名 (FQDN) とは異なるホスト名を Postfix が使用するようにしたい場合は、myhostnameパラメーターを追加します。myhostname = smtp.example.comたとえば、Postfix はこのホスト名を、処理するメールのヘッダーに追加します。
ドメイン名が
myhostnameパラメーターのものと異なる場合は、mydomainパラメーターを追加します。mydomain = example.commyoriginパラメーターを追加し、mydomainの値に設定します。myorigin = $mydomainこの設定では、Postfix はホスト名ではなく、ローカルで投稿されたメールの発信元としてドメイン名を使用します。
mynetworksパラメーターを追加し、メールの送信が許可される信頼できるネットワークの IP 範囲を定義します。mynetworks = 127.0.0.1/32, [::1]/128, 192.0.2.1/24, [2001:db8:1::1]/64インターネットなどの信頼できないネットワークのクライアントがこのサーバー経由でメールを送信できるようにするには、後のステップでリレー制限を設定する必要があります。
main.cfファイルの Postfix 設定が正しいか確認します。# postfix checkpostfixサービスが起動時に開始できるように有効化し、開始します。# systemctl enable --now postfixSMTP トラフィックがファイアウォールを通過することを許可し、ファイアウォールルールをリロードします。
# firewall-cmd --permanent --add-service smtp # firewall-cmd --reload
検証
postfixサービスが実行していることを確認します。# systemctl status postfixオプション: 出力が停止し、待機中、またはサービスが実行されていない場合は、
postfixサービスを再起動します。# systemctl restart postfixオプション:
/etc/postfix/ディレクトリーの設定ファイル内のオプションを変更した後、postfixサービスをリロードして、これらの変更を適用します。# systemctl reload postfix
システム上のローカルユーザー間のメール通信を確認します。
# echo "This is a test message" | mail -s <subject> <user@mydomain.com>メールサーバーが外部 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.
-
トラブルシューティング
-
エラーが発生した場合は、
/var/log/maillogを確認してください。