AzureでBarracuda NextG Firewall(構築編)

#はじめに

※最新のHA構成構築記事はこちら↓※
Azure上にBarracuda CloudGen FirewallをHA構成で構築
[https://zakki.nya-n.net/?p=442](https://zakki.nya-n.net/?p=442)
※最新のHA構成構築記事はこちら↑※


バラクーダネットワークスジャパンさん(以下Barracudaさん)から、Azure上で動く仮想アプライアンスであるNextG Firewall(以下NGFW)を試用させていただく機会を頂いたので、早速使ってみました。
今回はとりあえずAzureに構築編です。

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

#構成
以下の格好悪い図ですが、DMZゾーンのサブネットにNGFWを配置して、サービスセグメントにあるサーバ(SVSV)は直接インターネットとのアクセスはできない構成を作ります。

インバウンドもアウトバウンドも全てNGFWを経由させます。

無論NGFW側の通信を転送する機能が必要不可欠ですが、Azureで構成する際には、Azureの機能として「NICのIP転送」「ユーザ定義ルート」などを正しく定義していきます。

![image](https://qiita-image-store.s3.amazonaws.com/0/137436/cc3e716d-8e0d-5759-360e-578df9b06c0e.png)

NGFWとAzureの設定としては、以下の図のようにserviceサブネットからのトラヒックは全てdmzサブネットのNGFW01に転送させます(Azureの機能)

![image](https://qiita-image-store.s3.amazonaws.com/0/137436/4e849fa4-c6a0-c1ce-0410-ccae60460a62.png)

他にインターネット側からNGFWに対してRDPの接続リクエストが来たら、serviceサブネット上のSVSV01のサーバに転送します(NGFWの機能)

![image](https://qiita-image-store.s3.amazonaws.com/0/137436/81d64e1d-1147-d708-8693-a72d9b6730f2.png)


#構築の流れ
以下の流れで説明していきます。

1. 仮想NWの作成
2. NGFWのデプロイ
3. ルートテーブルの作成
4. IP転送の設定
5. NSGの設定
6. NFGWの設定(ライセンス登録)
7. サービスセグメント用サーバのデプロイ
8. NGFWの設定(フォワード設定)
9. 動作確認

#仮想NWの作成
まずは先ほど図で説明の通りに事前に適当なリソースグループを作成して、その中に仮想ネットワークを作成しておきます。

今回はアドレス空間としては10.0.0.0/16、dmzサブネットは10.0.0.0/24、serviceサブネットは10.0.1.0/24で作成しました。

![image](https://qiita-image-store.s3.amazonaws.com/0/137436/32a344a2-0fc9-49f8-e423-277054cd6f64.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/137436/5caf19bd-9266-952c-c5ee-a2cde0456cc6.png)

#NGFWのデプロイ
新規のリソース作成でフィルターに「barracuda f-series」などと入れるとかなり絞り込まれます。
一覧から「Barracuda NextGen Firewall F-Series (BYOL)」を選択して、デプロイを進めます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/a685d31b-36d9-48a9-e74a-b26795a60801.png)

「基本」設定ではVMディスクの種類はHDDに変更しました。
後はお好みで。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/e5741c49-5210-56a0-06cb-502ccf191274.png)

「サイズ」設定はBarracudaさんから払い出されているライセンスにあったコア数のサイズを選択します。
私は1コア用の一番小さなライセンスを試用しますので、Standard A1を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/a85f2493-110a-af48-247c-9c7587ee179e.png)

「設定」では仮想ネットワークとサブネットを先に作成した仮想ネットワークのdmzサブネットにするのを忘れないようにします。
管理ディスクに使用、監視の有無はお好みで。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7955ff5d-e454-857d-5d57-c6c9a68707f0.png)

「概要」で最終確認をします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/93c0d622-4b83-c535-85c0-914b0de759ca.png)

「購入」でBarracuda側の料金が0円/時であることを確認して、最後にOKでデプロイ開始します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/ca7f40d4-6b87-821e-8967-7a7bed94c549.png)

無事作成できたら、パブリックIPアドレスは控えておきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/3c956456-3c12-bb38-b74b-8ab882b43edb.png)

#ルートテーブルの作成
リソースの追加でルートテーブルを選んで新規作成します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/0e388af0-dfc7-2101-8f4f-586af69165f3.png)

まずはデフォルトルートの追加です。
「ルート」メニューの「＋追加」を選びます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/aecafedc-6c80-bf67-8cb6-37dd3ea143db.png)

ルート名は適当に、アドレスプレフィックスには全てのトラヒックを対象とするため「0.0.0.0/0」を指定します。
次ホップの種類として「仮想アプライアンス」を選択後、IPアドレスにはNGFWのプライベートIPアドレスである「10.0.0.4」を指定します。
最後に「OK」で適用です。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7ffa8c0a-acd0-e7dd-78fb-f1029968604c.png)

無事追加されました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/1e20ecc1-bd4d-9f9a-326d-0a02b76a72e1.png)

続いて「サブネット」メニューから「＋追加」を選びます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/2e19d484-5880-4f82-2b8b-16edfe7a7afc.png)

強制ルーティングの対象とする仮想ネットワークのserviceサブネットを選択して、登録します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/92e12a69-9439-4a18-2278-67f9fa2d5bb2.png)

無事追加されました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/eb377ce9-a67a-cf77-b943-595417e7429e.png)

#IP転送の設定
NGFWサーバのNICの設定を変更して、IP転送が可能にします。ついでにIPアドレスも固定化します。

NGFWで使っているNICリソースを選択して、「IP構成」メニューを開きます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/9faba040-64b5-0594-8f2c-de9ae238726a.png)

IP転送を「有効」に設定します。
さらにipconfig1のリストをクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/3ddf9467-5517-7250-b9d8-ccc45692f67c.png)

プライベートIPアドレスの割り当て方法を「静的」に変更。
IPアドレスには元と同じく10.0.0.4のままにして、「保存」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/6d8743eb-14e3-d88b-1590-b892615c17e6.png)

#NSGの設定
NGFWに設定されているNSGにRDP(3389)の接続を許可します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f6f9e9cb-599b-eb45-9c9c-3314c90140b7.png)

これでAzure的にはNGFWでRDP接続を受けることができますので、あとは中のFirewall機能でserviceサブネット側のサーバに転送できればOKですね。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/d1c144d4-a95f-d90a-92cc-829db4f52d85.png)

#NFGWの設定(ライセンス登録)
クライアントPCからhttp://NGFWのIPアドレス/ に接続します。
トップ画面が表示されたら、NextGenAdmin.exeをダウンロードして、クライアントPCで実行します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/4e77374e-f512-f390-3ef7-d9b222040cda.png)

アプリケーションの最初の画面で、ログイン先には「Firewall」、IPアドレスにはNGFWのIPアドレス、Usernameは「root」、パスワードはNGFWのデプロイ時に指定したパスワードを入力して「Sign in」ボタンをクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f1ae843b-1dcc-cfe3-bb28-17e613fe539b.png)

初回ログイン時のみ、接続してよいか確認ダイアログが表示されるので「Trust」をクリックして先に進みます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/559a3712-31af-9ac3-84ad-dd4123bac470.png)


初期画面が表示されたらライセンス入力します。
「LICENSE」の「Activation State」欄の「→」をクリックして、ライセンストークン入力画面に進みます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f408a643-138a-9a61-5699-f44ae3492eff.png)

Barracudaさんから払い出されたライセンストークンを入力して「OK」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7504c43d-8739-71a5-a607-77abd0cf1b27.png)

Product Activation画面では、利用者の情報を入力します。
使用許諾のテキストはスクロールバーを最後まで移動させます。
Acceptチェックを設定後、「Activate」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/aa3fdd2f-6ccc-a6ae-b54e-33999086d26f.png)

無事登録が終わると、License StateとActivation Stateのアイコンが緑(もしくは橙)に変わります。これでライセンス登録は完了です。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/dfd3929c-8958-f25a-9390-75d047cb97d8.png)

#サービスセグメント用サーバのデプロイ
serviceサブネット上にRDP接続確認用のWindows Serverを構築します。
Windows Server 2012でも2016でも構いません、サイズも適当で。
私は適度なパフォーマンスでお財布にも優しいA2_v2で作成しました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/20abc369-250f-f08f-60a1-9835b27fb260.png)

本当はこちらのサーバにはパブリックIPアドレスは不要(NGFW経由でアクセスするため)なのですが、動作確認用に付与しています。

こちらのパブリックIPアドレスで念のためRDPして、プライベートIPアドレス等を確認しておきます。
10.0.1.4であることが確認できました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f11b928f-ac52-1042-8ebd-7560bea3925a.png)

#NGFWの設定(フォワード設定)

##Network Objectの作成
これは必須ではないのですが、先にNetwork Objectを作っておいて、これをFirewallルールのsource,destinationの指定に使います。

「CONFIGURATION」メニューのツリーから「Box>Virtual Servers>S1 0 [VFC2]>NGFW(Firewall)>Forwarding Rules」をクリックします。
右側のペインのサーバーをダブルクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/4ee31f4b-c44e-9155-389e-17db9c497421.png)

Firewall ObjectsからNetworksをクリックして、既存のNetworkObject一覧が表示されたら、「Unlock」ボタンをクリックして編集準備に入ります。
右上の「＋」をクリックしてNetwork Objectを追加していきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/418065f6-ef32-5351-a87c-da12eb76a6c5.png)

以下の画面例に従って、4つのNetwork Objectを作成しておきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7231de58-39f8-ff4c-4d34-0a1c8d9c2beb.png)


|Type|Name|内容|
|:--|:--|:--|
|Single IPv4 Networks|NGFW-dmz-segment|10.0.0.0/24|
|Single IPv4 Networks|NGFW-service-segment|10.0.1.0/24|
|Single IPv4 Address|NGFW-ngf|10.0.0.4|
|Single IPv4 Address|NGFW-svsv|10.0.1.4|

##Firewall定義の追加
同じくForwarding Rulesのメニューから「Access Rules」をクリック後、「＋」ボタンをクリックして新規ルールを追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/3c06438e-745e-5c3f-b86f-1d90bc62e6d7.png)

追加ルールは

- Dst NAT
- ルール名は「internet-2-srv-rdp」
- Sourceは「Internet」
- Serviceは「RDP」
- Destinationは「DHCP1 Local IP」
- Target Listは「NGFW-svsv(10.0.1.4)」
- Connection Methodは「Original Source IP」

を選択します。その他項目はデフォルトでOKです。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/bcf694c7-b858-a7ea-7d49-c40f0965cb01.png)

続いて既存のルールから「LAN-2-INTERNET」を選択した後に鉛筆アイコンをクリックして編集モードに入ります。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/e8ef84d2-eadd-91f6-f105-e8318278dc72.png)

Sourceのアドレスレンジを「NGFW-service-segment」に設定して、「OK」で適用します。
こちらの設定は、まあしなくても大丈夫なのですが、インターネット向けの通信を許容する範囲を特定のサブネットに制限する場合に設定するものとなります。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/b6dcb40a-cf44-74e5-8ca1-d655aa284624.png)

先ほど新規で作成したルール「internet-2-srv-rdp」をクリックして「↑」でルール「BLOCKALL」の上まで移動させます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/e7943be5-226f-aac1-0737-6a76fcbd5685.png)

最後に今までの設定を適用します。
「Send Changes」クリック後、「Activation Pending」が表示されるので、そちらもクリック。
確認ダイアログで「Activate」をクリックして適用します。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/2bd66074-47d3-f4c1-8c32-7a9bc42ca3c8.png)

#動作確認
それでは実際にNGFW経由でserviceサブネットのサーバ(SVSV01)にRDP接続してみます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/7ccf6fda-18a6-19a6-ed84-29a8e6aab5ad.png)

無事繋がりましたね。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/cc639a85-99e1-f7f1-eb83-dc330c1b2ca2.png)

NextGenAdmin.exeの画面からも「FIREWALL」→「Live」で実際に通信している一覧から、RDPの3389ポートで接続していることが確認できました。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/17d0137e-9e00-5926-8377-a3d5fd83c7c2.png)

続いてserviceサブネットのサーバ(SVSV01)からIEでBINGサイトを開いてみます。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/f0102556-2970-aaeb-3421-6279ff2678f3.png)

こちらも直接インターネットに出て行かず、NGFWを経由して外部に出て行っていることがわかります。
![image](https://qiita-image-store.s3.amazonaws.com/0/137436/acdd92e2-815c-a787-e9e9-57b272af21d6.png)

#おわりに
今回の記事ではサクっとAzure基盤とNGFWの構築の手順をお伝えしました。
Barracuda NextG Firewallの超基本的な機能しかつかっておりませんでしたが、Azure上で中難易度？で構築できることが分かったと思います。