WEB TECKS - WEBサイト構築知識いろいろ

メールサーバ構築 Postfixインストール設定手順(最小限設定で立ち上げる)

更新日:2024-04-01 14:08:48 登録日:2024-03-24 16:33:48
[確認環境]
Amazon Linux 2
Postfix:3.9

 以下の前提で設定する手順を示します。

・複数ドメイン(バーチャルドメイン)で運用するメールサーバとして設定する。
・メールクライアントはsubmissionポート(587)を使用してメールを送信するものとする。
・サーバのホスト名はec2.exsample.comを仮定する。
・abcdefg.com、hijklmn.netというドメインも送受信対象となると仮定する。

ドメインDNS設定

 Postfixの設定の前に、まずドメイン管理会社で、取得したホスト・ドメインとサーバのIPアドレスの紐付けをしておく

Postfixのインストール

# # 現在インストールされているpostfixがあればアンインストールしておく
# yum remove postfix
#
# # GhettoForgeリポジトリのインストール
# yum install http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
#
# # GhettoForgeリポジトリ設定ファイル修正
# vi /etc/yum.repos.d/gf.repo

[gf]
# 必要なときだけリポジトリを使用するようにするため無効にしておく
enabled=0

([Esc]+:wq!でviを閉じる)

# # Postfixインストール
# yum --enablerepo=gf-plus install postfix3

バーチャルドメイン関連初期設定

# # メール受信用のユーザ・グループ作成
# groupadd -g 5000 vmail
# useradd -u 5000 -g vmail -s /sbin/nologin vmail
#
# # メール格納用ディレクトリの作成
# mkdir /var/spool/vmail
#
# # ディレクトリ所有権変更
# chown -R vmail:vmail /var/spool/vmail

Postfix基本設定ファイル設定

# vi /etc/postfix/main.cf

# サーバのホスト名
myhostname = ec2.exsample.com
# ドメイン名
mydomain = exsample.com
# ローカルユーザから送信された場合のドメイン。すなわち@~となる文字列(ドメイン)
myorigin = $mydomain
# メールを受け取るネットワークアドレス
inet_interfaces = all
# 使用するネットワークプロトコル
inet_protocols = all
# メールサーバ自身宛のメールとして処理するホスト・ドメイン
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# メールボックスディレクトリ
home_mailbox = Maildir/
# メール配信ソフトウェア・バージョンを隠蔽(セキュリティ上対策)
smtpd_banner = $myhostname ESMTP unknown

# メール送受信最大サイズ (バイト)
message_size_limit = 20480000

# 許可ドメイン設定ファイルパス
virtual_mailbox_domains = /etc/postfix/vdomains
# 受信メール格納用ディレクトリ
virtual_mailbox_base = /var/spool/vmail
# メールのアカウント・メールボックス設定ファイルパス
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
# メールを保存するuid(ユーザID)を設定
virtual_uid_maps = static:5000
# メールを保存するgid(グループID)を設定
virtual_gid_maps = static:5000

# メール送信時にSASL認証を有効
smtpd_sasl_auth_enable = yes

# メール送信許可制限
smtpd_recipient_restrictions =
# $mynetworksに設定されたネットワーク接続からのメール送信許可
permit_mynetworks
# SASL認証に成功した接続からのメール送信許可
permit_sasl_authenticated
# 許可された接続以外は拒否
reject_unauth_destination

プロセス設定ファイル設定

# vi /etc/postfix/master.cf

# smtpポートを有効に
smtp inet n - n - - smtpd
# submissionポートを有効に
submission inet n - n - - smtpd

許可ドメイン設定ファイル

 サーバで送受信を許可する対象となるドメンを指定する。
※main.cfのmyhostnameで設定したホスト名はここには指定しない

# vi /etc/postfix/vdomains

abcdefg.com
hijklmn.net

メールのアカウント・メールボックスディレクトリ設定

# vi /etc/postfix/vmailbox

ec2@exsample.com exsample.com/ec2/Maildir/
test1@abcdefg.com abcdefg.com/test1/Maildir/
test2@hijklmn.net hijklmn.net/test2/Maildir/
([Esc]+:wq!でviを閉じる)

# # データベースファイルの作成
# postmap /etc/postfix/vmailbox

Postfixの有効化・起動

# systemctl enable postfix
# systemctl restart postfix

Postfix設定済以降のその他設定

 SASL・送信設定、Dovecot・受信設定に関しては、関連ページを参照してください。