社内ネットワークをインターネットに接続しているなら、NATは確実に動いています。ルーターの設定を変えた覚えがなくても、プロバイダから割り当てられたグローバルIPとプライベートIPを自動で変換しているのがNATです。
「NATがあるから内部が見えない。セキュリティ的に安全だ」と思っているエンジニアは少なくありません。でも、攻撃者はNATを当然の前提として侵入ルートを設計しています。NATを過信したまま放置すると、むしろ死角が増えます。
この記事では、NATの仕組みと3つの種類、セキュリティ上の正しい役割と見落とされがちな限界、そして中小企業情シスが今日から取れる対策を現場目線で解説します。

NAT(ネットワークアドレス変換)とは?
NAT(Network Address Translation)は、プライベートIPアドレスとグローバルIPアドレスを相互に変換する技術です。
ご存じのとおり、IPv4アドレスは約43億個しかなく、世界中の機器に割り当てるには絶対数が足りません。そこで考案されたのが、組織内部では自由に使えるプライベートIP(10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x)を使い、インターネットに出るときだけグローバルIPに変換する仕組みです。
このアドレス変換を担うのがNATで、通常はルーターやファイアウォールが処理します。
プライベートIPとグローバルIPの関係
インターネット上のサーバーは、通信相手として「送信元がどこか」を判断するためにIPアドレスを使います。プライベートIPはインターネット上で使用できないため、NATがグローバルIPへ変換してから送り出します。
返信パケットが届いたときは、変換テーブルを参照して正しい内部ホストにルーティングします。この変換テーブル(NATテーブル)の管理が、NATの中核機能です。
NATの3つの種類(静的・動的・PAT)
1. スタティックNAT(静的NAT)
内部IPとグローバルIPを1対1で固定対応させる方式です。社内のWebサーバーや決済端末を外部から特定のIPで常にアクセスさせたい場合に使います。
・特徴: 対応が固定なので管理しやすい
・用途: 公開サーバー、VPN終端機器、決済端末
・注意点: グローバルIPが1対1で必要なため、台数分のグローバルIPが必要
2. ダイナミックNAT(動的NAT)
グローバルIPのプールを用意し、内部からの通信発生時に空きグローバルIPを動的に割り当てる方式です。プールが枯渇すると新しい通信が確立できなくなります。
・特徴: 複数の内部ホストを少ないグローバルIPで運用できる
・用途: 大規模組織での外部アクセス管理
・注意点: プール数を超えた同時接続は失敗する
3. PAT(ポートアドレス変換)/NAPT
PAT(Port Address Translation)は、1つのグローバルIPに複数の内部ホストをマッピングする方式で、ポート番号を使って接続を区別します。「IPマスカレード」とも呼ばれ、家庭や中小企業のルーターで最も一般的に使われているのがこの方式です。
・特徴: グローバルIP1つで数十台以上の端末がインターネットに出られる
・用途: 家庭・中小企業・モバイルルーター全般
・注意点: ポート番号の管理が複雑になる、UDPは扱いが難しい
# 変換テーブルのイメージ(PATの場合) # 内部IP:ポート グローバルIP:ポート 外部先 192.168.1.10:55321 → 203.0.113.1:40001 → 8.8.8.8:443 192.168.1.20:60001 → 203.0.113.1:40002 → 8.8.8.8:443 192.168.1.30:49152 → 203.0.113.1:40003 → 1.1.1.1:80
NATのセキュリティ上の効果(正しく理解する)
NATには、副次的なセキュリティ効果があります。ただし「副次的」であることを強調しておきます。これはセキュリティを目的として設計された機能ではありません。
外部からの直接接続を阻止する効果
PATや動的NATでは、外部から能動的に内部ホストへ接続する経路がありません。NATテーブルは内部→外部の通信が発生したときにエントリが作成されるため、対応するエントリがない外部起点のパケットはルーターで破棄されます。
これにより、インターネット上の攻撃者が社内の端末に直接TCP接続を試みても、宛先が解決できずにブロックされます。
内部ネットワーク構成の隠蔽
外部から見えるのはグローバルIPだけで、内部のプライベートIPアドレス体系は隠されます。攻撃者がネットワーク偵察を行っても、内部の台数や構成が直接把握できません。
NATの限界――「NATはファイアウォールではない」
ここが最も重要なポイントです。NATはアドレス変換の技術であり、通信内容の検査や制御はできません。
【注意】内部からの接続は素通りする
NATは外部起点の接続は阻止しますが、内部から発信する通信には何の制限もかけません。
マルウェアに感染した端末がC2サーバーへ接続しようとしたとき、NATはその通信を問題なく中継します。ランサムウェアが外部に暗号鍵を送信する際も、NATは何もしません。NATはパケットの内容を見ないからです。
【注意】NATトラバーサルで穴が空く
NATトラバーサル(NAT越え)とは、NATの外側と内側で直接接続を確立する技術です。VoIPやP2Pアプリ、ゲームなどでよく使われますが、マルウェアも同じ技術を使って内部ホストへの通信経路を確立します。
代表的なNATトラバーサル手法:
・STUN(Session Traversal Utilities for NAT): NATの種類と外部IPを調べてP2P接続を確立する
・TURN(Traversal Using Relays around NAT): リレーサーバーを使って NAT内外を接続する
・ICE(Interactive Connectivity Establishment): STUNとTURNを組み合わせて最適経路を選ぶ
これらはWebRTC(ブラウザビデオ通話)でも使われており、組織内のブラウザが外部と直接メディアチャネルを開くことができます。攻撃者視点では、この経路を利用してNATの保護を回避する手口が実在します。
【注意】UPnPが勝手にポートを開ける
UPnP(Universal Plug and Play)が有効なルーターでは、内部のアプリケーションが自動的にポートフォワーディングルールを追加できます。ゲームや一部のビジネスアプリが利用しますが、マルウェアも同様にUPnPを悪用して外部から内部へのルートを開通させた事例があります。
UPnPのリスクについては、UPnPのセキュリティリスクと対策で詳しく解説しています。
【注意】IPスプーフィングは防げない
送信元IPを偽装したIPスプーフィング攻撃は、NATだけでは防げません。NATはアドレスを変換しますが、パケットの送信元が正規かどうかを検証しません。
具体的な防御手順
1. NATに頼らずファイアウォールのルールを整備する
NATの保護に依存するのではなく、ステートフルファイアウォール(SPI: Stateful Packet Inspection)でアウトバウンド通信も制御します。
内部から外部への通信について、必要なポート・宛先・プロトコルのみ許可し、それ以外は拒否するのが基本です。
# firewalldでの送信制限例(アウトバウンド制御) # デフォルトゾーンのアウトバウンドに制限をかける場合 firewall-cmd --permanent --zone=internal --add-rich-rule=' rule family="ipv4" source address="192.168.1.0/24" destination address="0.0.0.0/0" port port="443" protocol="tcp" accept' # 上記ルール以外はdropポリシーにする firewall-cmd --permanent --zone=internal --set-target=DROP firewall-cmd --reload
2. UPnPを無効化する
業務上の必要性が明確でない限り、ルーターのUPnPは無効化します。ほとんどの企業環境ではUPnPがなくても業務に支障はなく、無効化するだけでポートフォワーディングの自動開通リスクをなくせます。
ルーターの管理画面 → UPnP設定 → 「無効」に変更するだけです。変更後に業務上問題が生じたアプリがあれば個別にポートフォワーディングを手動設定します。
3. エグレスフィルタリングで出口を制限する
内部から外部への通信(エグレス)を制御することで、マルウェアのC2通信やデータ持ち出しを抑止します。ACL(アクセス制御リスト)やファイアウォールルールで、許可するポートと宛先を明示的に定義します。
・許可: 80/443(HTTP/HTTPS)、53(DNS)、25/587(メール)など業務上必要なもの
・拒否: それ以外のすべての宛先ポートはデフォルト拒否
・ログ記録: 拒否されたパケットはログに残して定期的に確認
4. NATテーブルの異常なエントリを監視する
NATテーブルに通常業務では出てこない宛先(異国IPレンジ、非標準ポート)への大量エントリが作られている場合、マルウェアによるC2通信や不正な外部接続の疑いがあります。
# Linuxルーターでのconntrackテーブル確認 conntrack -L | grep ESTABLISHED # 特定の外部IPへの接続を確認 conntrack -L | grep "203.0.113" # 大量接続元ホストの特定 conntrack -L | awk '{print $5}' | sort | uniq -c | sort -rn | head -20
中小企業でも今日からできること
・ルーターのUPnP無効化: 管理画面で確認・無効化。5分で完了する最初の一手
・ファームウェア更新: NATを処理するルーターのファームウェアを最新に保つ。NAT処理中の脆弱性を悪用した攻撃が実在する
・NATだけに頼らない設計: UTMやNGFWを導入してアウトバウンド通信も検査する
・ポートフォワーディングの棚卸し: 使われていないポート開放ルールを削除する。退職したスタッフが設定したルールが残っていることが多い
・IPv6も確認する: IPv6では端末にグローバルIPが直接割り当てられるためNATが介在しない。IPv6通信へのファイアウォールルールが未設定のまま放置されているケースが危険
よくある誤解と注意点
誤解1: 「NATがあるから内部ネットワークは安全」
NATは外部からの直接接続を難しくしますが、マルウェア感染後の内部→外部通信は素通りします。内部を守る追加層(EDR、エグレスフィルタリング、DNS監視)が必要です。
誤解2: 「プライベートIPだから攻撃されない」
フィッシングメールや悪意のあるWebサイトからのブラウザ経由感染は、プライベートIPかどうかに関係なく発生します。端末がNATの内側にあっても、ユーザーが操作して感染するケースが大半です。
誤解3: 「IPv6への移行は後回しでいい」
多くの企業ネットワークでIPv6が有効になっており、端末にはIPv6グローバルアドレスが割り当てられています。IPv4ではNATで保護されているつもりでも、IPv6通信が直接インターネットに出ていれば同等の保護はありません。
誤解4: 「スタティックNATで公開したサーバーは内部扱いになる」
スタティックNATで外部から到達可能にしたサーバーは、インターネットから直接攻撃を受ける可能性があります。DMZに配置してファイアウォールで通信を制限する設計が必要です。

本記事のまとめ
| 項目 | 内容 |
|---|---|
| NATの主目的 | IPv4アドレス枯渇対策(セキュリティが主目的ではない) |
| 主な種類 | スタティックNAT / ダイナミックNAT / PAT(NAPT) |
| セキュリティ上の効果 | 外部からの直接接続をブロック・内部構成の隠蔽(副次的効果) |
| NATの限界 | 内部→外部通信は素通り / NATトラバーサルで迂回可能 / UPnP悪用リスク |
| 最優先の対策 | UPnP無効化 / ファイアウォールのアウトバウンド制御 / IPv6通信の保護 |
NATはネットワークの「受付」のようなものです。受付があっても、関係者になりすました侵入者や、内部から荷物を持ち出そうとする人は防げません。NATを正しく位置づけたうえで、その内側と外側それぞれに適切な防御層を設ける設計が、現代のネットワークセキュリティの基本です。
姉妹サイトLinuxMaster.JPでは、LinuxサーバーでのIPアドレス設定やルーティングの基礎について詳しく解説しています。ネットワーク設定をLinuxで管理している方は参考にしてください。
PR
ゼロトラストネットワーク[実践]入門(野村総合研究所・NRIセキュアテクノロジーズ)
NATに頼った境界型セキュリティの限界と、ゼロトラストへの移行をネットワーク設計の観点から解説した実践書。「NATがあれば安全」という思い込みを脱却し、内部ネットワークを含めた包括的な防御設計を学びたいエンジニアに適しています。
