PaloaltoVM(10.0.4) NAT/セキュリティポリシー

今回はアドレス変換（NAT）とセキュリティポリシーについて検証してみます。検証構成は下記の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/18c5bd3d-8202-8cb6-c16d-855909ae68b1.png)

Windows端末からWebサーバ向にhttpアクセスをするために必要な設定を行っていきます。また、Windows端末もWebサーバも管理アクセスに足を延ばしている事もあり、Windows端末ではスタティックルートを下記の通り設定しています。

```bash
#コマンドプロントから管理者権限で。
route add 172.16.0.128 255.255.255.128 10.10.1.254 -p
```

また、サーバ側はルーティングを設定しなくても通信が成立するようPaloaltoで送信元アドレス変換を実施します。


## 1. タグ作成
タグを使用すると、キーワードやフレーズを使用してオブジェクトをグループ化できます。タグは、アドレス オブジェクト、アドレス グループ (静的および動的)、ゾーン、サービス、サービス グループ、およびポリシー ルールに適用できます。タグを使用すると、オブジェクトの並べ替えやフィルター処理を行ったり、色を持つことができるため、オブジェクトを視覚的に削除したりできます。意外と便利なので、やってみたいと思います。

管理画面にログイン後、画面上の「OBJECTS」タブから画面左の「タグ」をクリックして、画面下の「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/a6648599-3560-fdba-9d25-82268c7ff4d2.png)

名前に「Egression」と入力して、カラーを「ミディアムブルー」を選択し、「OK」を押します。
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/bb392e98-02df-48d6-a9c9-3e3108921ed2.png">

同様の操作でExternalとInternal分のタグも作成します。名前とタグの組み合わせは下記の通りにしました。

|タグ名 | カラー |備考 |
|--|--|--|
|Egression | ミディアムブルー || 
|External | シアン | 名前はプルダウンから選択 | 
|Internal | フォレストグリーン | 名前はプルダウンから選択 | 

設定後は下記の通りとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/d46b639a-d78f-5b88-db2f-b6f0c640ad70.png)


## 2. NAT作成
次はポリシー作成前に、送信元アドレス変換するためのNAT定義を入れましょう。
管理画面上のタブから「POLICIES」を選択し、画面左の「NAT」をクリックし、画面下の「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/5d98514e-3e57-da63-53f0-f8b887da0010.png)


NATポリシールール画面が表示されます。全般タブから名前を入れて、タグを「Egression」として元のパケットをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/69282c4c-d6fe-f9fb-a549-9dbb431bd4c1.png)

送信元ゾーンの「追加」をクリックして「Intenal」を選択します。宛先ゾーンは「External」宛先にインタフェースは「ethernet1/1」として変換済みパケットタブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/fd9179da-9619-5a42-7d57-2ca907a0773f.png)

変換タイプに「ダイナミックIPおよびポート」、アドレスタイプは「インタフェースアドレス」、インタフェースは「ethernet1/1」、IPアドレスは「172.16.0.254」を選択して「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/80628c29-27eb-694c-cc72-b6dd46f74908.png)

登録されると下記画面のように表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/178faf29-527c-1a4c-fa2a-8d323dcdbd74.png)


## 3. セキュリティポリシー作成
では、いよいよセキュリティポリシーを作成します。セキュリティ ポリシー ルールはセキュリティゾーンを参照し、アプリケーション、ユーザーまたはユーザーグループ、およびサービス (ポートとプロトコル) に基づいて、ネットワーク上のトラフィックを許可、制限、および追跡することができます。

管理画面上のタブから「POLICIES」を選択し、画面左の「セキュリティ」をクリックし、画面下の「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/7db1141d-ee06-627e-0cd9-1f7d67db93b5.png)

セキュリティポリシールールが表示されます。名前は「Egression-External」、タグは「Egression」を選択し、送信元タブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/88a6e32c-54ad-71a0-1d76-765bc75c73fd.png)

送信元ゾーンに「Internal」を追加して宛先タブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/d91a2aa2-1978-ea0c-c96a-d4b379091319.png)

宛先ゾーンに「External」を追加してアプリケーションタブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/e37c3053-0955-15f3-5bcf-52fb3f036945.png)

下記画面のようになっている事を確認し、サービス/URLカテゴリタブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/c5a3703f-55cf-605e-876d-1dd12570ede7.png)

サービスの上にあるプルダウンから「any」を選択し、アクションタブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/f237011e-47ce-c1f9-f036-0377ebc7a1dd.png)

アクションは「Allow」を選択し、ログ設定は「セッション開始時にログ」「セッション終了時にログ」どちらにもチェックを入れて「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/59b8bf49-3e67-88b2-f023-86dfa26609e2.png)

セキュリティポリシーが1つ追加されました。では画面左上の「Commit」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/5c48176b-70ca-c8b0-cc37-731753ce45ea.png)

ここで、「変更内容の確認」をクリックしますと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/7bfb4694-08a3-48b9-7ec6-98a18d3f9014.png)

差分比較することが出来ます。問題なければこの画面を閉じてコミットしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/bd978df9-da61-f546-8332-6f92d939df5c.png)


## 4. Webアクセス
では、Windows端末からアクセス確認を実施します。ブラウザを立ち上げてサーバのアドレスをブラウザのURLに入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/cb86ca6d-5ab4-b9d1-fdfc-d8697459ece7.png)

無事ページが表示されました。では、PaloAlto上のログでどう見えているのか確認してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/0f98f6bb-776d-93e3-6c23-68acf1caa8c1.png)

管理画面上のタブから「MONITOR」を選択し、画面左の「トラフィック」をクリックしするとログが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/e941ecdf-2b49-a436-db42-1a71357ed613.png)

画面を左にスライドするとtcp-finで正しくセッションが終っている事が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/2d44af4a-8c00-ace5-9e2b-510ecf9c1fcb.png)


トラフィックログは1行毎に詳細内容を確認する事が出来ます。画面左側のログマークをクリックします。
<img width="30" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/5348f610-4044-23c0-2f05-6c8754230a8a.png">

送信元欄を見るとアドレスがExternal側のIPで設定されている事が分かります。では、本当にNAT変換されているのかサーバ側のtcpdumpで確認してみたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/37b4b87b-83cc-9349-07cb-00d9908d7eb3.png) 


**TCPDUMP実行**

```bash
# tcpdump -i ens224 port 80 -nnn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens224, link-type EN10MB (Ethernet), capture size 262144 bytes
09:24:43.949664 IP 172.16.0.254.6734 > 172.16.0.250.80: Flags [F.], seq 3999837124, ack 1150280340, win 1023, length 0
09:24:43.949715 IP 172.16.0.250.80 > 172.16.0.254.6734: Flags [.], ack 1, win 245, length 0
09:24:43.949751 IP 172.16.0.254.40040 > 172.16.0.250.80: Flags [F.], seq 3127307757, ack 3140866674, win 1023, length 0
09:24:43.949758 IP 172.16.0.250.80 > 172.16.0.254.40040: Flags [.], ack 1, win 254, length 0
09:24:43.949974 IP 172.16.0.254.26713 > 172.16.0.250.80: Flags [S], seq 4004560516, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
09:24:43.949999 IP 172.16.0.250.80 > 172.16.0.254.26713: Flags [S.], seq 2030184559, ack 4004560517, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
09:24:43.950037 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [S], seq 3361278502, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
09:24:43.950042 IP 172.16.0.250.80 > 172.16.0.254.33264: Flags [S.], seq 1455395704, ack 3361278503, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
09:24:43.952492 IP 172.16.0.254.26713 > 172.16.0.250.80: Flags [.], ack 1, win 1026, length 0
09:24:43.953104 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [.], ack 1, win 1026, length 0
09:24:43.953130 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [P.], seq 1:466, ack 1, win 1026, length 465: HTTP: GET / HTTP/1.1
09:24:43.953156 IP 172.16.0.250.80 > 172.16.0.254.33264: Flags [.], ack 466, win 237, length 0
09:24:43.954607 IP 172.16.0.250.80 > 172.16.0.254.33264: Flags [.], seq 1:4381, ack 466, win 237, length 4380: HTTP: HTTP/1.1 403 Forbidden
09:24:43.954677 IP 172.16.0.250.80 > 172.16.0.254.33264: Flags [P.], seq 4381:5206, ack 466, win 237, length 825: HTTP
09:24:43.955285 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [.], ack 5206, win 1026, length 0
09:24:43.972631 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [P.], seq 466:869, ack 5206, win 1026, length 403: HTTP: GET /noindex/css/fonts/Bold/OpenSans-Bold.woff HTTP/1.1
09:24:43.972760 IP 172.16.0.250.80 > 172.16.0.254.33264: Flags [P.], seq 5206:5660, ack 869, win 245, length 454: HTTP: HTTP/1.1 404 Not Found
09:24:43.972846 IP 172.16.0.254.26713 > 172.16.0.250.80: Flags [P.], seq 1:406, ack 1, win 1026, length 405: HTTP: GET /noindex/css/fonts/Light/OpenSans-Light.woff HTTP/1.1
09:24:43.972861 IP 172.16.0.250.80 > 172.16.0.254.26713: Flags [.], ack 406, win 237, length 0
09:24:43.973008 IP 172.16.0.250.80 > 172.16.0.254.26713: Flags [P.], seq 1:458, ack 406, win 237, length 457: HTTP: HTTP/1.1 404 Not Found
09:24:43.975283 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [P.], seq 869:1271, ack 5660, win 1024, length 402: HTTP: GET /noindex/css/fonts/Bold/OpenSans-Bold.ttf HTTP/1.1
09:24:43.975368 IP 172.16.0.250.80 > 172.16.0.254.33264: Flags [P.], seq 5660:6113, ack 1271, win 254, length 453: HTTP: HTTP/1.1 404 Not Found
09:24:43.977083 IP 172.16.0.254.26713 > 172.16.0.250.80: Flags [P.], seq 406:810, ack 458, win 1024, length 404: HTTP: GET /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1
09:24:43.977159 IP 172.16.0.250.80 > 172.16.0.254.26713: Flags [P.], seq 458:913, ack 810, win 245, length 455: HTTP: HTTP/1.1 404 Not Found
09:24:44.021374 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [.], ack 6113, win 1023, length 0
09:24:44.036555 IP 172.16.0.254.26713 > 172.16.0.250.80: Flags [.], ack 913, win 1023, length 0
09:24:48.980487 IP 172.16.0.250.80 > 172.16.0.254.26713: Flags [F.], seq 913, ack 810, win 245, length 0
09:24:48.980530 IP 172.16.0.250.80 > 172.16.0.254.33264: Flags [F.], seq 6113, ack 1271, win 254, length 0
09:24:48.980837 IP 172.16.0.254.26713 > 172.16.0.250.80: Flags [.], ack 914, win 1023, length 0
09:24:48.980900 IP 172.16.0.254.33264 > 172.16.0.250.80: Flags [.], ack 6114, win 1023, length 0
```

Webサーバから見ると172.16.0.254としか通信していないことが分かります。正しく送信元アドレス変換が行わています！

## 5. その他
次回はウィルス対策プロファイルを使用したセキュリティポリシーを作成してみたいと思います。