【PaloAlto】NATとセキュリティポリシーの考え方と設定例~処理順序や双方向,ポートフォワーディング,確認コマンド~

PaloAlto の NAT 等のパケット処理順序

PaloAlto ではパケットを以下の順番で処理します。

  1. ルーティングテーブル検索:Src と Dst のゾーン/インタフェースを確定
  2. NAT処理 : NATポリシーによりNAT変換 (ポリシーで使われるゾーン/インタフェースは 1 で確定したもの) する。宛先NATがある場合はルーティングテーブルを再検索し、ゾーン/インタフェースを更新
  3. ACL処理 : セキュリティポリシーによりアクセス制御を実施 (ポリシーに書くアドレスは NAT 処理前のもの, ゾーンは NAT 処理後のもの)

パケット処理フローの概要図を以下に示します。

セッションテーブルと確認コマンド

PaloAlto では NAT ルールとセキュリティルールは設定が分かれていますが、Cisco ルータのような NAT 専用のセッションテーブルは無く、ステートフルインスペクションと NAT を 1 つのセッションテーブルで管理します。

確認コマンド show session id [id] で NAT 含めたセッションの状態を確認することができます。

以下の例では 10.1.1.100 が 198.51.100.11 に Source NAT 変換されるセッション状態を確認することができます。c2s flow とは Client to Server (往路) のフローで、s2c はその逆 (復路) です。

admin@Palo1> show session id 532123

Session		532123

	c2s flow:
		source:		10.1.1.100 [Trust]
		dst:		203.0.113.11
		proto:		6
		sport:		46579		dport:		443
		state:		INIT		type:		FLOW
		src user:	unknown
		dst user:	unknown

	s2c flow:
		source:		203.0.113.11 [Untrust]
		dst:		198.51.100.11
		proto:		6
		sport:		443		dport:		10043
		state:		INIT		type:		FLOW
		src user:	unknown
		dst user:	unknown

PaloAltoのNAT設定例

シナリオ#1 Source NAT (NAPT)

社内の 192.168.1.0/24 からインターネットへ出る際に、NAPT により 198.51.100.11 に NAPT 変換する設定例を以下に示します。

NAPT 設定のときは「変換済みパケット」の「送信元変換」において "dynamic-ip-and-port" にチェックを入れます。

また、セキュリティポリシーには NAT 変換前の「10.1.1.0/24」を使って設定します。

シナリオ#2 Destination NAT (ルーティングが内向き)

インターネットから 198.51.100.80 宛に入ってきたときに、宛先を 10.3.1.80 に Destination NAT 変換するときの設定を以下に示します。なお、198.51.100.0/24 宛のルーティングが eth1 (Trust 側) を向いているものとします。

NAT ポリシーではルーティングテーブルで宛先の Zone/インタフェースが決まりますので、宛先ゾーン=Trust, 宛先インタフェース=eth1 になります。

なお、ポートフォワーディングをする場合、例えばインターネットからは 198.51.100.80 の宛先ポート tcp:80 のパケットを PaloAlto で宛先のIPを変換すると同時に宛先ポートを 8080 に変更する場合は以下のように NAT ポリシーを設定します。

シナリオ#3 destination NAT (ルーティングが外向き)

シナリオ#2 のときと違い、198.51.100.0/24 宛のルーティングが無いケースを考えます。このとき、198.51.100.80 はデフォルトルートに合致しますので、宛先ゾーン=Untrust, 宛先インタフェース=eth5 となります。

セキュリティポリシーについては、宛先 NAT によりルーティングテーブルの再検索が為され、ゾーン=Trust, 宛先インタフェース=eth1 となります。ただし、宛先 IP はオリジナルパケットの「198.51.100.80」に対して設定します。

シナリオ#4 双方向 NAT

PaloAlto の NAT ポリシーでは一方向のルールを設定します。例えばシナリオ#2や#3 においては、1対1 NAT の設定ではありますが、10.3.1.80 がインターネットに出ていくときには適用されません。方向が異なるからです。

このようなケースでは、逆方向のルールを明示的に追加してもよいですが、双方向 NAT を設定することでも実現できます。

双方向 NAT を有効にすると、逆の変換をする NAT ポリシーが暗黙で自動生成されます。基本的に Source と Destination が全て逆になりますが、例外的に送信元ゾーンは "any" で設定されます。

なので双方向 NAT を設定して片方向しかアクセスが成功しない場合は NAT ポリシーのゾーン設定を間違えている可能性が高いです。

シナリオ#5 UターンNAT

インターネットからアクセスするときと同じ宛先 IP を使って、内部から PaloAlto で折り返し NAT して内部のサーバにアクセスする設定です。

NAT 後にルーティングテーブル再検索をすると、宛先ゾーンが Trust になります。送信元も Trust であり、同一ゾーンはデフォルトでは許可されているため、セキュリティポリシーは設定を入れる必要がありません。

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG