Oracle Cloud:Fortinet FortiGate Next-Generation Firewall(NGFW) を導入してみてみた

サイバーセキュリティーのリーダー Fortinet のルーター　FortiGate NGFW は、IDS・IPS（不正侵入検知・防御）、アンチウィルス、マルウェア対策、VPN 等など 1台で多機能です。
そのFortiGate NGFW が Oracle Cloud で利用できるということで導入してみます。

・導入イメージ
<img width="730" alt="構成図1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/60faf79e-64d0-d2c8-266d-6e6df117e8fc.png">



# ■ 構成
今回は FotiGate の導入部分を行います
<img width="699" alt="構成図４.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/58f9d5c1-543e-14e4-1d02-14ce016a6754.png">




# ■ 環境作成

## ● FortiGate インスタンス作成
 FortiGateは、OCIのパートナー・イメージカタログに登録されています。

**1) OCIコンソール画面**
ということで、 OCIコンソールのコンピュートの画面にある[インスタンスの作成]ボタンをクリック

**2) Create Compute Instance 画面**
[Change Image Source]をクリック
<img width="770" alt="01_Fortigate_Inst01_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/15cab867-f77d-6dce-9a28-46121039d4aa.png">

**3) すべてのイメージ参照画面**
「パートナー・イメージ」タブを選択し、FortiGateのNGFWを選択
<img width="1132" alt="01_Fortigate_Inst01_02_2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/033c823f-9195-7e8e-7512-f6e13f02debe.png">

**４) FortiGate デプロイ**
以下のようにコンピュートインスタンスを作成と同じように作成

![01_Fortigate_Inst01_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/30632dc4-0e78-fbcf-5ebf-f78bde278972.png)

**5) FortiGateデプロイ完了**
<img width="1132" alt="01_Fortigate_Inst01_04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/f542b88e-f604-2424-a7fe-41778ef0dbf9.png">


## ● Security List 設定
Forigate の Web コンソールアクセスできるように、TCP port 443 を全てのCIDRから許可
<img width="614" alt="01_SecuritiList_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9ce6ac88-4dbc-7efd-f3e9-e9d2cf0845af.png">


## ● ストレージ・ボリューム追加
ForigateのLOG等格納用にブロック・ボリュームを追加

**1) ブロック・ボリュームの作成画面**
ストレージのブロック・ボリューム画面 から [ブロック・ボリュームの作成]をクリックし、以下のように必要ストレージ容量を設定して作成

<img width="638" alt="02_Block_Vol_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/f5a5b52d-186a-2998-104a-f9fcbe149fee.png">



**2) ブロック・ボリューム画面**
インスタンスのアタッチされたブロック・ボリューム画面から[ブロック・ボリュームのアタッチ]ボタンをクリック
<img width="778" alt="02_Block_Vol_02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/076e5536-593c-725d-1fae-d2b7f546a5d0.png">


**3) ブロック・ボリュームのアタッチ画面**
作成したブロック・ボリュームをアタッチ
<img width="389" alt="02_Block_Vol_03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/557b43d5-047b-cf3f-b058-c17dc5f580f6.png">

**4) インスタンス再起動**
再起動して追加ストレージをアタッチ

## ● FitiGate の Web コンソールへアクセス
**1) Fortigate ログイン画面**
FortiGate の Public IP アドレスを記入して Webブラウザへ https://<public_IP_address>/ を記入してアクセス

<img width="870" alt="03_Web-login_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9d7de7b2-a1ed-83bb-78aa-9999edefca87.png">

以下ユーザー/パスワードを記入して [LOGIN]

	ユーザー："admin"
	パスワード：OCID





**2) Change Password 画面**
パスワード設定
初回ログインでのパスワードは、OCID であるため新しいパスワードを設定
<img width="524" alt="03_Web-login_02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/155c2b32-d16b-c022-68b7-0136d41c56b4.png">


**3) Licence 登録画面**
初回ログインではライセンスが登録されていないとこれ以上進めないため登録します
取得したライセンスファイルを upload して [OK] をクリック
<img width="705" alt="03_Web-login_07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/dc0a5c49-673c-6df3-9ae5-3a34578ea5c0.png">



**4) ログイン完了**
<img width="1278" alt="05_Web-Login_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/cd629d0e-37ba-7ab4-6d32-76c565453908.png">



## ● vNIC追加
LAN用 port2 が必要なためインスタンスに2つ目の vNIC を追加します

**1) アタッチされたVNIC**
[アタッチされたVNIC]画面にある[VNICの作成]ボタンをクリック
<img width="987" alt="06_vNIC-Attach01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/adafa521-a124-9a75-77c4-0042fb7587b1.png">


**2) VNIC の作成画面**
vNIC に割り当てる LAN 側アドレスと他NWへルーティングさせるため「ソース/宛先チェックのスキップ」にチェックを入れ、その他必要情報を以下のように設定
<img width="498" alt="06_vNIC-Attach02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9d7758d0-b054-4c4d-a136-cd813d0dcabd.png">


## ● 追加 vNIC を Fotigate の port2 として設定
**1) Interfaces 画面**
FotigateのWebコンソールにログインし、Network > Interfacesをクリックすると
ｖNICを追加するとport2として追加されているのでport2をダブル・クリック
<img width="914" alt="07-Web-vNIC-Config_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c02770c2-9588-55ad-c042-63b3f2ea2de8.png">


**2) Iport2 設定画面**
以下のように port2 に LAN 側アドレスと必要なセキュリティを設定し,[OK] をクリックして設定完了
<img width="886" alt="07-Web-vNIC-Config_02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/4e3194a4-e1d1-698f-c1cc-5675676d3585.png">


**3) Iport2 設定確認**
port2 に LAN側アドレスが振られていることを確認
<img width="890" alt="07-Web-vNIC-Config_03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/536ee412-65cf-3bfe-f63e-1f4121bb0fc4.png">


## ● port２のJumbo Frame設定
デフォルトである vNIC port1 はJ umbo Frame が設定されているため、追加した port２ も Jumbo Frame の設定を行います。

**1) FortiGate に CLI 接続**
FortiGate に ssh接続
```shell-session
[root@inst01 ~]$ ssh admin@172.24.0.250
	The authenticity of host '172.24.0.250 (172.24.0.250)' can't be established.
	ED25519 key fingerprint is SHA256:TyVGA7qLp8lk.
	ED25519 key fingerprint is MD5:39:ba:8c:78:7a:ee:97:59:0a:c6:.
	Are you sure you want to continue connecting (yes/no)? yes
	Warning: Permanently added '172.24.0.250' (ED25519) to the list of known hosts.
	admin@172.24.0.250's password:
Fortigate-inst01 #
```

**2) port1 MTU 確認**
MTU が 9000 であることを確認

```shell-session
Fortigate-inst01 # diagnose hardware deviceinfo nic port1
		Name:		 port1
		Driver:		 virtio_net
		Version:	 1.0.0
		FW version:
		Bus:		 0000:00:03.0
		Hwaddr:		 02:00:17:03:35:8c
		Permanent Hwaddr:02:00:17:03:35:8c
		State:		 up
		Link:		 up
		Mtu:		 9000
		Supported:	 1000full 10000full
		Advertised:
		Speed:		 10000full
		Auto:		 disabled
		Rx packets:		 92512
		Rx bytes:		 39920015
		Rx compressed:		 0
		Rx dropped:		 0
		Rx errors:		 0
		  Rx Length err:	 0
		  Rx Buf overflow:	 0
		  Rx Crc err:		 0
		  Rx Frame err:		 0
		  Rx Fifo overrun:	 0
		  Rx Missed packets:	 0
		Tx packets:		 87764
		Tx bytes:		 15207663
		Tx compressed:		 0
		Tx dropped:		 0
		Tx errors:		 0
		  Tx Aborted err:	 0
		  Tx Carrier err:	 0
		  Tx Fifo overrun:	 0
		  Tx Heartbeat err:	 0
		  Tx Window err:	 0
		Multicasts:		 0
		Collisions:		 0
```

**3) port2 MTU 確認**
MTU が port1 と異なる 1500 であることを確認

```shell-session
Fortigate-inst01 # diagnose hardware deviceinfo nic port2
	Name:		 port2
	Driver:		 virtio_net
	Version:	 1.0.0
	FW version:
	Bus:		 0000:00:05.0
	Hwaddr:		 00:00:17:00:b9:0b
	Permanent Hwaddr:00:00:17:00:b9:0b
	State:		 up
	Link:		 up
	Mtu:		 1500
	Supported:	 1000full 10000full
	Advertised:
	Speed:		 10000full
	Auto:		 disabled
	Rx packets:		 713
	Rx bytes:		 90029
	Rx compressed:		 0
	Rx dropped:		 0
	Rx errors:		 0
	  Rx Length err:	 0
	  Rx Buf overflow:	 0
	  Rx Crc err:		 0
	  Rx Frame err:		 0
	  Rx Fifo overrun:	 0
	  Rx Missed packets:	 0
	Tx packets:		 904
	Tx bytes:		 167225
	Tx compressed:		 0
	Tx dropped:		 0
	Tx errors:		 0
	  Tx Aborted err:	 0
	  Tx Carrier err:	 0
	  Tx Fifo overrun:	 0
	  Tx Heartbeat err:	 0
	  Tx Window err:	 0
	Multicasts:		 0
	Collisions:		 0
```

**4) port2 MTU 設定**
port2 の MTU を 9000 へ設定

```shell-session
Fortigate-inst01 # config system interface

Fortigate-inst01 (interface) # edit port2

Fortigate-inst01 (port2) # set mtu-override enable

Fortigate-inst01 (port2) # set mtu 9000

Fortigate-inst01 (port2) # end
```

**5) port2 MTU 設定確認**
port2 設定確認

```shell-session
Fortigate-inst01 # diagnose hardware deviceinfo nic port2
	Name:		 port2
	Driver:		 virtio_net
	Version:	 1.0.0
	FW version:
	Bus:		 0000:00:05.0
	Hwaddr:		 00:00:17:00:b9:0b
	Permanent Hwaddr:00:00:17:00:b9:0b
	State:		 up
	Link:		 up
	Mtu:		 9000
	Supported:	 1000full 10000full
	Advertised:
	Speed:		 10000full
	Auto:		 disabled
	Rx packets:		 713
	Rx bytes:		 90029
	Rx compressed:		 0
	Rx dropped:		 0
	Rx errors:		 0
	  Rx Length err:	 0
	  Rx Buf overflow:	 0
	  Rx Crc err:		 0
	  Rx Frame err:		 0
	  Rx Fifo overrun:	 0
	  Rx Missed packets:	 0
	Tx packets:		 907
	Tx bytes:		 167447
	Tx compressed:		 0
	Tx dropped:		 0
	Tx errors:		 0
	  Tx Aborted err:	 0
	  Tx Carrier err:	 0
	  Tx Fifo overrun:	 0
	  Tx Heartbeat err:	 0
	  Tx Window err:	 0
	Multicasts:		 0
	Collisions:		 0
```

## ● VCN Route Table 設定
VCN内のインスタンスがFotigateをGatewayとして通るように設定
<img width="497" alt="07-RoutingList_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/2a99768d-6436-3b48-9a0e-805ec32e2e85.png">

# ■ 動作確認
inst01がFotigateをGatwayとしてインターネットアクセスできることを確認

## ● インターネット接続確認
**1) ping 確認**
pingなどを使用してインターネットへ通じることを確認

```shell-session
[opc@inst01 ~]$ ping google.com -c 3
	PING google.com (172.217.168.238) 56(84) bytes of data.
	64 bytes from ams15s40-in-f14.1e100.net (172.217.168.238): icmp_seq=1 ttl=56 time=143 ms
	64 bytes from ams15s40-in-f14.1e100.net (172.217.168.238): icmp_seq=2 ttl=56 time=143 ms
	64 bytes from ams15s40-in-f14.1e100.net (172.217.168.238): icmp_seq=3 ttl=56 time=143 ms

	--- google.com ping statistics ---
	3 packets transmitted, 3 received, 0% packet loss, time 2002ms
	rtt min/avg/max/mdev = 143.628/143.653/143.691/0.310 ms
```

**2) traceroute 確認**
traceroute で Fortigate の IP(172.24.10.250) を通して Internet にでていることを確認

```shell-session
[opc@inst01 ~]$ traceroute google.com
	traceroute to google.com (172.217.168.238), 30 hops max, 60 byte packets
	 1  172.24.10.250 (172.24.10.250)  0.261 ms  0.213 ms  0.177 ms
	 2  152.21.194.9 (152.21.194.9)  0.308 ms  0.284 ms  0.260 ms
	 3  9.16.139.250 (9.32.154.250)  1.627 ms 4.16.140.10 (9.32.140.10)  0.389 ms 4.32.139.250 (9.32.154.250)  1.548 ms
	 4  * lag-135.bear1.Phoenix1.Level3.net (9.32.140.9)  1.021 ms  1.301 ms
	 5  * * *
	 6  Google-level3-100G.LosAngeles1.Level3.net (4.68.72.82)  16.900 ms  24.008 ms  16.804 ms
```

# ■ Appendix
## ● ライセンス権限取得
FortiGate を購入すると registration code が発行されるので、fortinet.com にアクセスしてライセンスを取得します

**1) support.fortinet.come アクセス**
https://support.fortinet.com にアクセスし "Register/Renew" をクリック
<img width="1209" alt="04_Lisence_01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/fa80a6e9-9dc7-d1d3-bfb5-7bc1ef7f0e96.png">


**2) Registration Wizard 画面**
registration code を記入し必要情報を登録してライセンス・ファイルを取得
<img width="1209" alt="04_Lisence_02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/410c0507-b680-fb9e-5b1e-9ad6b37389b2.png">



## ● 参考
　・ [Fortinet FortiGate-VM Next-Generation Firewall (NGFW) for OCI](https://cloudmarketplace.oracle.com/marketplace/en_US/listing/42416321)
　・ [FortiGate on Oracle Cloud Infrastructure](https://www.fortinet.com/content/dam/fortinet/assets/data-sheets/FortiGate_VM_OCI.pdf)
　・ [FortiGate / FortiOS OCI Cookbook](https://docs2.fortinet.com/vm/oci/fortigate/6.2/oci-cookbook/6.2.0/16658/about-fortigate-vm-for-oci)
　・ [FortiGate / FortiOS](https://cloudmarketplace.oracle.com/marketplace/en_US/listing/42416321)
　・ [Quickstart Deployment for OCI](https://docs.fortinet.com/document/fortigate-public-cloud/7.2.0/oci-administration-guide/16658/about-fortigate-vm-for-oci)
　・ [FortiCare Technical Support](https://www.fortinet.com/support/contact)