AzureとBarracuda CloudGen FirewallでSite to Site VPN接続

#はじめに
Azure標準のVPNゲートウェイを使って、Barracuda CloudGen Firewall(以下CGFW)とSite to Site VPN接続を試しました。

1年半程前に「[AzureとBarracuda NextG FirewallでSite to Site VPN接続](https://qiita.com/yotan/items/1a1d99d61128473a2cf1)」を書きましたが、ファームウェアも7.2系に上がり(当時は7.0系)、名前も「NextGen Firewall」から「CloudGen Firewall」になっていますので、再エントリします。

今回はオンプレス側に実機としてF18を使用してインターネット接続にはPPPoEによるプロバイダ(i-revo)にて接続を行っており、実際の小規模オフィス環境に類似した構成になっていると思います。

![IMG_6577.jpg](https://qiita-image-store.s3.amazonaws.com/0/137436/af138237-a365-0124-2d48-de69cc31d5ac.jpeg)


もともとCGFWは「[サイト間 VPN ゲートウェイ接続用の VPN デバイスと IPsec/IKE パラメーターについて](https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-about-vpn-devices?WT.mc_id=AZ-MVP-5002499)」にかかれている通り「検証済みのVPNデバイス」になっているため安心して利用可能です。

#構成
以下の格好悪い図ですが、Azure側は192.168.220.0/24の仮想ネットワーク内にGatewaySubnetとdefaultを作成。仮想ネットワークゲートウェイとLinux(CentOS)サーバを配置しておきます。

オンプレミス側は専用セグメントとして192.168.127.0/24を作成してそちらにCGFW(F18)を配置しており、実際のローカル環境(192.168.245.0/24)との間はローカルルーターをかませています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/12eb714c-f196-90aa-30b8-4eaac842cfca.png)

今回はCGFWは2019/2/1時点で最新の以下のファームウェアを使用しました。必要に応じてファームウェアのアップデート(+Hotfixの適用)を行ってください。

Firmware Version : 7.2.3-161
+ Hotfix 896
+ Hotfix 897

![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/6b1cc328-2bee-0d6a-70bc-a4448b841bd2.png)



#オンプレ機器の準備
今回はF18を利用します。詳細手順は省略しますが、オンプレ側の適切なネットワーク配下で内部のルーティング等が正常に設定されており、管理ツール(FirewallAdmin.exe)から設定変更が行える必要があります。

この先の説明では、管理ツールの具体的な使用方法は割愛します。各種設定追加・変更の操作について基本的な事は知っている前提となります。

#Site to Site VPN設定
##Azure側のVPN設定

適当なリソースグループを作成して、仮想ネットワークとしては192.168.100.0/24の空間を作成します。
default(192.168.220.0/26)の他にGatewaySubnet(192.168.220.64/28)も作成しておきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/b00aabc8-fa1d-fdc8-0481-1f3794e26362.png)

仮想ネットワークゲートウェイはVPN用で作成。SKUは今回は検証目的なので安価なBasicを利用します。
仮想ネットワークゲートウェイのデプロイには数十分かかるので気長に待ちます。作成完了後、パブリックIPアドレスは控えておきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/ce85fb0c-cf90-ab0b-24bc-ad6d056d81f6.png)

ローカルネットワークゲートウェイは接続先の情報(CGFW側)を入力して作成します。
IPアドレスはCGFWのパブリックIPアドレスを、アドレス空間には192.168.127.0/24と192.168.245.0/24を設定します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/ed00be5a-aa58-1b20-3a12-e1b0129a2654.png)

接続(Connection)も先に作成しておきます。
先に作成した仮想ネットワークゲートウェイ、ローカルネットワークゲートウェイの情報を元に作成します。
作成後、状態が「不明」、「接続中」になりますが、今はCGFW側のVPN設定が済んでいないためこのままでOKです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/9d8c6dfa-af77-093c-b9ea-95b4ce34eff7.png)

##CGFW側のインターネット接続設定
こちら、詳細は省略しますが、適切な手順でインターネット接続を行います。
私はF18のp4ポートにフレッツ光のONUを接続して、PPPoEによる接続を行っています。
WAN側のグローバルIPアドレスは固定化されている必要があります。お使いのプロバイダのプランにて固定IPオプションなどがあればそれを有効化します。
[CONTROL]->[Network]にてインターネットへの接続が正常に行われていることを確認します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/f1bcfdaf-cec4-0946-8056-b1caf3b0a7a0.png)

##CGFW側のVPN設定
クライアントPCからFirewallAdminのexeファイルを実行して、CGFWの管理画面にログインします。

[CONFIGURATION]->[Service Properties - VPN(VPN Service)]画面にて、「Enable Service」が有効になっていない場合は「Yes」に変更します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/2842556c-b552-e177-c659-10ae7a2817df.png)

[CONFIGURATION]->[VPN Settings - VPN(vpn)]->「Click here for Server Settings」画面内の[Advanced]タブにて、「Use IPSec Dynamic IPs」を「Yes」にします。こちらは**PPPoEなどでインターネット接続している場合には必須**の設定です。
もし「Start IKEv2」がNoのままの場合は「Yes」に変更します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/a093c0ef-150d-39d6-80de-57197e0b40f5.png)

[CONFIGURATION]->[Site to Site - VPN(vpn)]画面から新しい接続設定を追加します。

|項目|設定名|設定値|備考|
|:-----------------|:------------------|:------------------|:-----|
|General|Tunnel Name|azurevpn|なんでも良い|
||Enabled|Yes|Default値|
||Initiates Tunnel|チェック||
||Restart SA on Close|チェック||
|Authentication|Authentication Method|Pre-shared key||
||Shared Secret|(Azure側の接続設定時に指定した共有キー)||
|Phase 1|Encryption|AES256||
||Hash|SHA||
||DH-Group|Group 2||
||Proposal Handling|Strict|Default値|
||Lifetime(seconds)|28800|Default値|
|Phase 2|Encryption|AES256||
||Hash|SHA||
||DH-Group|Disable PFS||
||Proposal Handling|Strict|Default値|
||Lifetime(seconds)|3600|Default値|
||Traffic Volume(KB)|unlimited|Default値|
|Network Settings|IP Version|IPv4|Default値|
||One VPN Tunnel peer Subnet Pair|未チェック|Default値|
||Universal Traffic Selectors|未チェック|Default値|
||Force UDP Encapsulation|未チェック|Default値|
||IKE Reauthentication|未チェック||
||Next Hot Routing|0.0.0.0|Default値|
||Interface Index|0|Default値
|Network Local|Local Gateway|0.0.0.0||
||Local ID|空|Default値|
||Network Address|192.168.127.0/24, 192.168.245.0/24|実際の使用環境に合わせて設定|
|Network Remote|Remote Gateway|xx.xx.xx.xx|Azure側のVPN GWのIPアドレス|
||Remote ID|空|Default値|
||Network Address|192.168.220.0/24|実際の使用環境に合わせて設定|
|Dead Peer Detection|Action|Restart|Default値|
||Delay(seconds)|30|Default値|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/a90f1be7-b495-d5dc-0438-71638d7435dd.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/3044c682-c9f3-a080-7add-93584e6d9521.png)

##VPN接続確認
[VPN]->[Status]画面にてトンネルの定義が追加されており、ステータスが「ACTIVE」になっていれば接続完了です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/3dff8747-5d56-3c38-6226-6f55d38abd69.png)


Azureポータルからも接続(Connection)の状態を見ると「接続済み」に変わりました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/3cb6c9a5-b5d3-6c02-fa33-8e3878bbe8e3.png)


##CGFWのFirewall設定
[COFIGURATION]->[Forwarding Rules]にて、デフォルトで「LAN-2-VPN-SITE]というエントリがあります。こちらの「Deactivate Rule」のチェックを外してルールを有効化します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/08c94a2f-e6ab-163f-d480-77c47da6b4ea.png)

無事有効化されました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/e667f212-0cbb-74c8-ce90-5915db9e4f59.png)


#接続確認
予めAzure側(192.168.220.0/24)上にLinux Serverをデプロイして、Apacheをインストールしておきました。

```sh
$ sudo yum install httpd –y
$ sudo systemctl start httpd.service
```

オンプレミス側のPCのブラウザからでhttp://192.168.220.4/ でAzure側のApacheに接続出来たことを確認します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/01a68872-dea7-ff4b-1688-1341fb6150a7.png)

CGFW管理画面からも[FIREWALL]->[Live]で該当の通信が正常に通っていることが確認できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/137436/b8642566-9f02-cc84-893a-a4d1e33fbc38.png)


#おわりに
CGFWはAzureとSite to Site接続をMSが確認済みであるため、特に迷うこと無くお試しが出来ました。
一点注意としては、VPN Settingにて「Use IPSec Dynamic IPs」を「Yes」にしないと、一度VPN接続が成功してもSite to Siteの疎通が止まると20秒くらいでタイムアウトして切断されてしまうところです。こちらは注意しましょう。