Postfixの基本設定を解説

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.com

SMTP通信時に名乗るホスト名として利用されます。

通常はFQDN(完全修飾ドメイン名)を指定します。

例:
mail.example.com
smtp.example.com
mx.example.com

mydomainの設定

mydomainはメールドメインを指定します。

mydomain = example.com

Postfix内部でドメイン名を参照する際に利用されます。

省略可能ですが設定しておくと管理しやすくなります。

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]:587

Google WorkspaceやMicrosoft 365を中継する場合にも利用されます。

home_mailboxの設定

ユーザーのメール保存場所を指定します。

Maildir形式の場合です。
home_mailbox = Maildir/

mbox形式の場合です。
/var/mail/username

Dovecotと組み合わせる場合はMaildirが一般的です。

alias_mapsとalias_database

メールエイリアス機能を利用する設定です。

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

例えば次のような転送設定が可能です。
root: admin

root宛メールをadminへ転送できます。

message_size_limitの設定

送信可能なメールサイズを制限します。

message_size_limit = 10485760

上記は10MBです。

添付ファイル付きメールを扱う場合は重要な設定です。

mailbox_size_limitの設定

メールボックス容量を制限します。

mailbox_size_limit = 0

0は無制限を意味します。

現在はストレージ容量が大きいため無制限設定もよく利用されます。

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からメールを送信する方法について解説します。