8.2. Postfix SMTP サーバーのインストールおよび設定
電子メールメッセージを受信、保存、配信するように Postfix SMTP サーバーを設定できます。システムのインストール時にメールサーバーパッケージが選択されていない場合、Postfix はデフォルトで利用できません。Postfix をインストールするには、以下の手順を実行します。
前提条件
- root アクセスがある。
- システムの登録
手順
Sendmail ユーティリティーを無効にして削除します。
# yum remove sendmail
Postfix をインストールします。
# yum install postfix
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]
すべてのインターフェイスをリッスンするように Postfix を設定するには、以下を設定します。
inet_interfaces = all
gethostname()
関数によって返される完全修飾ドメイン名 (FQDN) とは異なるホスト名を Postfix が使用するようにしたい場合は、myhostname
パラメーターを追加します。myhostname = <smtp.example.com>
たとえば、Postfix はこのホスト名を、処理するメールのヘッダーに追加します。
ドメイン名が
myhostname
パラメーターのものと異なる場合は、mydomain
パラメーターを追加します。mydomain = <example.com>
myorigin
パラメーターを追加し、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 check
postfix
サービスが起動時に開始できるように有効化し、開始します。# systemctl enable --now postfix
smtp トラフィックがファイアウォールを通過することを許可し、ファイアウォールルールをリロードします。
# 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
を確認してください。
関連情報
-
/etc/postfix/main.cf
設定ファイル -
/usr/share/doc/postfix/README_FILES
ディレクトリー - firewalld の使用および設定