どのような役割のメールサーバでも共通するPostfixの設定を説明します。
前提条件
- 作業は、root権限を持つユーザで実施します。
- RHEL 7 / RHEL 8 / CentOS 7 /CentOS 8で手順は共通です。
- OSおよびPostfixは、以下のバージョンで検証しています。
# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
# uname -r
4.18.0-80.el8.x86_64
# postconf mail_version
mail_version = 3.3.1
設定ファイルのバックアップ
以下のコマンドを実行し、初期設定ファイルをバックアップします。
# cp /etc/postfix/main.cf{,.bak}
設定手順
ホスト名
メールサーバのホスト名を指定します。
<FQDN>
の箇所は、任意のFQDNを入力します。
※FQDNは、ホスト名とドメイン名を合わせた形式で入力します。(例: mail01.densan-hoshigumi.com)
# postconf -e 'myhostname = <FQDN>'
なお、インターネット上でメールをやり取りするメールサーバでは、不正なメールサーバから受信を防止するために、myhostname
に対するDNSの正引きチェック、送信元IPアドレスからの逆引きチェックが設定されている場合があります。
そのため、myhostname
に指定するFQDNが所属するドメインを管理するDNSサーバに対して、以下2レコードを設定する必要があります。
- ホスト名と送信元IPアドレスの組み合わせのAレコード
- 送信元IPアドレスとホスト名の組み合わせのPTRレコード
<例: mail01.densan-hoshigumi.com>
→ densan-hoshigumi.comを管理するDNSサーバで、mail01向けのAレコードと、該当サーバのグローバルIPアドレスとmail01が対応付けられたPTRレコードを設定する。
ドメイン名
メールサーバが所属するドメイン名を指定します。
<ドメイン名>
の箇所は、ホスト名に指定したFQDNが所属するドメイン名を入力します。
# postconf -e 'mydomain = <ドメイン名>'
IPv6の無効化
Postfixが使用するIPレイヤのプロトコルをIPv4に限定することで、IPv6を無効化します。
IPv6が有効な状態で名前解決処理が行われると、意図しないIPv6通信が発生する可能性があります。
明確にIPv6を使用するシステムの場合は有効なままで問題ないですが、そうでない場合は無効化を推奨します。
# postconf -e 'inet_protocols = ipv4'
設定内容の確認
以下のコマンドを実行し、事前にバックアップを取得しておいた初期設定ファイルと、現行の設定ファイルの差分を比較します。
各行>
に続けて設定した内容が差分として表示されていることを確認します。
# diff /etc/postfix/main.cf{.bak,}
138c138
< inet_protocols = all
---
> inet_protocols = ipv4
738a739,741
> mydomain = densan-hoshigumi.com
> myhostname = mail01.densan-hoshigumi.com
以下のコマンドを実行し、設定ファイルの文法に問題がないか確認します。
文法が正しければ、コマンド実行結果は何も表示されません。
# postfix check
設定の反映
以下のコマンドを実行し、postfixサービスを再起動して設定を反映します。
# systemctl restart postfix
以下のコマンドを実行し、postfixサービスが起動状態であることを確認します。
Active:の列にactive (running)が表示されていれば、サービスは起動中です。
# systemctl status --no-pager postfix.service
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2019-11-12 13:50:41 JST; 1min 21s ago
(略)
以上で、Postfixの基本設定は完了です。