ここでは、Postfixによるメールサーバーの構築方法についてまとめます。
環境はAlma Linux 9.6です。基本的にはRHEL系OSでほぼ同じ手順でできると思います。
まずはPostfixのインストールを行います。
Bash
dnf install -y postfixmain.cfの設定
ここからはPostfixの設定を行います。設置を行うには/etc/postfix/main.cfを編集します。
それぞの設定項目は以下のようなものがあります。
| 項目 | 設定例 | 備考 |
| inet_interfaces | all | メールを受け付けるIPアドレス |
| myhostname | mail.example.com | メールサーバのホスト名 |
| mydomain | example.com | メールサーバのドメイン名 |
| mydestination | $myhostname, localhost.$mydomain, localhost, $mydomain | 他のマシンに転送せず、ローカルに配送するドメインを指定。受信アドレスの指定 |
| mynetworks | 192.168.0.0/24 | 利用するPCのネットワーク。このネットワークからはどの配送先へもメールを転送する。 複数指定する場合はスペースを空ける。 |
| home_mailbox | Maildir/ | メールの保存形式 |
| relay_domains | $mydestination | ネットワーク外からのメールを認められたリモートの配送先のみに転送する。 |
| transport_maps | hash:/etc/postfix/transport | メールの配送先マッピングの指定。 |
Bash
# メールサーバーのホスト名
myhostname = mail.example.com
# メールサーバーのドメイン名
mydomain = example.com
# メールを受け付けるネットワークインターフェースのアドレスを設定
inet_interfaces = all
# IPv4のみを使用する
inet_protocols = ipv4
# ローカルマシンに配送するドメインを指定する。
# dovecotが別サーバーのため、localhostと$myhostnameのみを指定する。
mydestination = $myhostname, localhost.$mydomain, localhost
# localhostおよび172.16.0.0/24ネットワークからのメールを配信する。
mynetworks = 127.0.0.0/8 172.16.0.0/24
# メールボックスはMaildir/を指定する。
home_mailbox = Maildir/
# 送信元メールアドレスのサブドメイン部分を削除するオプション
masquerade_domains = example.com
# メールを外部にリレーしない
relayhost=
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
transport_maps = hash:/etc/postfix/transportこの場合、POP/IMAPサーバーを別建てする想定のため、mydestinationの項目にはlocalhostと$myhostnameのみを指定するようにしています。
トランスポートの設定
Dovecotが別のサーバーにあるので、example.com宛のメールをDovecotサーバーに送るように設定します。PostfixとDovecotが同じサーバーにある場合は設定は不要です。
/etc/postfix/transportを編集し、example.comドメインのメール配送先にDovecotサーバーを指定します。
最後の行に以下のように記載します。
Bash
domain.internal lmtp:[<dovecot server IP Address>]:24dovecotの待ち受けポートはデフォルトで24番となっていますが、変更する場合はトランスポートの設定の方も合わせてください。
設定したら、以下のコマンドを実行してトランスポートマッピングをハッシュ化します。
Bash
postmap /etc/postfix/transport最後に、Postfixの構文が正しいかどうかを確認します。
Bash
postfix checkサービスの起動
サービスを起動します。ファイアウォールが有効になっている場合は先に以下を実行します。
Bash
firewall-cmd --add-port=25/tcp --permanent
firewall-cmd --add-service=smtp
firewall-cmd --reload次に、Postfixのサービスを起動し、自動起動も有効にします。
Bash
systemctl start postfix
systemctl enable postfixDovecotの設定手順は別途記載します。