Edited at

AzureでBarracuda Web Application Firewall(WAF)を構築してみる


はじめに

【最新記事はこちら↓】

‪Azure上にBarracuda CloudGen WAFをHA構成で構築‬

‪Azureインフラ編‬

‪https://zakki.nya-n.net/?p=371‬

‪WAF設定編‬

‪https://zakki.nya-n.net/?p=387‬

【最新記事はこちら↑】



Barracuda Web Application Firewallを試用する機会があったので、Azure上に構築してみました。

前提として、すでにバラクーダネットワークスジャパンさんから、試用版のLicense Tokenは発行済みという所からの記事です。

また、Azureポータル上から仮想マシン、仮想ネットワークなどの作成が行える方が対象です。

【宣伝】pnopバラクーダネットワークスジャパンさんのクラウドパートナーです【大事】


ネットワーク構成とWebサーバ

Azureの仮想ネットワークは「Frontend」と「Backend」のふたつのサブネットに分けており、Frontend側にWAFを構築します。

BackendにはLinux(CentOS)の仮想マシンを立ち上げてこれをWebサーバとします。

image

Webサーバの仮想マシンは事前にデプロイしておきます。

今回は試用であるのと、LinuxサーバはOS自体が軽いので、仮想マシンのサイズはBasic A1で十分です。

image


WAFのデプロイ

Azureポータルのマーケットプレイス上から「Barracuda Web Application Firewall」でフィルターを行い、「Barracuda Web Application Firewall (WAF) - BYOL」を選択して「作成」をクリックします。

image

1.基本ブレードでは必要事項をすべて入力します。

ここで入力するパスワードはWAF管理画面にアクセスする際に必要なものになります。

image

2.サイズブレードでは、試用版ライセンス取得時に決めたサイズと同じものを選択します。

image

3.設定ブレードではWAFの仮想マシンを配置する仮想ネットワークとサブネットを正しく設定します。

image

4.概要ブレードで最終的に内容を確認します。

image

5.購入ブレードで、念のためプランの詳細を確認して、仮想マシン料金以外は0円であることを確認します。

最後に「購入」をクリックするとWAFサーバの作成が始まります。

image

しばらく待って、仮想マシンの状態が「実行中」になったら構築完了です。

パブリックIPアドレスを控えておきます。(本例では40.117.196.197)

image


管理画面へのアクセス

通常のブラウザから「 http://WAFのIPアドレス:8000 」にアクセスします。

初回はライセンス登録画面が表示されます。

image

「I Already Have a License Token」をクリックして、TokenとDefault Domain(とりあえずデフォルトでOK)を入力して「Provision」をクリックします。

image

しばらく待つと使用許諾画面が出るので、画面下部のName, Email Address, Companyを入力して「Accept」をクリックします。

image

ログイン画面が表示されるので、id欄は「admin」パスワード欄にはAzureポータルから指定したパスワードを入力します。

image

WAFの初期画面が表示されたらインストールは完了です。

image


Webサーバ側の準備

仮想ネットワークのBackendのサブネットに構築済みのLinux(CentOS)サーバにApacheをインストールして有効化します。

以下のコマンドでOKです。

sudo yum -y install httpd

sudo service httpd start

image

Linuxサーバに紐づいているNSGの受信セキュリティ規則にTCP/80のポート開放を追加します。

image

まずはブラウザからWAFを経由しないで、Linuxサーバに直接アクセスしてWebページが表示されることを確認します。

image


WAFの設定

まずはLinuxサーバのプライベートIPアドレスを確認しておきます。

Azureポータルからも確認できますが、sshコンソールから以下のコマンドでも確認できます。

ifconfig

今回の画面例では「192.168.1.5」であることがわかりました。

image

WAFの管理画面から「基本設定」「サービス」画面を開きます。

サービスの追加の入力フィールドで「サービス名」には適当な文字列、「タイプ」はHTTP、「ポート」は80、「実サーバ」に先ほど確認したLinuxサーバのプライベートIPアドレスを入力して、「追加」をクリックします。

image

しばらく待って、設定が更新された旨のメッセージと、下部のServices一覧にて、追加したサーバのステータスが緑色になることを確認します。

image

今度はWAF経由でWebサーバにアクセスするため、WAFサーバのNSGの受信セキュリティ規則にTCP/80のポート開放を追加します。

image

もうWebサーバに対して直接HTTPアクセスはされないように、こちらのNSGの受信セキュリティ規則からはTCP/80のポート開放の行は削除しておきます。

image

http://WAFのIPアドレス/ 」でWebサーバ側のコンテンツが表示されることを確認します。

image


WAFの機能確認

今回はアクセスするURLにクロスサイトスクリプティング的なパラメータを追加して、WAFの機能でアラートが発生するかを確認します。

先ほどのURLの後ろに「?test=<script>attack</script>」を追加して再度アクセスします。

image

続いてWAF管理画面から「基本設定」「Webファイアウォールログ」をクリックして、一覧から「攻撃名=XSS」となっているレコードが出力されていることを確認します。

今回は簡単な試用であるため、こちらの攻撃を受けた際のアクション設定などは割愛しますが、WAF側で攻撃されたことを検知したことがわかりました。

image

さらに一覧から「詳細」をクリックすると、詳しい内容が表示されます。

image


おわりに

今回は非常に簡単な試用でしたが、Azureマーケットプレイスからのデプロイ方法と、最初の導入方法については詳しく説明できたと思います。

また試用の機会があれば、さらにWAF本体の機能についてももう少し深く掘り下げたいと思います。