「メールサーバーがオープンリレーになっていないか心配」
Postfixのmynetworks設定は、メールの中継を許可するネットワーク範囲を決める重要なパラメータです。設定を誤ると、スパムの踏み台にされる危険があります。
この記事では、Postfixの
mynetworks パラメータの設定方法と注意点を解説します。・mynetworksパラメータの役割とオープンリレーとの関係
・main.cfでの正しい設定方法(複数ネットワーク・IPv6対応)
・mynetworks_styleとの違いと実務での推奨設定
・postconfコマンドで現在の設定を確認する方法
・オープンリレーになっていないかtelnetで手動テストする手順
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
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設定を確認 $ 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:
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_restrictions に permit_mynetworks が含まれている場合、mynetworksに登録されたIPからの中継が無条件に許可されます。# 一般的なsmtpd_recipient_restrictionsの設定例 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
本記事のまとめ
| やりたいこと | 設定・コマンド |
|---|---|
| 信頼するネットワークを指定 | 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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:SSHの使い方|鍵認証の設定からセキュリティ強化まで
- 前のページへ:Dovecotのバージョンを確認するコマンド|設定確認やログの見方も
- この記事の属するカテゴリ:Linuxtips・Postfixへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます