Postfixのmynetworks設定方法|オープンリレー防止と正しいネットワーク指定


図解60p「Linuxサーバー構築入門マニュアル」無料
登録10秒/自動返信でDL/合わなければ解除3秒
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, Postfix, サーバー管理, メールサーバー管理 > Postfixのmynetworks設定方法|オープンリレー防止と正しいネットワーク指定
「Postfixの設定でmynetworksをどう書けばいいのか分からない」
「メールサーバーがオープンリレーになっていないか心配」
Postfixのmynetworks設定は、メールの中継を許可するネットワーク範囲を決める重要なパラメータです。設定を誤ると、スパムの踏み台にされる危険があります。

この記事では、Postfixの mynetworks パラメータの設定方法と注意点を解説します。
mynetworksの役割、正しい設定例、mynetworks_styleとの違い、オープンリレー防止の確認方法まで、メールサーバー運用に必要な知識をまとめました。

mynetworksとは? 信頼するネットワークを定義するパラメータ

Postfixの mynetworks は、/etc/postfix/main.cf に設定するパラメータで、メールの中継(リレー)を許可するネットワークの範囲を指定します。

mynetworksに登録されたIPアドレスからのメール送信は、SMTP認証なしでPostfixが中継を許可します。つまり、mynetworksの設定範囲が広すぎると、外部の第三者がメールを自由に送信できる「オープンリレー」状態になり、スパム送信の踏み台にされる危険があります。

mynetworksの基本的な設定方法

1. main.cfでの設定

# /etc/postfix/main.cf の設定例 mynetworks = 127.0.0.0/8, 192.168.1.0/24

上の例では、以下のネットワークからのメール中継を許可しています。

127.0.0.0/8:localhost(サーバー自身)
192.168.1.0/24:社内LAN(192.168.1.0~192.168.1.255)

設定変更後はPostfixをリロードして反映させます。

# 設定を反映 # systemctl reload postfix

2. 複数ネットワークの指定

カンマ区切りまたはスペース区切りで複数のネットワークを指定できます。

# 複数ネットワークの指定例 mynetworks = 127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16 # 特定のIPアドレスだけ許可する場合 mynetworks = 127.0.0.0/8, 192.168.1.10/32, 192.168.1.20/32

/32 を指定すると、そのIPアドレス1台だけを許可できます。必要最小限の範囲を指定するのがセキュリティの基本です。

3. IPv6環境での設定

IPv6環境では、IPv6のループバックアドレスも追加します。

# IPv6のループバックも含める mynetworks = 127.0.0.0/8, [::1]/128, 192.168.1.0/24

mynetworks_styleとの違い

mynetworks_style は、mynetworksを明示的に設定しない場合に使われるパラメータです。

# mynetworks_styleの設定値 # host : ローカルマシンのみ(最も安全) # subnet : ローカルマシンが接続しているサブネット(デフォルト) # class : ローカルマシンのIPアドレスと同じクラスA/B/Cネットワーク(危険) mynetworks_style = subnet

mynetworksを明示的に設定すると、mynetworks_styleは無視されます。実務では、mynetworksで明示的にネットワーク範囲を指定する方法が推奨されます。mynetworks_styleの「subnet」や「class」は意図せず広い範囲を許可してしまう可能性があるためです。

現在の設定を確認する方法

# 現在のmynetworks設定を確認 $ postconf mynetworks mynetworks = 127.0.0.0/8, 192.168.1.0/24 # mynetworks_styleの設定も確認 $ postconf mynetworks_style mynetworks_style = subnet # main.cfの設定箇所を直接確認 $ grep mynetworks /etc/postfix/main.cf

postconf コマンドは、Postfixの全設定パラメータを確認できる便利なコマンドです。main.cfに明示的に書いていないデフォルト値も表示されます。

【重要】オープンリレーになっていないか確認する

mynetworksの設定ミスでオープンリレーになっていないか、必ず確認してください。

1. telnetで手動テスト

外部ネットワークから(mynetworksに含まれないIPから)メール中継を試みます。

# 外部からSMTP接続してリレーを試みる $ telnet mail.example.com 25 EHLO test MAIL FROM: RCPT TO:

「Relay access denied」と返ってくれば、正しくリレーが拒否されています。「250 OK」と返ってきた場合はオープンリレーです。直ちにmynetworksの設定を見直してください。

2. postfixのログで確認

# リレー拒否のログを確認 $ grep "Relay access denied" /var/log/maillog

外部からのリレー試行が頻繁にある場合、スパマーがリレー可能かどうか探索している可能性があります。

よくある設定ミスと対策

「0.0.0.0/0」を指定してしまう

0.0.0.0/0 はすべてのIPアドレスを意味するため、これを指定すると完全なオープンリレーになります。絶対に設定しないでください。

mynetworksとsmtpd_recipient_restrictionsの関係

smtpd_recipient_restrictionspermit_mynetworks が含まれている場合、mynetworksに登録されたIPからの中継が無条件に許可されます。

# 一般的なsmtpd_recipient_restrictionsの設定例 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

この設定では、mynetworksからのメールは許可、SMTP認証済みのメールは許可、それ以外の外部からのリレーは拒否、という動作になります。

本記事のまとめ

やりたいこと 設定・コマンド
信頼するネットワークを指定 mynetworks = 127.0.0.0/8, 192.168.1.0/24
特定IPだけ許可 mynetworks = 127.0.0.0/8, 192.168.1.10/32
現在の設定を確認 postconf mynetworks
設定を反映 systemctl reload postfix
オープンリレーのテスト telnet mail.example.com 25 でリレーを試行

メールサーバーを含めた、安全なLinuxサーバー構築を学びたいと思いませんか?

mynetworksの設定はメールサーバーのセキュリティの要ですが、Postfix単体ではなくLinuxサーバー全体の構築スキルがあってこそ安全な運用ができます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。



無料プレゼント
図解60p「Linuxサーバー構築入門マニュアル」
独学で詰まる前に、“型(手順書)”で最初の環境構築をサクッと終わらせましょう。
登録10秒/自動返信でDL/合わなければ解除3秒
無料で受け取る ※メールアドレスだけでもOK(必須項目は最小限)

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る