WAFの仮想マシンを2台構築しましたが、本エントリではWAF内のHA設定とSSLオフロードによるWebサーバへのアクセス設定を試した結果を記します。「Azureインフラ編」はこちらです。Token」をクリックします。貰った試用版ライセンスのトークンを入力して、「Provision」をクリックします。待つとログイン画面が出ますので、ユーザ名は「admin」で。パスワードはWAFの仮想マシン作成時に指定したパスワードを入力して、「ログイン」をクリックします。later」をクリックします。「システム連絡先メールアドレス」に自身の連絡がつくメールアドレスを入力して、最後に「保存」をクリックします。Tokyo」を選択します。こちらを選択すると、システムの再起動を行う旨メッセージが表示されますので、「OK」をクリックします。その後の再起動完了までには少し時間がかかるので待ちます。これでひとまずダッシュボード画面に色々と未設定の旨のメッセージが表示されなくなり、ログ情報も日本時間で表示されるので後からの設定・確認がはかどりますね。※本作業はWAFサーバ2台に対して実施します先ずは2台のWAFそれぞれ、「高度な設定」→「HA(高可用性)」画面から、「クラスタ共有秘密鍵」に同じ文字列を設定して、「保存」をクリックします。2台とも設定が終わったら、同じ画面から「ピアIPアドレス」に対抗VMのプライベートIPアドレスを入力して「クラスタに参加」をクリックします。以下の警告画面が出るので「OK」をクリックします。両系で上記操作を行うと、クラスタシステムのステータスが両方共「Up」となります。この状態でHA構成は設定完了です。WAFサーバの片方にルールの追加等を行うと、自動的にもう片方にも設定が反映されるので、その後の作業は任意の片方のWAFサーバにのみ実施していきます。テスト用Webサーバの作成(2台)WAFとは別のサブネットにUbuntuサーバを2台立てて、nginxをインストールします。構成としては以下の感じを予定しているので、InternalサブネットにVMを2台立てます。CLIのスクリプトを書いたので以下に示します。$vm_ipaddress22台のVMが作成できたら、sshでログインして、以下のコマンドでnginxをインストールしておきます。-yこれで、それぞれのVMでTCP/80で通信が行えるようになりました。AddressをDNSレコードに登録します。私は独自ドメイン「nya-n.net」を所有しておりまずので、今回は「waftest.nya-n.net」を登録します。DNSを例に説明しますが、別に他のネームサーバを利用していても大丈夫です。こちらの説明は簡単にしますが、Azureポータルから作成したexternal-lb-ipリソースのIPアドレスを控えます。DNSにてAレコードに先に控えたIPアドレスをAレコードとして登録します。Balancer(その先にはWAFサーバ、Webサーバ)にアクセス可能になりますね。http(TCP/80)によるWAF経由のアクセスそれでは、WAFの設定に戻りましょう。http(TCP/80)によるWAF経由でのWebサーバアクセスです。任意のWAFサーバの管理画面から「基本設定」→「サービス」を開き、サービス名に「service-http」、タイプを「HTTP」、ポートを「80」、実サーバはWebサーバの1台目のIPアドレスを入力して、「追加」をクリックします。Services欄に登録した1台目のWebサーバが表示されるので、画面右の「Server」をクリックして、2台目を追加します。サーバ名は適当に、IPアドレスには2台目のWebサーバのIPアドレスを入力します。ポートは「80」、最後に「保存」をクリックします。無事2台目のWebサーバも追加されました。後は任意のブラウザで「http://waftest.nya-n.net」にアクセスします。WAFからWebサーバへのアクセスはデフォルトではラウンドロビン方式になるため、ブラウザでリロードを繰り返すと2回に1回それぞれのWebサーバにアクセスがされているようでした。以下は1台目のWebサーバのnginxのアクセスログです。WAFには当然ですが、SSLオフロード機能もありますので、試します。フロントではhttpsで受けて、内側のWebサーバにはhttpで送る方式です。SSL証明書をインポートします。私はnya-n.netのワイルドカード証明書を所有しているので今回はこれを使います。Encryptの証明書取得機能もWAFに備わっていますので、そちらを利用する方は以下のエントリを参考にしてください。Encryptの証明書取得機能もWAFに備わっていますので、そちらを利用する方は以下のエントリを参考にしてください。証明書のアップロードの為の必要な設定を入力します。こちらは所有している証明書のタイプによって異なるため詳細は割愛します。最後に「今すぐアップロード」をクリックします。Webサーバの1台目のIPアドレスを入力して、「追加」をクリックします。Webサーバの1台目のIPアドレスを入力して、「追加」をクリックします。受付ポートは443ですが、バックエンドのWebサーバは80で接続する設定になっていることを確認します。続いて2台目のWebサーバを登録するために「Server」をクリックします。サーバ名は適当に、IPアドレスには2台目のWebサーバのIPアドレスを入力します。ポートは「80」、最後に「保存」をクリックします。無事2台目の追加されました。任意のブラウザで「https://waftest.nya-n.net」にアクセスします。表示されて、SSL証明書の内容も正常です。WAFの防御の確認SQLインジェクションなどを仕向けて、WAFの防御確認を行おうと考えていましたが、これまでの検証を進めている間に、既にあちこちからアタックされていました。1日そこらしか動かしていませんが、まあお察しの通りですかね。放置して様子を見てみます。HA確認まずはWebサーバの片方を停止しましたが、当たり前ですがWAFのバックエンドから自動的に外されてブラウズはアクティブなWebサーバだけで継続します。BalancerのバックエンドからWAFが外されるのでこちらもサービス継続できます。おわりにWAFサーバとWebサーバ共に冗長構成とすることで、多重障害にも耐えられるWebシステムがIaaSだけで構成できることが確認できました。ServiceでPaaS化したり、WAF側もAzureのZone冗長構成を組むことで更に高いSLAを確保できるでしょう。WAFも有効なのではと思います。「Azureインフラ編」はこちらです。Domainを利用しています。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。2020年2月1日で株式会社pnopに入社して5年が経過しました。奥さんの実家が北海道の稚内地方に位置する豊富町にあります。