【Paloalto】NAT設定の動作確認(送信元・宛先・双方向)PANOS 10.0.7

Paloalto で NAT を使う通信を通すには、NAT ポリシーとセキュリティポリシーの両方を設定します。2つのポリシーには、それぞれ「変換前」と「変換後」のどちらのゾーン・アドレスを書くのかという決まりがあり、ここを取り違えると通信が通りません。

この記事では、送信元 NAT・宛先 NAT・双方向 NAT の3パターンを設定し、それぞれのポリシーの書き方をトラフィックログで確かめます。

この記事でわかること
  1. NAT ポリシーとセキュリティポリシーで、変換前・変換後のどちらを書くか
  2. 送信元 NAT(dynamic-ip-and-port)と宛先 NAT(destination-translation)の設定
  3. 双方向 NAT(static-ip + 双方向 yes)の設定と、必要なセキュリティポリシー

NAT ポリシーやセキュリティポリシーの基本的な設定方法は、次の記事を参考にしてください。

>> 参考記事 : 基本設定(ログイン、ホスト名、インタフェース、ルーティング、ポリシー)手順と動作確認 PANOS9.0.9-h1.xfr

検証環境

PAN-OS 10.0.7 で検証しています。PAN-OS 10.0 は 2022年7月16日でサポートが終了(End-of-Life)しています。画面の項目の並びや表記は、バージョンによって変わります。

NAT ポリシーとセキュリティポリシーの関係

Paloalto はパケットを受け取ると、次の順にゾーンを決めてポリシーを照合します。

STEP 1受信ゾーンを決めるSTEP 2ルート検索で宛先ゾーンを決めるSTEP 3NATポリシーを照合するSTEP 4変換後の宛先で宛先ゾーンを決め直すSTEP 5セキュリティポリシーを照合するNATポリシーゾーン:STEP 1・2(変換前の宛先)/アドレス:変換前セキュリティポリシーゾーン:STEP 1・4(変換後の宛先)/アドレス:変換前
図1 NAT の処理の流れ

NAT ポリシーは、変換前の情報で書きます。宛先ゾーンも、変換前の宛先アドレスでルート検索した結果のゾーンです。セキュリティポリシーは、アドレスは変換前のまま書き、宛先ゾーンだけは変換後の宛先アドレスで決まるゾーンを書きます。

項目NAT ポリシーセキュリティポリシー
送信元ゾーン受信したゾーン(STEP 1)受信したゾーン(STEP 1)
宛先ゾーン変換前の宛先で決まるゾーン(STEP 2)変換後の宛先で決まるゾーン(STEP 4)
送信元・宛先アドレス変換前変換前

送信元 NAT だけなら宛先アドレスは変わらないので、STEP 2 と STEP 4 のゾーンは同じです。違いが出るのは宛先 NAT のときです。

送信元 NAT(dynamic-ip-and-port)

Trust ゾーンの端末 10.0.200.100 から、Untrust ゾーンの先にある 8.8.8.8 へ通信します。Paloalto は送信元アドレスを、10.0.200.100 から Eth1/2 のインタフェースアドレス 10.0.100.59 に変換します。

Paloalto10.0.200.100/248.8.8.8TrustUntrustEth1/110.0.200.84/24Eth1/210.0.100.59/24デフォルトルート(0.0.0.0/0)送信元:10.0.200.100宛先:8.8.8.8送信元:10.0.100.59(変換)宛先:8.8.8.8
図2 送信元 NAT の構成

変換の種類には dynamic-ip-and-port を選びます。複数のプライベートアドレスを、ポート番号を変えながら1つのアドレスにまとめる方式(NAPT)で、社内の端末からインターネットへ出る通信によく使います。

受信したゾーンを決める

パケットを受け取るインタフェースは Eth1/1 なので、送信元ゾーンは Trust です。

ルート検索で宛先ゾーンを決める

宛先 8.8.8.8 に一致する経路はデフォルトルート(0.0.0.0/0)で、出口は Untrust ゾーンの Eth1/2 です。そのため、宛先ゾーンは Untrust になります。

NAT ポリシーを設定する

STEP 1・2 で決めた Trust → Untrust で NAT ポリシーを作ります。設定は ポリシー ›› NAT で行います。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

Paloalto 設定画面(Web UI)画面イメージ
ポリシー ›› NAT
名前Src-NAT
元のパケット
1送信元ゾーンTrust
宛先ゾーンUntrust
宛先インターフェイスany
2送信元アドレス10.0.200.100/32
宛先アドレスany
サービスany
変換済みパケット
3送信元変換dynamic-ip-and-port
ethernet1/2
4宛先変換なし
図3 送信元 NAT の NAT ポリシー(実際の画面ではなく、一覧の列を縦に並べて設定項目のポイントを示したイメージです)
No.項目設定内容
1送信元ゾーン/宛先ゾーンTrust → Untrust。STEP 1・2 で決めたゾーンです。
2送信元アドレス変換前のアドレス 10.0.200.100/32 を指定します。
3送信元変換dynamic-ip-and-port で、変換後のアドレスに ethernet1/2 のインタフェースアドレスを使います。
4宛先変換宛先は変換しないので「なし」です。

変換後の宛先で宛先ゾーンを決め直す

宛先 NAT がある場合に備えて、変換後の宛先アドレスでもう一度ルート検索をして、宛先ゾーンを決め直します。今回は宛先を変換しないので、結果は STEP 2 と同じ Untrust です。

セキュリティポリシーを設定する

STEP 1 と STEP 4 で決めたゾーンでセキュリティポリシーを作ります。送信元・宛先のアドレスは、変換前のアドレスで書きます。設定は ポリシー ›› セキュリティ で行います。

Paloalto 設定画面(Web UI)画面イメージ
ポリシー ›› セキュリティ
名前送信元宛先アプリケ
ーション
サービスアクション
ゾーンアドレスゾーンアドレス
Src-NAT1Trust210.0.200.100/323Untrustanyanyany 許可
図4 送信元 NAT のセキュリティポリシー(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1送信元ゾーンTrust(STEP 1 で決めたゾーン)
2送信元アドレス変換前の 10.0.200.100/32 を書きます。
3宛先ゾーンUntrust(STEP 4 で決めたゾーン)

トラフィックログで変換を確かめる

モニター ›› ログ ›› トラフィック でトラフィックログを見ます。表示する列に「送信元 NAT IP」と「NAT 宛先 IP」を追加しています。

Paloalto 設定画面(Web UI)画面イメージ
モニター ›› ログ ›› トラフィック
送信元
ゾーン
宛先
ゾーン
送信元送信元
NAT IP
宛先NAT
宛先 IP
アプリケ
ーション
アク
ション
ルール
TrustUntrust110.0.200.10010.0.100.2008.8.8.88.8.8.8pingallow2Src-NAT
TrustUntrust10.0.200.10010.0.100.2008.8.8.88.8.8.8pingallowSrc-NAT
TrustUntrust10.0.200.10010.0.100.2008.8.8.88.8.8.8pingallowSrc-NAT
⋮ (同じ行が続くため中略)
図5 送信元 NAT のトラフィックログ(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1送信元 → 送信元 NAT IP「送信元」が変換前、「送信元 NAT IP」が変換後の送信元アドレスです。宛先は変換していないので、「宛先」と「NAT 宛先 IP」は同じ 8.8.8.8 です。
2ルール一致したセキュリティポリシーの名前です。

宛先 NAT(destination-translation)

内部のサーバや端末を外部に公開するときは、宛先 NAT を使います。ここでは、Untrust ゾーンの外部の端末 126.XX.XX.XX(一部を伏せています)から公開アドレス 10.0.100.200 にアクセスすると、Trust ゾーンの 10.0.200.100 につながるようにします。

Paloalto10.0.200.100/24126.XX.XX.XXTrustUntrustEth1/110.0.200.84/24Eth1/210.0.100.59/24デフォルトルート(0.0.0.0/0)10.0.100.200公開アドレス送信元:126.XX.XX.XX宛先:10.0.200.100(変換)送信元:126.XX.XX.XX宛先:10.0.100.200
図6 宛先 NAT の構成

受信したゾーンを決める

パケットを受け取るインタフェースは Eth1/2 なので、送信元ゾーンは Untrust です。

ルート検索で宛先ゾーンを決める

宛先の 10.0.100.200 は、Eth1/2 と同じ 10.0.100.0/24 のアドレスです。ルート検索の結果は Eth1/2 になり、宛先ゾーンも Untrust です。送信元ゾーンと宛先ゾーンがどちらも Untrust になるのが、宛先 NAT の NAT ポリシーの特徴です。

NAT ポリシーを設定する

STEP 1・2 で決めた Untrust → Untrust で NAT ポリシーを作ります。

Paloalto 設定画面(Web UI)画面イメージ
ポリシー ›› NAT
名前Dst-NAT
元のパケット
1送信元ゾーンUntrust
宛先ゾーンUntrust
宛先インターフェイスany
送信元アドレスany
2宛先アドレス10.0.100.200/32
サービスany
変換済みパケット
3送信元変換none
4宛先変換destination-translation
アドレス: 10.0.200.100
図7 宛先 NAT の NAT ポリシー(実際の画面ではなく、一覧の列を縦に並べて設定項目のポイントを示したイメージです)
No.項目設定内容
1送信元ゾーン/宛先ゾーンUntrust → Untrust。STEP 1・2 で決めたゾーンです。
2宛先アドレス変換前の宛先、つまり公開アドレスの 10.0.100.200/32 を指定します。
3送信元変換送信元は変換しないので none です。
4宛先変換destination-translation で、変換後のアドレスに 10.0.200.100 を指定します。

変換後の宛先で宛先ゾーンを決め直す

宛先は 10.0.100.200 から 10.0.200.100 に変換されます。変換後の 10.0.200.100 でルート検索をすると出口は Eth1/1 になるので、宛先ゾーンは Trust に決め直されます。

セキュリティポリシーを設定する

STEP 1 と STEP 4 で決めた Untrust → Trust でセキュリティポリシーを作ります。宛先アドレスは変換前の 10.0.100.200 です。

Paloalto 設定画面(Web UI)画面イメージ
ポリシー ›› セキュリティ
名前送信元宛先アプリケ
ーション
サービスアクション
ゾーンアドレスゾーンアドレス
Dst-NAT1Untrustany2Trust310.0.100.200/32anyany 許可
図8 宛先 NAT のセキュリティポリシー(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1送信元ゾーンUntrust(STEP 1 で決めたゾーン)
2宛先ゾーンTrust(STEP 4 で決めた、変換後のゾーン)
3宛先アドレス変換前の公開アドレス 10.0.100.200/32 を書きます。
ポイント

宛先 NAT のセキュリティポリシーでは、宛先ゾーンは変換後(Trust)、宛先アドレスは変換前(10.0.100.200)になります。ゾーンとアドレスで変換前と変換後が混ざるので、設定するときに注意してください。

トラフィックログで変換を確かめる

送信元 NAT と同じように、トラフィックログで変換の結果を見ます。

Paloalto 設定画面(Web UI)画面イメージ
モニター ›› ログ ›› トラフィック
送信元
ゾーン
宛先
ゾーン
送信元送信元
NAT IP
宛先NAT
宛先 IP
アプリケ
ーション
アク
ション
ルール
UntrustTrust126.XX.XX.XX1126.XX.XX.XX210.0.100.20010.0.200.100ms-rdpallowDst-NAT
UntrustTrust126.XX.XX.XX126.XX.XX.XX10.0.100.20010.0.200.100pingallowDst-NAT
UntrustTrust126.XX.XX.XX126.XX.XX.XX10.0.100.20010.0.200.100pingallowDst-NAT
UntrustTrust126.XX.XX.XX126.XX.XX.XX10.0.100.20010.0.200.100pingallowDst-NAT
図9 宛先 NAT のトラフィックログ。送信元アドレスは一部を伏せています(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1送信元 NAT IP送信元は変換していないので、「送信元」と同じアドレスです。
2宛先 → NAT 宛先 IP公開アドレス 10.0.100.200 宛ての通信が、10.0.200.100 に変換されています。宛先ゾーンは変換後の Trust です。

双方向 NAT(Bi-Directional)

双方向 NAT は、外部に公開するアドレスと内部のアドレスを 1対1 で結びつけます。内部から外へ出る通信は送信元を、外から入る通信は宛先を変換します。

Paloalto10.0.200.100/24126.XX.XX.XX などTrustUntrustEth1/110.0.200.84/24Eth1/210.0.100.59/24デフォルトルート(0.0.0.0/0)10.0.100.200公開アドレス1対1宛先NAT(外部 → 内部)送信元:126.XX.XX.XX宛先:10.0.200.100送信元:126.XX.XX.XX宛先:10.0.100.200送信元NAT(内部 → 外部)送信元:10.0.200.100宛先:8.8.8.8 など送信元:10.0.100.200宛先:8.8.8.8 など
図10 双方向 NAT の構成

static-ip の送信元 NAT を作り、双方向を yes にする

送信元 NAT と同じ手順で NAT ポリシーを作り、送信元変換を dynamic-ip-and-port ではなく static-ip にして、変換後のアドレスに 10.0.100.200 を指定します。

宛先 NAT 用の NAT ポリシーは、前の例のように個別に作ることもできます。ここでは「双方向」を yes にして、逆向き(外部から 10.0.100.200 宛て)の変換もこのルールで行わせます。双方向は、送信元変換が static-ip のときに選べる設定です。

Paloalto 設定画面(Web UI)画面イメージ
ポリシー ›› NAT
名前Bi-dir-NAT
元のパケット
1送信元ゾーンTrust
宛先ゾーンUntrust
宛先インターフェイスany
2送信元アドレス10.0.200.100/32
宛先アドレスany
サービスany
変換済みパケット
3送信元変換static-ip
10.0.100.200
4双方向yes
宛先変換なし
図11 双方向 NAT の NAT ポリシー(実際の画面ではなく、一覧の列を縦に並べて設定項目のポイントを示したイメージです)
No.項目設定内容
1送信元ゾーン/宛先ゾーンTrust → Untrust。内部から外へ出る向きで書きます。
2送信元アドレス内部の 10.0.200.100/32 です。
3送信元変換static-ip で、いつも同じアドレス 10.0.100.200 に変換します。
4双方向yes にすると、逆向きの変換(10.0.100.200 宛てを 10.0.200.100 宛てに変換)も行われます。

セキュリティポリシーを向きごとに作る

NAT ポリシーは1本でも、通信の向きは2つあります。セキュリティポリシーは、送信元 NAT 用(Trust → Untrust)と宛先 NAT 用(Untrust → Trust)の両方が必要です。書き方は、これまでの送信元 NAT・宛先 NAT と同じです。

Paloalto 設定画面(Web UI)画面イメージ
ポリシー ›› セキュリティ
名前送信元宛先アプリケ
ーション
サービスアクション
ゾーンアドレスゾーンアドレス
1Src-NATTrust10.0.200.100/32Untrustanyanyany 許可
2Dst-NATUntrustanyTrust10.0.100.200/32anyany 許可
図12 双方向 NAT のセキュリティポリシー(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.ルール設定内容
1Src-NAT内部から外への通信用。Trust → Untrust、送信元は変換前の 10.0.200.100/32 です。
2Dst-NAT外部から内部への通信用。Untrust → Trust(変換後のゾーン)、宛先は変換前の 10.0.100.200/32 です。
注意

双方向を yes にすると、外部から公開アドレス宛てに来た通信は自動で変換されます。どの通信を内部に通すかは、セキュリティポリシーで絞り込んでください(この検証では、アプリケーションとサービスを any で許可しています)。

トラフィックログで変換を確かめる

トラフィックログを見ると、内部から外への通信では送信元アドレスが、外から内部への通信では宛先アドレスが変換されています。

Paloalto 設定画面(Web UI)画面イメージ
モニター ›› ログ ›› トラフィック
送信元
ゾーン
宛先
ゾーン
送信元送信元
NAT IP
宛先NAT
宛先 IP
アプリケ
ーション
アク
ション
ルール
TrustUntrust110.0.200.10010.0.100.20023.32.241.2523.32.241.25ms-updateallowSrc-NAT
TrustUntrust10.0.200.10010.0.100.2008.8.8.88.8.8.8pingallowSrc-NAT
TrustUntrust10.0.200.10010.0.100.200117.18.237.29117.18.237.29ocspallowSrc-NAT
図13 内部から外への通信のログ(実際の画面ではなく、表示のポイントを示したイメージです)
Paloalto 設定画面(Web UI)画面イメージ
モニター ›› ログ ›› トラフィック
送信元
ゾーン
宛先
ゾーン
送信元送信元
NAT IP
宛先NAT
宛先 IP
アプリケ
ーション
アク
ション
ルール
UntrustTrust126.XX.XX.XX126.XX.XX.XX210.0.100.20010.0.200.100pingallowDst-NAT
UntrustTrust126.XX.XX.XX126.XX.XX.XX10.0.100.20010.0.200.100pingallowDst-NAT
UntrustTrust126.XX.XX.XX126.XX.XX.XX10.0.100.20010.0.200.100pingallowDst-NAT
図14 外から内部への通信のログ。送信元アドレスは一部を伏せています(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1送信元 → 送信元 NAT IP内部の 10.0.200.100 が、公開アドレス 10.0.100.200 に変換されています(NAT ポリシーの送信元変換)。
2宛先 → NAT 宛先 IP公開アドレス 10.0.100.200 宛ての通信が、10.0.200.100 に変換されています(双方向で行われる逆向きの変換)。

うまくいかないとき

状態よくある原因確認すること
アドレスが変換されないNAT ポリシーのゾーンやアドレスを、変換後の値で書いているNAT ポリシーは変換前のゾーン・アドレスで書きます。宛先 NAT では宛先ゾーンも変換前(この例では Untrust)です。
宛先 NAT の通信が拒否されるセキュリティポリシーの宛先アドレスを変換後で書いている、または宛先ゾーンを変換前で書いている宛先ゾーンは変換後(Trust)、宛先アドレスは変換前(公開アドレス)です。
意図しない NAT ルールで変換されるNAT ルールは上から順に評価され、最初に一致したルールだけが使われる範囲の狭い(具体的な)ルールを上に置きます。

まとめ

種類NAT ポリシー
(ゾーン/変換)
セキュリティポリシー
(ゾーン)
送信元 NATTrust → Untrust
送信元:dynamic-ip-and-port(ethernet1/2)
Trust → Untrust
宛先 NATUntrust → Untrust
宛先:destination-translation(10.0.200.100)
Untrust → Trust
双方向 NATTrust → Untrust
送信元:static-ip(10.0.100.200)、双方向 yes
Trust → Untrust と
Untrust → Trust の2本

NAT ポリシーは変換前の情報で書き、セキュリティポリシーはアドレスを変換前、宛先ゾーンを変換後で書く。この2つを押さえておけば、どの NAT でも設定の迷いが減ります。

コメント