AzureでBarracuda NextG Firewall(Site to Site VPN編)

#はじめに
[前回の記事](http://qiita.com/yotan/items/08cc7af7f667e5a96b50)でAzure上で動く仮想アプライアンスであるNextG Firewall(以下NGFW)の構築を行いましたが、それにオンプレミス側に用意した物理的なNextG Firewall同士でSite to Site VPN接続を行ってAzure側の仮想マシンに安全に接続を行う設定を試してみました。

今回はオンプレミス側にはBarracuda NextG Firewall F380を使います。
既に[前回の記事](http://qiita.com/yotan/items/08cc7af7f667e5a96b50)のAzure側構築は済んでいる前提となります。

【宣伝】[pnop](http://www.pnop.co.jp/)は[バラクーダネットワークスジャパン](http://www.barracuda.co.jp/)さんの[クラウドパートナー](http://www.barracuda.co.jp/lp_cloud)です【大事】

#構成
非常に簡単な図で恐縮ですが、オンプレミス側に設置したF380をインターネットルーターとして設定を行い、さらにSite to Site VPN設定をしてAzure上のバーチャルアプライアンスであるNextG Firewallと相互接続します。
VPN接続には今回はBarracuda独自プロトコルであるTINA VPNを使って行います。

![image](https://qiita-image-store.s3.amazonaws.com/0/137436/6f1d7e4b-5217-6202-3739-5ed66d24fff7.png)


#オンプレ側準備
オンプレミス側は会社の事務所にF380を持ち込んでこっそり準備しました。

##ラックマウント
サーバールーム内の空いているラックに1U筐体であるBarracuda NextG Firewall F380をマウントします。(写真はイメージです)
![f380.jpg](https://qiita-image-store.s3.amazonaws.com/0/137436/928e7dcb-837a-201b-dc64-3f8fd3903acb.jpeg)


P1は既存のLANに接続。P8をフレッツ回線を使ってPPPoE接続するWAN側用として配線しました。

##インターネット接続
初期状態のF380の管理用IPアドレスは192.168.200.200ですので、最初は直接PCを接続してIPアドレスをオンプレミスの既存LANに繋げられるアドレスに変更します。

これらの操作はBarracudaのサイトにある[Getting Started](https://campus.barracuda.com/product/nextgenfirewallf/article/NGF62/GettingStarted/)を参考に変更するのが宜しいです。

簡単に説明すると、管理ツールから「CONFIGURATION」「Network」「IP Configuration」から変更します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/30b514a3-265a-c037-1070-4ccac5f08098.png)

PPPoEによるインターネット接続も同じ階層の「xDSL/DHCP/ISDN」メニューからPPPoEの接続設定を行います。
以下の画面は設定参考例ということで。

新たな接続設定を追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/9a493055-8d99-0f44-1606-2e066120f5e9.png)

接続方法はPPPoEで、P8にWAN側のケーブルを接続している場合の設定です。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/6d0de7f4-dd09-c658-841f-9d695492bb84.png)

プロバイダから払い出されたIDとパスワードを設定しています。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/9bd5ea0d-1a9b-2742-cfb7-a02b0e7227ea.png)

無事インターネット接続が完了しているとリンク状態がグリーンになります。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/8d6556f9-3840-0a16-9bce-f0c77e623125.png)

こちらまでの設定は本記事の本筋とは外れているため詳細についてはBarracudaサイト及び製品付属の説明書を確認するのが宜しいかと思います。

##F380側にVPNサービスを追加
初期状態のF380にはVPNサービスがアサインされていないので、管理ツールから追加を行います。

「CONFIGURATION」「Virtual Servers」「S1」「Assign Service」を右クリックして「Create Service」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/9272d030-d7f4-5ed1-6d0c-876d57e16de4.png)

Service Nameは適当に、Software moduleに「VPN Service」、Service Availabilityには「First+Second IP」を選択して、「Finish」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/65f31227-a417-143d-747d-4d6a5e616ec9.png)

「Activate」をクリックして有効化します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/4fc87af3-de9a-6fe8-06bd-2e70ec0ed27b.png)

確認画面でも「Activate」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/438d68c2-7f39-f8b0-6cdc-e68a2c7a7b32.png)

無事追加されました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/813244b1-841c-c325-a404-914208bcfa12.png)

#Site to Site接続設定

ネットワーク条件を再度確認します。
値は私が検証実施時に使用したものであくまで参考です。

【オンプレミス側】
VPNGW IP Address : 124.41.XX.XX (F380のWAN側IPアドレス)
ローカルサイトのネットワークセグメント : 192.168.245.0/24

【Azure側】
VPNGW IP Address : 52.170.222.230 (F380のWAN側IPアドレス)
ローカルサイトのネットワークセグメント : 10.0.0.0/16

##F380側VPN設定
以下の作業はオンプレミス側のF380に管理ツールから繋げて実施します。

「CONFIGURATION」「Configuration Tree」から「Site to Site」をダブルクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/37d43873-86ee-0270-2343-1ec412e381b3.png)

「Lock」ボタンをクリック後に、「TINA Tunnels」タブ上の一覧から右クリックして「New TINA tunnel」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7a1be04e-fd6d-2953-2bc7-7c1142608f6a.png)

Name欄には「Onpre2Azure」など適当に。
上のタブからは「Basics」を選択後、Transportを「UDP&TCP」に設定します。
左下のタブは「Local Network」を選択後、Call Directionを「Active」に、Network Addressには自身のセグメント情報として「192.168.245.0/24」を「Add」ボタンで追加します。
右下のタブからは「Remote Networks」を選択後、Remote Networkに相手先(Azure側)のセグメント情報として「10.0.0.0/16」を「Add」ボタンで追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/55892bd7-ab64-f2a0-cc89-bce4dbf19741.png)

左下のタブから「Local」を選択後、IP Address or Interface Usedに「Dynamic (via routing)」を選択します。
右下のタブから「Remote」を選択後、Remote Peer IP AddressにAzure側のVPNGW IP Addressを入力して「Add」ボタンで追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f0f2b665-dbc9-26d3-47a0-6a4a6bf410c5.png)

左下のタブから「Identify」を選択後、Ex/Importプルダウンメニューから「New 2048-Bit RSA Key」を選択して、新たな証明書を作成します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/cb81c04b-1084-e4fb-6e30-bb84f53aeed5.png)

続いてEx/Importメニューから「Export Public Key to File」を選択して、先ほど作った証明書をローカルPCの適当なフォルダに保存します。
こちらの証明書ファイルは後程Azure側のVPN設定時にインポートします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/ed14416d-8dc1-4bc5-e0c1-4c8d13316ab1.png)

とりあえず「OK」ボタンを押してF380側のVPN追加画面を閉じます。
警告として、相手側のキーが設定されていないのでアクティブにならない旨のダイアログが出ますが、こちらのリモート側証明書ファイルは後程設定します(今はまだ作っていないので)
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/adaf9497-31f4-fbf9-e7d5-8d990ebadb1a.png)

##Azure側VPN設定
以下の作業はAzure側のNGFWに管理ツールから繋げて実施します。

「CONFIGURATION」「Configuration Tree」から「Site to Site」をダブルクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/53db01e1-41e6-8c47-bb90-07087c9d3f22.png)

「Lock」ボタンをクリック後に、「TINA Tunnels」タブ上の一覧から右クリックして「New TINA tunnel」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/081ac5ed-8bc7-fbd6-61cf-2ce914f3d849.png)

Name欄には「Azure2Onpre」など適当に。
左下のタブは「Local Network」を選択後、Call Directionを「Passive」に、Network Addressには自身のセグメント情報として「10.0.0.0/16」を「Add」ボタンで追加します。
右下のタブからは「Remote Networks」を選択後、Remote Networkに相手先(オンプレミス側)のセグメント情報として「192.168.245.0/24」を「Add」ボタンで追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7f08fab0-7723-8bf1-7626-14fa640a141c.png)

左下のタブから「Local」を選択後、IP Address or Interface Usedに「First Server IP」を選択します。
右下のタブから「Remote」を選択後、Remote Peer IP Addressにオンプレミス側のVPNGW IP Addressを入力して「Add」ボタンで追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/3ff6155a-6d7e-243b-2e3e-95d217f3f61a.png)

左下のタブから「Identify」を選択後、Ex/Importプルダウンメニューから「New 2048-Bit RSA Key」を選択して、新たな証明書を作成します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/3a5ea329-2c6b-44aa-215a-28626f4be891.png)

続いてEx/Importメニューから「Export Public Key to File」を選択して、先ほど作った証明書をローカルPCの適当なフォルダに保存します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/a6f60cc9-5998-1ff8-d1d3-a227597e28cd.png)

右下のタブから「Peer Identification」を選択後、Ex/Importメニューから「Import from File」を選択して、前章で作成したオンプレミス側の証明書ファイルを指定します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/35679415-d9f0-9985-f574-23486e573df3.png)

インポートが完了したら、「OK」ボタンをクリック。TINA Tunnel追加画面も「OK」ボタンをクリックして閉じます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7e714d9a-9abb-74ab-f3be-3a821449f931.png)

無事Azure側のNGFWにはTINA VPNの設定追加ができました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/29c45997-1b55-80ee-0b50-db5322b50cc4.png)

最後に「Send Changes」「Activation Pending」「Activate」をクリックして変更を反映させます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f77e1005-54e3-160f-a2f1-bb3c4b69dc60.png)

##F380側VPN設定(残り)
以下の作業はオンプレミス側のF380に管理ツールから繋げて実施します。

Site to SiteのTINA Tunnelの一覧から先ほど作成した接続設定を右クリックして、「Show/Edit」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/8453f531-7676-cf9b-7add-f9003472c502.png)

右下のタブから「Peer Identification」を選択後、Ex/Importメニューから「Import from File」を選択して、前章で作成したAzure側の証明書ファイルを指定します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/c3cc0fc6-96b2-d0ce-da39-c80fdb39d63b.png)

インポートが完了したら、「OK」ボタンをクリック。TINA Tunnel追加画面も「OK」ボタンをクリックして閉じます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/235b559b-702c-312b-f4ac-628856588338.png)

最後に「Send Changes」「Activation Pending」「Activate」をクリックして変更を反映させます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/481c4624-3379-031a-cb57-d259aa3ea496.png)

##ステータス確認
オンプレミス側、Azure側どちらでもよいので管理ツールから「DASHBOARD」「VPN」の画面を開くと、「SITE TO SITE TUNNELS」の所でActiveとなっているトンネルが「100%(1)」となっており一本正常に接続されていることがわかります。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/ab45b798-6c4d-a8c6-d1be-c83c25cdce31.png)

#Firewall設定
Site to Site VPNの疎通を通すように、Firewallの設定を変更します。

##F380側Firewall設定
以下の作業はオンプレミス側のF380に管理ツールから繋げて実施します。

「CONFIGURATION」「Configuration Tree」から「Forwarding Rules」をダブルクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/95abe25e-5fd1-ff68-2ef5-8a4e74d64308.png)

左側のメニューから「Networks」を選択後、「Lock」ボタンをクリック、さらに「＋」をクリックして新たなNetwork objectを追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/d642c33c-da7f-7260-9436-fa5883a8b9f3.png)

追加するのは、以下のふたつです。

【OnpreSegmenbt】
Type:Single IPv4 Networks
Name:OnpreSegment
Address:192.168.245.0/24
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f0c6b302-4f39-7b2f-1d13-c6e986bf2a88.png)

【AzureSegmenbt】
Type:Single IPv4 Networks
Name:AzureSegment
Address:10.0.0.0/16
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/2a369558-bdc7-5c69-1638-7c1edc535089.png)

Network objectsに追加した2つが表示されていることを確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/63affe93-7dfc-8a28-115a-7f12e193dced.png)

続いて「Access Rules」から既存の「VPN-SITE-2-SITE」の行を選択後、鉛筆マークのアイコンをクリックして編集モードに入ります。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/2d4b0928-6dcc-3f3f-7bce-485a22496151.png)

「BI-Directional」にチェックをつけ、「Deactive Rule」のチェックを外します。
Sourceに「OnpreSegment」、Destinationに「AzureAegment」を設定して、「OK」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/6fd2bcfc-9cdc-498e-3ed7-8ded7cc21614.png)

最後に「Send Changes」「Activation Pending」「Activate」をクリックして変更を反映させます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/8a3a93fd-17dd-751e-dd00-517e88b300b9.png)

##Azure側Firewall設定
基本操作は前章のF380側のFirewall設定と同じです。

Network Objectとして先と同様に二つ作成します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/047e4a7b-04c8-533f-dd70-6776752ffff9.png)

Firewallルールの「VPN-SITE-2-SITE」ではSourceとDestinationの指定が先のF380側の時と逆になっているのに注意して設定してください。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/ad37515d-78de-4037-2d21-aa5a4da42eb7.png)

#接続確認
オンプレ側のPC(192.168.245.13)からAzure側で立ち上げっているサービスサーバ(10.0.1.4)のIISに接続してみます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/e7a784f0-d6b7-e5e1-af2d-3bea60f45503.png)

同じくオンプレ側のPCからサービスサーバにRDP接続もプライベートIPアドレス指定で無事接続することができました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/3fb4a4fd-14f5-2a03-f3ee-836ecada7c0d.png)

接続中は管理ツールから「FIREWALL」「Live」で現在の接続状態が見られます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/889b80ef-584d-f31d-783d-29e141e757e1.png)

#おわりに
今回はBarracuda NextG Firewallの機能であるTINA VPNを使ってAzureと相互接続しましたが、本エントリーで基本的な設定手順は網羅できたと思います。

NextG Firewallは非常に高機能であり、本格運用環境に乗せるためにはいろいろと設計・構築が必要かと思いますが、今回までの範囲であればそれほど困難ではなくテストできたと思います。

VPN接続方法として、IPsec IKEv2も選べるため、Azure側を標準のVPN Gatewayを使っての接続もできると思います。
また時間があれば別エントリーで紹介したいと思います。