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

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, Postfix > Postfixのmynetworks設定方法|オープンリレー防止と正しいネットワーク指定
「Postfixの設定でmynetworksをどう書けばいいのか分からない」
「メールサーバーがオープンリレーになっていないか心配」
Postfixのmynetworks設定は、メールの中継を許可するネットワーク範囲を決める重要なパラメータです。設定を誤ると、スパムの踏み台にされる危険があります。

この記事では、Postfixの mynetworks パラメータの設定方法と注意点を解説します。

【この記事でわかること】
・mynetworksパラメータの役割とオープンリレーとの関係
・main.cfでの正しい設定方法(複数ネットワーク・IPv6対応)
・mynetworks_styleとの違いと実務での推奨設定
・postconfコマンドで現在の設定を確認する方法
・オープンリレーになっていないかtelnetで手動テストする手順

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

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 でリレーを試行

あわせて読みたい関連記事

firewalldコマンドの設定方法 — SMTPポートのファイアウォール設定

Postfixのセキュリティ設定、本当に正しくできていますか?

mynetworksの設定ひとつで、メールサーバーがスパムの踏み台になるリスクがあります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

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

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

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

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

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。