Paloalto で NAT を使う通信を通すには、NAT ポリシーとセキュリティポリシーの両方を設定します。2つのポリシーには、それぞれ「変換前」と「変換後」のどちらのゾーン・アドレスを書くのかという決まりがあり、ここを取り違えると通信が通りません。
この記事では、送信元 NAT・宛先 NAT・双方向 NAT の3パターンを設定し、それぞれのポリシーの書き方をトラフィックログで確かめます。
- NAT ポリシーとセキュリティポリシーで、変換前・変換後のどちらを書くか
- 送信元 NAT(dynamic-ip-and-port)と宛先 NAT(destination-translation)の設定
- 双方向 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 はパケットを受け取ると、次の順にゾーンを決めてポリシーを照合します。
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 に変換します。
変換の種類には 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 で行います。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| 名前 | Src-NAT |
| 1送信元ゾーン | Trust |
| 宛先ゾーン | Untrust |
| 宛先インターフェイス | any |
| 2送信元アドレス | 10.0.200.100/32 |
| 宛先アドレス | any |
| サービス | any |
| 3送信元変換 | dynamic-ip-and-port ethernet1/2 |
| 4宛先変換 | なし |
| 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 で決めたゾーンでセキュリティポリシーを作ります。送信元・宛先のアドレスは、変換前のアドレスで書きます。設定は ポリシー ›› セキュリティ で行います。
| 名前 | 送信元 | 宛先 | アプリケ ーション | サービス | アクション | ||
|---|---|---|---|---|---|---|---|
| ゾーン | アドレス | ゾーン | アドレス | ||||
| Src-NAT | 1Trust | 210.0.200.100/32 | 3Untrust | any | any | any | 許可 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 送信元ゾーン | Trust(STEP 1 で決めたゾーン) |
| 2 | 送信元アドレス | 変換前の 10.0.200.100/32 を書きます。 |
| 3 | 宛先ゾーン | Untrust(STEP 4 で決めたゾーン) |
トラフィックログで変換を確かめる
モニター ›› ログ ›› トラフィック でトラフィックログを見ます。表示する列に「送信元 NAT IP」と「NAT 宛先 IP」を追加しています。
| 送信元 ゾーン | 宛先 ゾーン | 送信元 | 送信元 NAT IP | 宛先 | NAT 宛先 IP | アプリケ ーション | アク ション | ルール |
|---|---|---|---|---|---|---|---|---|
| Trust | Untrust | 110.0.200.100 | 10.0.100.200 | 8.8.8.8 | 8.8.8.8 | ping | allow | 2Src-NAT |
| Trust | Untrust | 10.0.200.100 | 10.0.100.200 | 8.8.8.8 | 8.8.8.8 | ping | allow | Src-NAT |
| Trust | Untrust | 10.0.200.100 | 10.0.100.200 | 8.8.8.8 | 8.8.8.8 | ping | allow | Src-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 につながるようにします。
受信したゾーンを決める
パケットを受け取るインタフェースは 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 ポリシーを作ります。
| 名前 | Dst-NAT |
| 1送信元ゾーン | Untrust |
| 宛先ゾーン | Untrust |
| 宛先インターフェイス | any |
| 送信元アドレス | any |
| 2宛先アドレス | 10.0.100.200/32 |
| サービス | any |
| 3送信元変換 | none |
| 4宛先変換 | destination-translation アドレス: 10.0.200.100 |
| 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 です。
| 名前 | 送信元 | 宛先 | アプリケ ーション | サービス | アクション | ||
|---|---|---|---|---|---|---|---|
| ゾーン | アドレス | ゾーン | アドレス | ||||
| Dst-NAT | 1Untrust | any | 2Trust | 310.0.100.200/32 | any | any | 許可 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 送信元ゾーン | Untrust(STEP 1 で決めたゾーン) |
| 2 | 宛先ゾーン | Trust(STEP 4 で決めた、変換後のゾーン) |
| 3 | 宛先アドレス | 変換前の公開アドレス 10.0.100.200/32 を書きます。 |
宛先 NAT のセキュリティポリシーでは、宛先ゾーンは変換後(Trust)、宛先アドレスは変換前(10.0.100.200)になります。ゾーンとアドレスで変換前と変換後が混ざるので、設定するときに注意してください。
トラフィックログで変換を確かめる
送信元 NAT と同じように、トラフィックログで変換の結果を見ます。
| 送信元 ゾーン | 宛先 ゾーン | 送信元 | 送信元 NAT IP | 宛先 | NAT 宛先 IP | アプリケ ーション | アク ション | ルール |
|---|---|---|---|---|---|---|---|---|
| Untrust | Trust | 126.XX.XX.XX | 1126.XX.XX.XX | 210.0.100.200 | 10.0.200.100 | ms-rdp | allow | Dst-NAT |
| Untrust | Trust | 126.XX.XX.XX | 126.XX.XX.XX | 10.0.100.200 | 10.0.200.100 | ping | allow | Dst-NAT |
| Untrust | Trust | 126.XX.XX.XX | 126.XX.XX.XX | 10.0.100.200 | 10.0.200.100 | ping | allow | Dst-NAT |
| Untrust | Trust | 126.XX.XX.XX | 126.XX.XX.XX | 10.0.100.200 | 10.0.200.100 | ping | allow | Dst-NAT |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | 送信元 NAT IP | 送信元は変換していないので、「送信元」と同じアドレスです。 |
| 2 | 宛先 → NAT 宛先 IP | 公開アドレス 10.0.100.200 宛ての通信が、10.0.200.100 に変換されています。宛先ゾーンは変換後の Trust です。 |
双方向 NAT(Bi-Directional)
双方向 NAT は、外部に公開するアドレスと内部のアドレスを 1対1 で結びつけます。内部から外へ出る通信は送信元を、外から入る通信は宛先を変換します。
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 のときに選べる設定です。
| 名前 | Bi-dir-NAT |
| 1送信元ゾーン | Trust |
| 宛先ゾーン | Untrust |
| 宛先インターフェイス | any |
| 2送信元アドレス | 10.0.200.100/32 |
| 宛先アドレス | any |
| サービス | any |
| 3送信元変換 | static-ip 10.0.100.200 |
| 4双方向 | yes |
| 宛先変換 | なし |
| 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 と同じです。
| 名前 | 送信元 | 宛先 | アプリケ ーション | サービス | アクション | ||
|---|---|---|---|---|---|---|---|
| ゾーン | アドレス | ゾーン | アドレス | ||||
| 1Src-NAT | Trust | 10.0.200.100/32 | Untrust | any | any | any | 許可 |
| 2Dst-NAT | Untrust | any | Trust | 10.0.100.200/32 | any | any | 許可 |
| No. | ルール | 設定内容 |
|---|---|---|
| 1 | Src-NAT | 内部から外への通信用。Trust → Untrust、送信元は変換前の 10.0.200.100/32 です。 |
| 2 | Dst-NAT | 外部から内部への通信用。Untrust → Trust(変換後のゾーン)、宛先は変換前の 10.0.100.200/32 です。 |
双方向を yes にすると、外部から公開アドレス宛てに来た通信は自動で変換されます。どの通信を内部に通すかは、セキュリティポリシーで絞り込んでください(この検証では、アプリケーションとサービスを any で許可しています)。
トラフィックログで変換を確かめる
トラフィックログを見ると、内部から外への通信では送信元アドレスが、外から内部への通信では宛先アドレスが変換されています。
| 送信元 ゾーン | 宛先 ゾーン | 送信元 | 送信元 NAT IP | 宛先 | NAT 宛先 IP | アプリケ ーション | アク ション | ルール |
|---|---|---|---|---|---|---|---|---|
| Trust | Untrust | 110.0.200.100 | 10.0.100.200 | 23.32.241.25 | 23.32.241.25 | ms-update | allow | Src-NAT |
| Trust | Untrust | 10.0.200.100 | 10.0.100.200 | 8.8.8.8 | 8.8.8.8 | ping | allow | Src-NAT |
| Trust | Untrust | 10.0.200.100 | 10.0.100.200 | 117.18.237.29 | 117.18.237.29 | ocsp | allow | Src-NAT |
| 送信元 ゾーン | 宛先 ゾーン | 送信元 | 送信元 NAT IP | 宛先 | NAT 宛先 IP | アプリケ ーション | アク ション | ルール |
|---|---|---|---|---|---|---|---|---|
| Untrust | Trust | 126.XX.XX.XX | 126.XX.XX.XX | 210.0.100.200 | 10.0.200.100 | ping | allow | Dst-NAT |
| Untrust | Trust | 126.XX.XX.XX | 126.XX.XX.XX | 10.0.100.200 | 10.0.200.100 | ping | allow | Dst-NAT |
| Untrust | Trust | 126.XX.XX.XX | 126.XX.XX.XX | 10.0.100.200 | 10.0.200.100 | ping | allow | Dst-NAT |
| 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 ポリシー (ゾーン/変換) | セキュリティポリシー (ゾーン) |
|---|---|---|
| 送信元 NAT | Trust → Untrust 送信元: dynamic-ip-and-port(ethernet1/2) | Trust → Untrust |
| 宛先 NAT | Untrust → Untrust 宛先: destination-translation(10.0.200.100) | Untrust → Trust |
| 双方向 NAT | Trust → Untrust 送信元: static-ip(10.0.100.200)、双方向 yes | Trust → Untrust と Untrust → Trust の2本 |
NAT ポリシーは変換前の情報で書き、セキュリティポリシーはアドレスを変換前、宛先ゾーンを変換後で書く。この2つを押さえておけば、どの NAT でも設定の迷いが減ります。
コメント