Postfixのmain.cfでよく使う設定項目

目次
Postfixのmain.cfでよく利用される設定項目を解説
Postfixの運用において最も重要な設定ファイルがmain.cfです。
メールサーバのホスト名、配送対象ドメイン、SMTP認証、TLS暗号化、メールサイズ制限など、多くの設定をmain.cfで管理します。
メールサーバ構築の学習を始めたばかりの方は、設定項目の多さに戸惑うことも少なくありません。
しかし実務で頻繁に利用される設定項目はある程度決まっています。
本記事ではPostfixのmain.cfでよく利用される設定項目を中心に、それぞれの役割や設定例について解説します。
main.cfとは
main.cfはPostfixの基本設定を管理するファイルです。
通常は以下の場所に存在します。
/etc/postfix/main.cf
設定内容は以下のような形式で記述します。
パラメータ = 値
例えばホスト名を設定する場合です。
myhostname = mail.example.com
非常にシンプルな形式で管理されています。
設定内容を確認する方法
現在有効な設定はpostconfコマンドで確認できます。
postconf
特定項目のみ確認する場合です。
postconf myhostname
設定ファイルを直接確認するよりも便利な場合があります。
myhostname
Postfix自身のホスト名を指定します。
myhostname = mail.example.com
SMTP通信時に相手サーバへ通知されるホスト名です。
通常はFQDNを設定します。
代表例です。
mail.example.com smtp.example.com mx.example.com
mydomain
メールドメインを指定します。
mydomain = example.com
他の設定項目から参照されることが多いため設定しておくと便利です。
省略可能ですが実務では設定することが一般的です。
myorigin
送信メールのドメイン部分を指定します。
myorigin = $mydomain
例えばLinuxサーバ上のrootユーザーがメール送信した場合です。
root@example.com
のような送信元になります。
inet_interfaces
SMTPサーバが待ち受けるインターフェースを指定します。
全てのNICで待受する場合です。
inet_interfaces = all
ローカルのみの場合です。
inet_interfaces = localhost
監視メール専用サーバではlocalhostが利用されることもあります。
inet_protocols
利用するIPプロトコルを指定します。
IPv4とIPv6を利用する場合です。
inet_protocols = all
IPv4のみ利用する場合です。
inet_protocols = ipv4
検証環境ではipv4のみ設定されることがあります。
mydestination
ローカル配送対象ドメインを指定します。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
ここで指定したドメイン宛メールはローカル配送されます。
非常に重要な設定項目です。
mynetworks
SMTPリレーを許可するネットワークを指定します。
mynetworks = 127.0.0.0/8, 192.168.60.0/24指定ネットワークからのメール送信を許可します。
設定ミスはオープンリレーの原因になるため注意が必要です。
relayhost
メール中継先SMTPサーバを指定します。
relayhost = [smtp.example.com]:587
例えば以下のような用途で利用します。
- Google Workspace経由送信
- Microsoft 365経由送信
- メール中継サーバ利用
クラウド環境では利用機会が多い設定です。
home_mailbox
メール保存先を指定します。
Maildir形式の場合です。
home_mailbox = Maildir/Dovecotとの組み合わせではMaildirが一般的です。
mbox形式の場合は通常利用しません。
alias_maps
メールエイリアスを指定します。
alias_maps = hash:/etc/aliasesユーザー転送設定などで利用されます。
例えば以下のような設定です。
root: adminroot宛メールをadminへ転送できます。
alias_database
エイリアスデータベースを指定します。
alias_database = hash:/etc/aliases通常はalias_mapsと同じ設定になります。
message_size_limit
メールサイズ上限を設定します。
message_size_limit = 10485760上記は10MBです。
添付ファイルサイズ制限として利用されます。
mailbox_size_limit
メールボックス容量制限を設定します。
mailbox_size_limit = 00は無制限です。
最近の環境では無制限設定も多く見られます。
smtpd_banner
SMTP接続時のバナーを設定します。
smtpd_banner = $myhostname ESMTP
接続時に以下のように表示されます。
220 mail.example.com ESMTPセキュリティ上、詳細なバージョン表示は避けることが推奨されます。
smtpd_sasl_auth_enable
SMTP認証を有効化します。
smtpd_sasl_auth_enable = yesSMTP-AUTH利用時の必須設定です。
smtpd_sasl_type
認証方式を指定します。
Dovecot利用時です。
smtpd_sasl_type = dovecot現在最も利用される構成です。
smtpd_sasl_path
認証ソケットを指定します。
smtpd_sasl_path = private/authDovecotとの連携で利用します。
smtpd_recipient_restrictions
メール受信制御を行います。
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destinationオープンリレー防止の重要設定です。
smtpd_tls_cert_file
TLS証明書を指定します。
smtpd_tls_cert_file =
/etc/pki/tls/certs/server.crtTLS利用時の必須設定です。
smtpd_tls_key_file
秘密鍵を指定します。
smtpd_tls_key_file =
/etc/pki/tls/private/server.key証明書とセットで利用します。
smtpd_use_tls
TLS機能を有効化します。
smtpd_use_tls = yes現在のメールサーバではほぼ必須です。
設定反映方法
設定変更後はPostfixへ反映します。
# systemctl reload postfix
または再起動します。
# systemctl restart postfix通常はreloadで十分です。
設定チェック方法
構文確認を行います。
# postfix checkエラーが表示されなければ設定は正常です。
変更後は必ず実施しましょう。
実務で最低限覚える設定項目
まずは以下を覚えておくと実務で役立ちます。
- myhostname
- mydomain
- mydestination
- mynetworks
- relayhost
- smtpd_sasl_auth_enable
- smtpd_use_tls
この辺りはメールサーバ構築時に必ず触れる設定です。
まとめ
main.cfはPostfixの基本設定を管理する重要なファイルです。
特にmyhostname、mydestination、mynetworks、relayhostはメール配送に直接影響するため重要です。
また、SMTP認証やTLS暗号化を利用する場合はsmtpd_sasl_auth_enableやsmtpd_use_tlsなども設定します。
まずは主要な設定項目の役割を理解し、メールサーバの動作と結び付けて学習すると理解が深まります。





