Firewall の NAT(アドレス変換)


NAT は Firewall の中で ACL・ステートフルと同じくらい重要な要素です。

NAT は、内部ネットワークの “プライベートIP” と “グローバルIP” を変換して通信させる仕組み。

Firewall は NAT を使って:

  • インターネット接続
  • サーバーの公開(Port Forward)
  • セキュリティ(内部IPの隠蔽)
  • DMZ 構築
  • 2つの内部ネットワークの仲介

などを行う。

特に ASA の NAT は強力で複雑だが、ルールを理解すれば簡単。

NAT の種類(Firewall で使うものだけ厳選)

① Static NAT(固定NAT)

「1つの内部IP ↔ 1つのグローバルIP」を紐付ける。

例:

内部サーバー 192.168.1.10 を
外部IP 203.0.113.10 と対応させる。

object network WEB
 host 192.168.1.10
 nat (inside,outside) static 203.0.113.10

✔ Webサーバーやメールサーバー公開に使う
✔ ポート番号は変えない(1対1対応)

② Dynamic NAT(動的NAT)

内部の複数ユーザーが、
複数のグローバルIPプールから1つずつ借りて通信する NAT

例:

192.168.1.0/24 → 203.0.113.100〜203.0.113.110

ASA の例:

object network OUTPOOL
 range 203.0.113.100 203.0.113.110
nat (inside,outside) dynamic OUTPOOL

✔ 大規模ネットワークで使う
✔ IP枯渇を避けたい場合

③ PAT(Port Address Translation)

複数の内部IP → 1つのグローバルIP を共有する最も一般的な NAT。

家庭用ルーターと同じ仕組み。

例:内部ネットワークを 203.0.113.50 に変換してインターネットへ

object network PAT
 host 192.168.1.0
nat (inside,outside) dynamic interface

または:

nat (inside,outside) after-auto source dynamic any interface

✔ 最もよく使われる NAT(企業でも家庭でも標準)
✔ 数万人でも1つのグローバルIPで通信可能
✔ 戻り通信はポート番号によって識別される

④ Twice NAT(ポリシーNAT)

条件付き NAT
(送信元+宛先の組み合わせを見て NAT を変える)

非常に強力で ASA の象徴的な機能。

例:

「特定の宛先へ通信するときだけ NAT を変える」

source 192.168.1.10 が
destination 10.0.0.5 に行くときだけ
送信元アドレスを 192.168.100.10 に変換

ASA例:

nat (inside,outside) source static 192.168.1.10 192.168.100.10 \
                      destination static 10.0.0.5 10.0.0.5

✔ IPsec VPN でよく使う(Proxy-ID合わせ)
✔ 特定の通信だけ NAT を適用したい場合に必須
✔ 通常の NAT より優先度が高い

NAT が必要な理由(FWで重要な3つ)

内部IPはインターネットで使えないため

RFC1918:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

これらは外に出られない → NAT 必須。

内部構成を隠す(セキュリティ)

外部から内部IPが見えなくなるため、攻撃の難易度が上がる。

複数LANを接続するため(VPN/DMZ)

IPアドレスが重複する環境でも、Twice NAT で通信できる。

NAT と ACL の動作順序(ASAはここが難しい)

ASA は NAT 後のアドレスで ACL をチェックする
(ここがルータとの違い)

例:

192.168.1.10 → 203.0.113.50 に NAT

ACL は 203.0.113.50 として評価される

NAT とステートフルの連携

NAT で変換された通信は、すべて 接続テーブル に記録される

例:

192.168.1.10:54321 → 203.0.113.50:80

変換後:

203.0.113.100:54321 → 203.0.113.50:80

ステートフルは:

  • NAT前IP
  • NAT後IP
  • ポート番号
  • 接続状態

をすべて記録する。

だから戻り通信を正確に内部へ返せる。

よく使う NAT の実例 3パターン

① インターネットアクセス用 PAT

object network LAN
 subnet 192.168.1.0 255.255.255.0
nat (inside,outside) dynamic interface

② Webサーバーの公開(Static NAT)

object network WEB
 host 192.168.1.10
nat (dmz,outside) static 203.0.113.10

③ IPsec VPN 用の特定宛先だけ NAT (Twice NAT)

nat (inside,outside) source static 192.168.1.0 172.16.10.0 \
                     destination static 10.0.0.0 10.0.0.0

まとめ(短く重要部分)

種類用途
Static NATサーバー公開(1対1)
Dynamic NATIPプールで変換(複数IP必要時)
PAT最も一般的。内部多数 → 外部1IP
Twice NAT条件付き・VPN対応・最強NAT

✔ ASA は NAT後のアドレスで ACL を評価
✔ NAT とステートフルは密接に連動
✔ Manual NAT が最優先