Help us understand the problem. What is going on with this article?

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本体の機能についてももう少し深く掘り下げたいと思います。

yotan
Azureコンサルタント/イクメン/カワイイモノズキ/デジタルモノズキ/バイクノリ/Microsoft MVP for Azure
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした