GNS3＋Virtual Box＋FortiGateでFortiGate検証環境を作成

#### やりたいことはシンプルでした。FortiGateのコマンドと動作が検証できる環境を端末に立てる。

最初は手早く簡単なパブリッククラウド（Azure・AWS）のオンデマンドVMを考えていたが、以下の問題でやめました。

- ファームウェアのバージョンが6.xしかない。
- ファームウェアを「6.x」から「5.x」に下げると、ライセンスがなくなってGUIにログインできなくなったり、CLIでfactoryresetも表示されなくなってしまう。

- お金がかかる（ライセンス＆VM運用費）。大した金額ではないけどたまったら痛い。商用じゃないし・・・

#### ほんなローカルで何とかしよう
最後まで中古の実機となやんだが、お家に荷物がをこれ以上増やしたくなかった
GNS3＋Virtual Box＋FortiGateでFortiGate検証環境を作成

▼▼▼完成イメージはこんな感じ▼▼▼
![result2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/0f5b25e1-f7c2-85ed-db22-dcd1eefe090a.png)

#### 方法

#### １．Virtual Boxのインストール

自分は[Version 6.1.14 r140239 (Qt5.6.2)](https://www.virtualbox.org/wiki/Download_Old_Builds)を使いました。(21/02/13時点で6.1.18が最新)最新のだとあまり資料とかがないのを懸念して、まだメンテナンスもしてくれているので。

- インストール方法は特に設定を変えていないので省略

###### 
#### ２．GNS3インストール

[GNSはVersion 2.2.17](https://gns3.com/software) 特にバージョンへのこだわりはありません。
![GNS download.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/ce6e81fc-0b5d-0289-c77c-875dad7a3dde.png)


##### ３． GNS3 VM（イメージ）ダウンロードとインポート

「GNSをダウンロードしたサイト」の下にあるVMのイメージをダウンロード。イメージ（GNS3 VM）をVirtual Boxからインポート、起動。

3-1）Zipを解凍したあと、Virtual Box>[File]>[Import Virtual Appliance]

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/cc07989e-9c85-96d0-3eed-f96bd6b1835e.png)

3-2）ローカルからVMイメージ選択>[Next]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/b4a58a41-d9bc-4bd2-a443-cd90892e86d9.png)

3-3）特に編集することなく[Import]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/f1ee7d6a-9c4f-439d-5826-3d04328f0eae.png)

3-4) VMを右クリック>[Start]

#### ここからいろいろerrorが続出

error.1 自分の場合はVirtual BoxからGNS3 VMを起動させるときこんなエラーが出て起動できず、
```
Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #<interface番号>'
```

Virtual Box関連のネットワークアダプターの設定変更で解決

```
ネットワークと共有センター" を開く 
"アダプターの設定の変更" を開く 
"VirtualBox Host-Only Network #<interface番号>" のプロパティを開く
"VirtualBox NDIS6 Bridged Networking Driver" にチェックを入れる  ← 既に入っていたので未実施
"インターネットプロトコル バージョン6(TCP/IPv6)" のチェックを外す  ← 実施
[OK] を押し、プロパティウィンドウを閉じる ← 実施
"VirtualBox Host-Only Network #N" の右クリックメニューで「無効」にする ← 実施
再度、「有効」にし直す
```
[参考したポスト](https://qiita.com/ExA_DEV/items/ae80a7d767144c2e1992)

GNS3との連動
GNS3>Edit>Preferences>GNS3 VMから以下の通り設定
※Refreshは偶にVMが見えないときおす。
![Gns3 Preference.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/88e9a8cb-536b-0ac5-47fa-d004e597efb5.png)

GNS3 右下にローカル以外にGNS3 VMが立っていれば成功。
もし、点灯していない場合はVirtual Boxで立ち上げる。赤の場合はエラーなのでもう一丁頑張り。
赤の上にマウスカーソルをもっていくとエラー内容がでうのでウェブで検索かけたら出るはず。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/90137a5a-cece-375a-aaf0-94417f91108f.png)


error.2 GNSからFortiGateを起動させるとき、KVMが利用できないと叱られた。

```
error while starting <hostname>: KVM acceleration 1cannot be used (/dev/kvm doesn't exist). 
It is possible to turn off KVM support in the gns3_server.conf by adding enable_kvm = false to the [Qemu] section.
```


→ Windows10＆Virtual Boxではよくあるらしい（VMwareだったら楽ちん）Device Guardで「virtualization-based security」を無効する方法などがあったが、
自分は「gns3_server.confでKVMサポートをオフ」かつ、「KVMを要求しない」方法で解決。

```
【Virtual BoxのGNS3 VM（GNSサーバ）に接続】

GNS3 VM：$ 

echo コマンドで「cat .config/GNS3/2.2/gns3_server.conf」に以下を追加
(例 echo [Qemu] >> .config/GNS3/2.2/gns3_server.conf)

[Qemu]
enable_hardware_acceleration = False
require_hardware_acceleration = False
```

fortigateの起動
１）まず、新しいプロジェクトを作りましょう。File＞New Blank Project＞Name入力（任意）＞OK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/524c8d06-1433-6635-f9b7-b5b192b869bb.png)

２）GNS3ウェブサイト＞Marketplace＞fortigate applienceをダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/473af718-8278-b658-3111-c55b305ea10d.png)

３）GNS3>File＞Import Applianceクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/aca2ef6c-7439-12a3-06ec-20539c782e2e.png)

４）Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/065abad5-6e4f-52e7-00be-ca5867a511be.png)

５）qemuは基本>Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/5ac4cbf9-361a-98c2-2eb0-71e485601990.png)

６）起動に必須なパラメータインポートおよび選択
![firmware.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/d3657fc1-3ac2-fafb-a71e-6215a99b3b75.png)

Fortigateを起動させるため必要なのは２つ。ファイルがそろったら、バージョンクリックして必要なのを[Import]して起動。条件が満たされたら「Ready to install」がでるので[Next]押して作成。

- ファームウェア (ご自分でよういするか、青のボックス押してダウンロードをする※Fortiのアカウント必要)
- empty30G.qcow2(https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty30G.qcow2/download)

7）project＞Browse Security Device＞Fortigate 5.x を右側に配置、右クリック[start]で開始。
![スクリーンショット (107).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/f37f7c81-8867-f9c3-9713-c5fb883e2d3f.png)


やっとイメージ通り完成！！
![result2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163986/0f5b25e1-f7c2-85ed-db22-dcd1eefe090a.png)

###### 次はちゃんとしたFortigate以外にネット環境を追加して通信をやってみようとおもっています。

###### 参考サイト
https://www.linkedin.com/pulse/fortigate-inside-gns3-cli-web-access-issa-itani/
https://github.com/GNS3/gns3-server/issues/1815