「メールサーバーがオープンリレーになっていないか心配」
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設定を確認 $ 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 でリレーを試行 |
メールサーバーを含めた、安全なLinuxサーバー構築を学びたいと思いませんか?
mynetworksの設定はメールサーバーのセキュリティの要ですが、Postfix単体ではなくLinuxサーバー全体の構築スキルがあってこそ安全な運用ができます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
登録10秒/自動返信でDL/合わなければ解除3秒
