SIPAを使って送信元IPを固定してみた

# 免責事項
本記事のコンテンツや情報において、可能な限り正確な情報を掲載するよう努めておりますが、 誤情報が入り込んだり、情報が古くなったりすることもあり、必ずしもその内容の正確性および完全性を保証するものではございません。そのため、本記事をエビデンスとしたゼットスケーラーへの問い合わせなどはご対応致しかねることをご理解頂けると幸いです。掲載内容はあくまで個人の意見であり、ゼットスケーラーの立場、戦略、意見を代表するものではありません。当該情報に基づいて被ったいかなる損害について、一切責任を負うものではございませんのであらかじめご了承ください。

# SIPAとは
ZIA経由で通信する際、アプリケーション側で見える送信元IPは[Zscaler提供のIPアドレス](https://config.zscaler.com/zscaler.net/cenr)です。Zscaler提供のIPアドレスはお客様毎に固定しておらず、Zscalerをご利用のお客様で共有利用しています。固定のIPアドレスで送信元を制限したい場合に、SIPA(Source IP Anchoring)を使います。


以下の構成のように、ZIA→ZPA→App Connectorを経由させることで、アプリケーション側から見える送信元IPがApp ConnectorのGlobal IPになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/0f5fb575-95c2-cf50-ac8b-7a3819594e15.png)

以前はApp Connectorをお客様管理のData CenterもしくはCloudに構築して頂く必要がありましたが、最近Zscaler Managed App Connector:[Dedicated IP](https://help.zscaler.com/ja/zia/using-dedicated-ip)を提供し始めました。ZIA/ZPAと同様にApp ConnectorがZscalerのData Centerにデプロイされるため、お客様のData CenterもしくはCloudに迂回することなく、ZscalerのData Centerから直接Internetにアクセスします。Zscaler Managedとなるため、お客様側でApp Connectorの準備及び運用が必要なくなるため、人気になっています。

# SIPAの設定手順
宛先がFQDNとIPアドレスで設定方法が異なります。今回は送信元IPアドレスを確認する時によく利用するcmanサイトのFQDN(*www*.cman.jp)とIPアドレス(157.65.27.7)で設定方法を紹介します。まず、SIPA設定していない時の送信元IPアドレスを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/38690244-f87b-fbfc-0b05-3449cdff74ef.png)
136.x.x.xは[Zscaler提供のIPアドレス](https://config.zscaler.com/zscaler.net/cenr)に含まれています。

## 宛先がFQDNの場合の設定手順
　[Step1.App Segment定義](#step1app-segmentの作成)
　[Step2.Access Policy設定](#step2access-policy設定)
　[Step3.Client Forwarding Policy設定](#step3client-forwarding-policy設定)
　[Step4.ZPA Gateway 作成](#step4zia-zpa-gateway-作成)
　[Step5.ZIA→ZPA転送Policy設定](#step5zia-ziazpa転送policy設定)

## 宛先がIPアドレスの場合の設定手順
　[Step6.App Segment定義](#step6app-segmentの作成)
　[Step7.Access Policy設定](#step7access-policy設定)
　[Step8.Client Forwarding Policy設定](#step8client-forwarding-policy設定)
　[Step9.ZPA Gateway 作成](#step9zia-zpa-gateway-作成)
　[Step10.ZIA→ZPA転送Policy設定](#step10zia-ziazpa転送policy設定)

# FQDNの場合

## Step1.App Segmentの作成
ZPA Admin Portal→Resource Mangement→Application Segments→Add Application Segment
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/bd1f9ab7-8443-3def-d3ce-a2493669bebb.png)

## Step2.Access Policy設定
ZPA Admin Portal→Policy→Access Policy→Add Rule
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/40f9f241-6ae8-d8a5-0d29-2c5173cdfccd.png)

## Step3.Client Forwarding Policy設定

Client Forwarding Policyは2つ必要です。
1つ目のRule ActionにBypass ZPAを選択し、Client TypesにClient Connectorを設定します。

ZPA Admin Portal→Policy→Client Forwarding Policy→Add Rule
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/baba7a06-388c-e42b-f85f-8473b3a39f97.png)

2つ目のRule ActionにForward to ZPAを選択し、Client TypesにZIA Service Edgeを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/89a99fc0-3e0f-f5e5-8811-3c1f4f82b16a.png)

## Step4.[ZIA] ZPA Gateway 作成
ZIA Admin Portal→Administration→Zscaler Private Access→Add Gateway for ZPA
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/60a5a1f7-5559-a431-e3b3-0c72d8b9efe5.png)

## Step5.[ZIA] ZIA→ZPA転送Policy設定
ZIA Admin Portal→Policy→Forwarding Control→Add Forwarding Rule
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/45fdab91-ece5-915d-0505-ab3fafb93764.png)

宛先がFQDNの場合の設定は以上です。*www*.cman.jpにアクセスし、IPアドレスがApp ConnectorのGlobal IP:45.x.x.xに変わりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/f4c2eec5-5a6c-2977-86b8-307c4bff9027.png)

ZIA側でZPAに転送されたログが送出されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/3b4a6929-3170-86a6-e66c-dd077de60545.png)

ZPA側でもログの確認ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/baa842b2-e7c9-a5f2-711c-ff9a59cf47b5.png)

# IPアドレスの場合

## Step6.App Segmentの作成
ZPA Admin Portal→Resource Mangement→Application Segments→Add Application Segment
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/ad7861fe-a642-296a-b0e4-3b45d949c84f.png)

## Step7.Access Policy設定
Client TypesにZIA Service Edgeを設定します。

ZPA Admin Portal→Policy→Access Policy→Add Rule
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/08a39eb6-5a42-cf57-a1d0-01d25b1b3e02.png)

## Step8.Client Forwarding Policy設定

Client Forwarding Policyは1つだけです。
Rule ActionにOnly Forward Allowed Applicationsを選択し、Client Typesは設定しません。

ZPA Admin Portal→Policy→Client Forwarding Policy→Add Rule
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/705c846a-2928-f4f7-c760-876a621eb490.png)

## Step9.[ZIA] ZPA Gateway 作成
ZIA Admin Portal→Administration→Zscaler Private Access→Add Gateway for ZPA
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/f2d2cb22-b909-cfa4-84b6-e5bec54caf18.png)

## Step10.[ZIA] ZIA→ZPA転送Policy設定
ZIA Admin Portal→Policy→Forwarding Control→Add Forwarding Rule
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/c8da79e9-7f48-3810-9a06-50e8ad8ccc6f.png)

宛先がIPアドレスの場合の設定は以上です。157.65.27.7にアクセスし、FQDNアクセスと同様にIPがApp ConnectorのGlobal IPに変わりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/5f593191-e6e3-a3bf-d42f-8b1ded1a1cfc.png)

ZIA側でZPAに転送されたログが送出されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/137fbee2-e3cd-7b30-8140-e7a276ee930d.png)

ZPA側でもログの確認ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/a9ddc90a-60ec-c101-6378-52caad2c69d4.png)


# 補足1
長年Zscalerご利用の方で、IPアドレスの設定方法でIPアドレスとFQDNを両方を追加できるよとおっしゃる方がいるかもしれません。ほとんどのユースケースでは問題なく通信できますが、以下のようなZPAのApp SegmentにワイルドカードのFQDNが設定されている場合、IPアドレスの設定方法で*www*.cman.jpを追加すると、エラーが出てアクセスできません。ZPAのログはPolicy is not configured for accessと表示されます。

ZPAのApp Segment: *.cman.jp
SIPAのApp Segment: *www*.cman.jp

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/44523a58-b929-c739-74c5-15a4af7617d5.png)

ワイルドカードのFQDNと混在している場合、本記事に記載しているFQDNの方法で設定する必要があります。

# 補足2
逆にFQDNの設定手順にIPアドレスを追加したら、どうなるかを検証してみました。cmanサイトのFQDN(*www*.cman.jp)とIPアドレス(157.65.27.7)を同じApp Segmentに追加してみました。Macbookでは問題なく動作しましたが、WindowsではZIA/ZPA両方ともBypassされて、クライアント端末の元々のGlobal IPで通信する結果になりました。

# まとめ
SIPAを使って送信元IPを固定する手順を紹介しました。宛先がFQDNとIPアドレスで設定方法が異なります。設定が異なる箇所はAccess PolicyとClient Forwarding Policyの部分です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/4f82cc62-3033-af39-a655-460afe95c46e.png)<br>
Zscalerをご利用のお客様はほぼこの機能をご利用頂いております。以前はApp Connectorをお客様側で用意する必要がありましたが、Dedicated IPを利用するとZscaler Managed App Connectorが利用可能になります。Dedicated IPを利用しても、SIPAの設定手順は変わりません。実際設定する際、参考にしてみてください。