Chekpointを使用したOCI IPSec VPN接続例

## 概要
Chekpoint FWを使用してOCI IPSecにVPN接続する設定例です。

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/5601b4ce-7a26-94c4-7053-09df91ad3ca7.png)
## 設定例(Static)
* OCI
OCIメニューからネットワーキング>>顧客接続性>>サイト間VPNを選択します。
作成については以下のサイトをご参照ください。
サイト間VPNの設定
https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/settingupIPsec.htm
CPE構成 Check Point: ルートベース
https://docs.oracle.com/ja-jp/iaas/Content/Network/Reference/checkpointCPEroutebased.htm#config

ここでは作成済みの設定となります。

ネットワーキング>>顧客接続性>>サイト間VPN>>作成したVPN
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/04f56225-fa94-3d24-ea34-48c64d87ad97.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/034452e8-9332-fad4-72a9-70479a47516f.png)
IKE識別子はCPEの機種やネットワーク構成(NAT機器配下にCPEがある）によって異なります。
Checkpointについては、後述するinteroperable Device設定>>IPSec VPN>>Lenk Selectionで設定したアドレスをここに指定します

ネットワーキング>>顧客接続性>>サイト間VPN>>作成したVPN>>トンネル1
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/6c0a53f3-55f1-98b0-4e8c-734d1c4bc1cf.png)
ネットワーキング>>顧客接続性>>サイト間VPN>>作成したVPN>>トンネル2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/8c62af43-363c-3fcd-98d3-298741e4f554.png)


* Checkpoint
AWS Marketplaceから以下のCheckpointを利用しました。 
Software VersionはR81.20です。
 + Check Point Security Management
 + CloudGuard Network Security Next-Gen Firewall with Threat Prevention

AWSでのデプロイや初期設定については以下のガイドを参考にしました

CloudGuard Network for AWS Security Cluster R80.20 and Higher Deployment Guide
https://sc1.checkpoint.com/documents/IaaS/WebAdminGuides/EN/CloudGuard_Network_for_AWS_Cluster_DeploymentGuide/Content/Topics-AWS-Cluster-DG/Deploying-a-Check-Point-Cluster-in-AWS.htm?TocPath=Deployment%20Steps%7C_____0

vSEC Gateway for Amazon Web Services Startguide
https://dl3.checkpoint.com/paid/eb/ebb444ce93242cf3f80f76637678906b/CP_R77.30_SecurityGateway_AmazonVPC_GettingStartedGuide.pdf?HashKey=1678023132_4e34bb3b759ff54cb1e755231ee2d396&xtn=.pdf

VPN作成については以下のサイトをご参照ください。
CPE構成 Check Point: ルートベース
https://docs.oracle.com/ja-jp/iaas/Content/Network/Reference/checkpointCPEroutebased.htm#config

-Check Point CloudGuard Security Gatewayへのサイト間VPNのインストール
SmartconsoleからGatewayにIPSec VPNモジュールをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/7d34c4a9-0274-7422-a9d6-fa47346f64d9.png)

- GAIAからのVTIインタフェースの作成
GAIAポータルにてVTIインターフェースを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/04361d62-29cc-f803-a5d1-41ffb97991b9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/08127dfa-f2d3-f981-5e1b-835a6fcf01f2.png)
- ルーティング作成
VPNトンネル対向アドレスおよびVCNサブネットへのルーティングを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/eaa5202c-0a06-c003-8624-38427047a298.png)
VCNサブネットへのルーティング詳細
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/5836c572-02ac-b0b4-982f-873f6d1e9a3d.png)
VCNサブネットへのルーティングはトンネル1にPriority 1を設定しMonitored Addressを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/7e35a51d-e3a4-0b03-8c60-2afaff566fc5.png)
- interoperable Deviceの作成
Smartconsoleを使用してinteroperable Deviceを作成します。
トンネル1
OCI側のグローバルIPアドレスを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/e515d522-1d24-3f79-f844-b6611e05a7f5.png)
ルートベースVPNを構成するためにVPN Domainに空のグループを設定します。
VPN DomainでUser definedを指定し...>>New>>Group>>Simple Groupを選択して名前のみ入力して空のグループを作成してそれを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/5668299c-0f70-feed-02ce-d66db5364da2.png)
VPN Communityは後で設定しますが設定後はVPNコミュニティが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/c0e42f23-5f94-5da8-134d-e9339df7779d.png)
IKE識別子としてGatewayのアドレス（ここでは10.2.0.4)を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/4ad759cb-6d0f-f303-8ad5-add81ffd979a.png)
Use the community Settingを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/44ba17c8-7e28-f851-afb5-9c6447120bbe.png)
トンネル2については同様に作成します。

- VPNコミュニティの作成
SmartconsoleからSecurityPolicyに移動し、左下Access ToolからVPN Communityを選択します。
上部*マークをクリックしてStar communityを選択して以下のように作成します。
Center gatewayとしてGatewayを選択し、Sateliteは作成したinteroperable Deviceを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/5fcb3968-6a8e-6645-d4bf-afc17f96756d.png)
OCIで指定した暗号パラメータを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/4eb89327-978d-ffef-09e2-f165a14cb22d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/d2af53a9-f777-5ab5-6ea1-3ac4018b102c.png)
PreSharedKeyを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/18d35a6c-ee0a-8e1e-09cf-1f0ca1f81397.png)
Lifetimeを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/ba717735-a334-03db-1efb-0efc55adb2db.png)

Smartconsole左上メニューからGlobal Propaties>>VPN>>Advancedの順に選択して、Enable VPN Directional Match in VPN Columnにチェックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/88884963-a726-7f56-10c0-5baf761d70c9.png)

- セキュリティ・ポリシーの作成
SmartconsoleからSecurity Poriciesを選択しPolicyを作成しPolicy Installします。
VPNに以下を設定します。
  Internal_Clear > 作成済のVPNコミュニティ
  作成済のVPNコミュニティ > 作成済のVPNコミュニティ
  作成済のVPNコミュニティ > Internal_Clear
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/207b3ac1-d190-c16b-f5fe-3d2d6c51400d.png)

IPSec状況抜粋
``` 
i-0cd1132d03de896d4> vpn tunnelutil
**********     Select Option     **********
(1)               List all IKE SAs
(2)             * List all IPsec SAs
(3)               List all IKE SAs for a given peer (GW) or user (Client)
(4)             * List all IPsec SAs for a given peer (GW) or user (Client)
(5)               Delete all IPsec SAs for a given peer (GW)
(6)               Delete all IPsec SAs for a given User (Client)
(7)               Delete all IPsec+IKE SAs for a given peer (GW)
(8)               Delete all IPsec+IKE SAs for a given User (Client)
(9)               Delete all IPsec SAs for ALL peers and users
(0)               Delete all IPsec+IKE SAs for ALL peers and users
* To list data for a specific CoreXL instance, append "-i <instance number>" to your selection.
(Q)               Quit
*******************************************
1
Peer 【OCI_Global_IP2】 , AWSFW-IPSec-tun2 SAs:
        IKEv2 SA <e93eb45779b3f5e2,622246614e308220>
Peer 【OCI_Global_IP1】 , AWSFW-IPSec-tun1 SAs:
        IKEv2 SA <f3eb78e8539deede,b1fc69f3db23e9ef>
Hit <Enter> key to continue ...
*******************************************
2
SAs of all instances:
Peer 【OCI_Global_IP2】 , AWSFW-IPSec-tun2 SAs:
        IKEv2 SA <e93eb45779b3f5e2,622246614e308220>
                INBOUND:
                        1. 0xc9118666   (i: 1)
                OUTBOUND:
                        1. 0x70b2238    (i: 1)
Peer 【OCI_Global_IP1】 , AWSFW-IPSec-tun1 SAs:
        IKEv2 SA <f3eb78e8539deede,b1fc69f3db23e9ef>
                INBOUND:
                        1. 0x718be477   (i: 1)
                OUTBOUND:
                        1. 0x2e43716e   (i: 1)
```

* Pingテスト
AWSサーバーからOCIサーバーへのping結果
``` Server.
[ec2-user@ip-10-2-3-102 ~]$ ping 10.0.0.105
PING 10.0.0.105 (10.0.0.105) 56(84) bytes of data.
64 bytes from 10.0.0.105: icmp_seq=1 ttl=60 time=4.32 ms
64 bytes from 10.0.0.105: icmp_seq=2 ttl=60 time=4.05 ms
64 bytes from 10.0.0.105: icmp_seq=3 ttl=60 time=4.00 ms
64 bytes from 10.0.0.105: icmp_seq=4 ttl=60 time=4.04 ms
^C
--- 10.0.0.105 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.004/4.106/4.327/0.143 ms
```
OCIサーバーからAWSサーバーへのping結果
``` Server.
[opc@t-vm10-0-0-105 ~]$ ping 10.2.3.102
PING 10.2.3.102 (10.2.3.102) 56(84) bytes of data.
64 bytes from 10.2.3.102: icmp_seq=1 ttl=252 time=4.06 ms
64 bytes from 10.2.3.102: icmp_seq=2 ttl=252 time=4.03 ms
64 bytes from 10.2.3.102: icmp_seq=3 ttl=252 time=4.02 ms
64 bytes from 10.2.3.102: icmp_seq=4 ttl=252 time=3.90 ms
^C
--- 10.2.3.102 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 3.901/4.002/4.064/0.087 ms
```
## 設定例(BGP)
Static route設定を以下のように変更します
【OCI】 
- ネットワーキング>>顧客接続性>>サイト間VPN>>作成したVPN>>トンネル1を編集しルーティングをBGPに変更
- ネットワーキング>>顧客接続性>>サイト間VPN>>作成したVPN>>トンネル2を編集しルーティングをBGPに変更
- ネットワーキング>>顧客接続性>>サイト間VPN>>作成したVPNを編集しオンプレミス・ネットワークへのルートに設定したStatic Routeを削除

【Checkpoint】
GAIAポータルから変更します。
- OCI VCN向けのStatic route(10.0.0.0/25)を削除
- BGPを追加
Peerを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/6d952506-2b2c-b8de-2193-b6afe9718c5c.png)
OCIから受け取ったルートをルートテーブルに許可
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/7e2d7984-b506-ef6d-6d8f-0de1e0f0fc08.png)
eth2(10.2.3.0/24)のルートをOCIにアドバタイズ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/16c582cc-8e3f-b51d-c575-c0e6d3f08de7.png)

BGP確認
```
i-0cd1132d03de896d4> show route
Codes: C - Connected, S - Static, R - RIP, B - BGP (D - Default),
       O - OSPF IntraArea (IA - InterArea, E - External, N - NSSA),
       IS - IS-IS (L1 - Level 1, L2 - Level 2, IA - InterArea, E - External),
       A - Aggregate, K - Kernel Remnant, H - Hidden, P - Suppressed,
       NP - NAT Pool, U - Unreachable, i - Inactive

S               0.0.0.0/0           via 10.2.0.1, eth0, cost 0, age 4765
B               10.0.0.0/25         via 192.168.0.14, vpnt2, cost None, age 3038
B               10.0.0.128/27       via 192.168.0.14, vpnt2, cost None, age 3038
C               10.2.0.0/24         is directly connected, eth0
C               10.2.3.0/24         is directly connected, eth2
C               10.2.4.0/24         is directly connected, eth1
C               127.0.0.0/8         is directly connected, lo
S               【OCI_Global_IP1】  via 10.2.4.1, eth1, cost 0, age 4765
S               【OCI_Global_IP2】  via 10.2.4.1, eth1, cost 0, age 4765
C               192.168.0.9/32      is directly connected, vpnt1
C               192.168.0.10/32     is directly connected, vpnt1
C               192.168.0.13/32     is directly connected, vpnt2
C               192.168.0.14/32     is directly connected, vpnt2
i-0cd1132d03de896d4> show bgp peers

Flags: R - Peer restarted, W - Waiting for End-Of-RIB from Peer

PeerID           AS           Routes  ActRts  State             InUpds  OutUpds  Uptime
192.168.0.10     31898        2       0       Established       1       1        00:13:56
192.168.0.14     31898        2       2       Established       1       1        00:50:41
i-0cd1132d03de896d4>

```
* Pingテスト
AWSサーバーからOCIサーバーへのping結果
``` Server.
[ec2-user@ip-10-2-3-102 ~]$ ping 10.0.0.105
PING 10.0.0.105 (10.0.0.105) 56(84) bytes of data.
64 bytes from 10.0.0.105: icmp_seq=1 ttl=60 time=4.46 ms
64 bytes from 10.0.0.105: icmp_seq=2 ttl=60 time=4.13 ms
64 bytes from 10.0.0.105: icmp_seq=3 ttl=60 time=4.08 ms
64 bytes from 10.0.0.105: icmp_seq=4 ttl=60 time=4.12 ms
^C
--- 10.0.0.105 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.081/4.201/4.467/0.154 ms
```
OCIサーバーからAWSサーバーへのping結果
``` Server.
[opc@t-vm10-0-0-105 ~]$ ping 10.2.3.102
PING 10.2.3.102 (10.2.3.102) 56(84) bytes of data.
64 bytes from 10.2.3.102: icmp_seq=1 ttl=252 time=4.21 ms
64 bytes from 10.2.3.102: icmp_seq=2 ttl=252 time=4.14 ms
64 bytes from 10.2.3.102: icmp_seq=3 ttl=252 time=4.07 ms
64 bytes from 10.2.3.102: icmp_seq=4 ttl=252 time=4.15 ms
^C
--- 10.2.3.102 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.069/4.142/4.207/0.080 ms
```