Postfixの基本設定を解説

目次
Postfixの基本設定を理解してメールサーバを構築しよう
Postfixをインストールしただけでは、本格的なメールサーバとして運用することはできません。
メール配送やホスト名設定、配送対象ドメインの設定など、基本的な設定を行う必要があります。
Postfixの設定は主にmain.cfという設定ファイルで行います。
メールサーバの構築や運用を行うエンジニアにとって、main.cfの主要設定を理解することは非常に重要です。
本記事ではPostfixの基本設定について、実際によく利用される設定項目を中心に解説します。
Postfixの設定ファイル
Postfixでは主に以下の2つの設定ファイルを利用します。
| ファイル | 用途 |
|---|---|
| /etc/postfix/main.cf | 基本設定 |
| /etc/postfix/master.cf | サービス管理 |
通常のメールサーバ構築では、まずmain.cfを編集します。
master.cfはSMTP SubmissionやSMTP over SSLを有効にする場合などに利用します。
設定変更前のバックアップ
設定変更前にはバックアップを取得しておくことを推奨します。
# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak設定ミスが発生した場合でも元に戻せるようになります。
myhostnameの設定
myhostnameはPostfix自身のホスト名を指定します。
myhostname = mail.example.comSMTP通信時に名乗るホスト名として利用されます。
通常はFQDN(完全修飾ドメイン名)を指定します。
例:
mail.example.com
smtp.example.com
mx.example.commydomainの設定
mydomainはメールドメインを指定します。
mydomain = example.comPostfix内部でドメイン名を参照する際に利用されます。
省略可能ですが設定しておくと管理しやすくなります。
myoriginの設定
myoriginは送信メールのドメイン部分を指定します。
myorigin = $mydomain
例えばLinuxサーバからrootユーザーがメールを送信した場合、以下のように補完されます。
root@example.com企業環境では設定しておくことが一般的です。
inet_interfacesの設定
inet_interfacesはSMTPサーバが待ち受けるインターフェースを指定します。
全インターフェースで待受する場合です。
inet_interfaces = all
ローカルホストのみで利用する場合です。
inet_interfaces = localhost監視メール送信用サーバではlocalhostのみを指定することもあります。
inet_protocolsの設定
利用するIPプロトコルを指定します。
inet_protocols = all
IPv4のみ利用する場合です。
inet_protocols = ipv4検証環境ではipv4のみ設定することもあります。
mydestinationの設定
mydestinationは自サーバ宛メールを受信する対象ドメインを指定します。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain非常に重要な設定です。
ここに登録されたドメイン宛のメールはローカル配送されます。
例えば以下のドメインが登録されている場合です。
example.com
次のメールはローカル配送されます。
user@example.com
mynetworksの設定
mynetworksはSMTPリレーを許可するネットワークを指定します。
mynetworks = 127.0.0.0/8, 192.168.60.0/24指定されたネットワークからのSMTP送信を許可します。
設定ミスはオープンリレーの原因になるため注意が必要です。
relayhostの設定
relayhostはメール中継先SMTPサーバを指定します。
relayhost = [mail.example.com]
またはポート番号を指定できます。
relayhost = [mail.example.com]:587Google WorkspaceやMicrosoft 365を中継する場合にも利用されます。
home_mailboxの設定
ユーザーのメール保存場所を指定します。
Maildir形式の場合です。
home_mailbox = Maildir/
mbox形式の場合です。
/var/mail/usernameDovecotと組み合わせる場合はMaildirが一般的です。
alias_mapsとalias_database
メールエイリアス機能を利用する設定です。
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
例えば次のような転送設定が可能です。
root: adminroot宛メールをadminへ転送できます。
message_size_limitの設定
送信可能なメールサイズを制限します。
message_size_limit = 10485760上記は10MBです。
添付ファイル付きメールを扱う場合は重要な設定です。
mailbox_size_limitの設定
メールボックス容量を制限します。
mailbox_size_limit = 00は無制限を意味します。
現在はストレージ容量が大きいため無制限設定もよく利用されます。
SMTP認証を有効化する設定
SMTP-AUTHを利用する場合は以下の設定を追加します。
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous実際にはDovecotとの連携設定も必要になります。
TLS暗号化の設定
TLSを有効にする場合の代表的な設定です。
smtpd_tls_cert_file=/etc/pki/tls/certs/server.crt
smtpd_tls_key_file=/etc/pki/tls/private/server.key
smtpd_use_tls=yes現在のメールサーバではTLSは必須です。
設定確認コマンド
現在有効な設定を確認するにはpostconfコマンドを利用します。
# postconf
特定の設定だけ確認する場合です。
# postconf myhostname設定ミスの確認にも役立ちます。
設定反映方法
main.cfを変更した後はPostfixを再読み込みします。
# systemctl reload postfix
または再起動します。
# systemctl restart postfix通常はreloadで十分です。
動作確認方法
SMTPサーバが正常に待受しているか確認します。
# ss -tlnp | grep master
メールキューの確認です。
# mailq
ログ確認です。
# journalctl -u postfixこれらは障害調査でも頻繁に利用します。
実務で最低限設定する項目
小規模なメールサーバであれば、まず以下を設定すれば基本動作が可能です。
- myhostname
- mydomain
- myorigin
- mydestination
- mynetworks
- inet_interfaces
その後、SMTP認証やTLS暗号化を追加していくのが一般的です。
まとめ
Postfixの基本設定はmain.cfで行います。
特にmyhostname、mydestination、mynetworksはメール配送に大きく影響する重要な設定です。
また、SMTP認証やTLS暗号化を組み合わせることで安全なメールサーバを構築できます。
まずは基本設定を理解し、Postfixの動作を把握することがメールサーバ運用の第一歩となります。
次回は実際にPostfixからメールを送信する方法について解説します。





