#はじめに
【最新記事はこちら↓】
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サーバとします。
Webサーバの仮想マシンは事前にデプロイしておきます。
今回は試用であるのと、LinuxサーバはOS自体が軽いので、仮想マシンのサイズはBasic A1で十分です。
#WAFのデプロイ
Azureポータルのマーケットプレイス上から「Barracuda Web Application Firewall」でフィルターを行い、「Barracuda Web Application Firewall (WAF) - BYOL」を選択して「作成」をクリックします。
1.基本ブレードでは必要事項をすべて入力します。
ここで入力するパスワードはWAF管理画面にアクセスする際に必要なものになります。
2.サイズブレードでは、試用版ライセンス取得時に決めたサイズと同じものを選択します。
3.設定ブレードではWAFの仮想マシンを配置する仮想ネットワークとサブネットを正しく設定します。
5.購入ブレードで、念のためプランの詳細を確認して、仮想マシン料金以外は0円であることを確認します。
最後に「購入」をクリックするとWAFサーバの作成が始まります。
しばらく待って、仮想マシンの状態が「実行中」になったら構築完了です。
パブリックIPアドレスを控えておきます。(本例では40.117.196.197)
#管理画面へのアクセス
通常のブラウザから「 http://WAFのIPアドレス:8000 」にアクセスします。
初回はライセンス登録画面が表示されます。
「I Already Have a License Token」をクリックして、TokenとDefault Domain(とりあえずデフォルトでOK)を入力して「Provision」をクリックします。
しばらく待つと使用許諾画面が出るので、画面下部のName, Email Address, Companyを入力して「Accept」をクリックします。
ログイン画面が表示されるので、id欄は「admin」パスワード欄にはAzureポータルから指定したパスワードを入力します。
#Webサーバ側の準備
仮想ネットワークのBackendのサブネットに構築済みのLinux(CentOS)サーバにApacheをインストールして有効化します。
以下のコマンドでOKです。
sudo yum -y install httpd
sudo service httpd start
Linuxサーバに紐づいているNSGの受信セキュリティ規則にTCP/80のポート開放を追加します。
まずはブラウザからWAFを経由しないで、Linuxサーバに直接アクセスしてWebページが表示されることを確認します。
#WAFの設定
まずはLinuxサーバのプライベートIPアドレスを確認しておきます。
Azureポータルからも確認できますが、sshコンソールから以下のコマンドでも確認できます。
ifconfig
今回の画面例では「192.168.1.5」であることがわかりました。
WAFの管理画面から「基本設定」「サービス」画面を開きます。
サービスの追加の入力フィールドで「サービス名」には適当な文字列、「タイプ」はHTTP、「ポート」は80、「実サーバ」に先ほど確認したLinuxサーバのプライベートIPアドレスを入力して、「追加」をクリックします。
しばらく待って、設定が更新された旨のメッセージと、下部のServices一覧にて、追加したサーバのステータスが緑色になることを確認します。
今度はWAF経由でWebサーバにアクセスするため、WAFサーバのNSGの受信セキュリティ規則にTCP/80のポート開放を追加します。
もうWebサーバに対して直接HTTPアクセスはされないように、こちらのNSGの受信セキュリティ規則からはTCP/80のポート開放の行は削除しておきます。
「 http://WAFのIPアドレス/ 」でWebサーバ側のコンテンツが表示されることを確認します。
#WAFの機能確認
今回はアクセスするURLにクロスサイトスクリプティング的なパラメータを追加して、WAFの機能でアラートが発生するかを確認します。
先ほどのURLの後ろに「?test=<script>attack</script>」を追加して再度アクセスします。
続いてWAF管理画面から「基本設定」「Webファイアウォールログ」をクリックして、一覧から「攻撃名=XSS」となっているレコードが出力されていることを確認します。
今回は簡単な試用であるため、こちらの攻撃を受けた際のアクション設定などは割愛しますが、WAF側で攻撃されたことを検知したことがわかりました。
さらに一覧から「詳細」をクリックすると、詳しい内容が表示されます。
#おわりに
今回は非常に簡単な試用でしたが、Azureマーケットプレイスからのデプロイ方法と、最初の導入方法については詳しく説明できたと思います。
また試用の機会があれば、さらにWAF本体の機能についてももう少し深く掘り下げたいと思います。