Azure Front Door(WAF)のカスタムルール設定確認から作成手順まで

2020-02-13Azure,Front Door,Web Application Firewall

Azure Front DoorではWeb Application Firewall(WAF)を利用出来ます。
マネージドのルールだけではなくユーザー自身がカスタムルールを作成して利用する事が出来ます。

Azure Front DoorでWeb Application Firewall(WAF)のカスタムルール作成手順や設定可能な内容について纏めました。
設定サンプルとして国別ブロックなどを設定しています。

※カスタムルールだけであればStandardでも利用可能です。Web Application Firewall(WAF)の機能自体はPremiumを利用する必要があります。

スポンサーリンク

Web Application Firewall(WAF)のカスタムルールを作成

カスタムルールとは

アクセスを制御する為にユーザー自身が定義した条件の事です。
Web Application Firewall(WAF)ポリシーのサービス内で定義します。

Azure Front Door 上の Azure Web Application Firewall 用のカスタム ルール

指定したIPや国からのアクセスのみ許可するといった事が出来ます。
URLやHTTPメソッドをブロックと言った事も出来て柔軟に設定出来ます。

ルールに基づいてアクセスをブロックやアクセス許可設定が出来ます。
ブロック自体はせずにログにのみ残す設定やリダイレクト設定も出来ます。
一律にブロックするだけではなくレート制限も出来ます。

複数のルールを優先度をつけて設定出来ます。

※Azure Front Doorとアプリケーションゲートウェイ(Application Gateway)では設定出来る内容が異なる場合があります。

カスタムルールはAzure Front Door Standardでも利用可能

カスタムルールはAzure Front Door Standardでも利用可能です。

レベル間の機能の比較(Azure Front Door のレベルの比較)

セキュリティポリシーの追加でWAFポリシーを割り当てて利用します。

※Web Application Firewall(WAF)を利用する場合はPremiumにアップグレードする必要があります。

カスタムルールの上限

1つのフロントドアWAFポリシーの中で設定出来るカスタムルールには上限(100まで)があります。

front-door-limits.md

その他にも1つのカスタムルール内の一致上限は10までと言った制限もあります。

フロンドアWAFポリシー作成

Azure Front DoorでのWeb Application Firewall(WAF)有効化からフロンドアWAFポリシー作成手順についてはこちらに纏めています。
エンドポイントへのセキュリティポリシーの追加もこちらに纏めています。

Geoフィルタリングを利用して特定の国からのアクセスをブロック

国別でアクセスを制限するカスタムルールを作成します。
日本からのアクセスをブロックするという設定にしています。

Azure Front Door のドメインに対する geo フィルタリングとは

フロントドアWAFポリシーのカスタムルールのメニューから作成します。

カスタムルール作成

カスタムルールの追加を選択します。
カスタムルール名や条件を設定し保存します。

ルールの種類は一致かレート制限から選択します。
優先度はカスタムルールの適用順になります。

国別ブロックの場合は一致の種類はgeoロケーションを選択します。
一致変数にRemoteAddr(アクセス元IP)を選択します。
操作と国または地域で日本である場合と設定します。

結果は合致した場合のアクションを設定します。
トラフィックを拒否するを選択します。

ルールが作成された事が確認出来ます。

※公式サイトでAzure PowerShellを使った設定手順が公開されています。

Azure Front Door に使用する geo フィルタリング WAF ポリシーを設定する

ーーー広告ーーー

カスタムルールで設定出来る内容

レート制限設定

カスタムルールの適用条件として、アクセス数(一定期間内の要求数)をレート制限として設定出来ます。
レート制限の場合はレート制限の期間(1分か5分)以内にしきい値を超えたアクセス(要求数)の場合に適用されます。

Azure Front Door のレート制限とは

レート制限はアクセス元のIP(ソケット IP アドレス、リモート アドレス)単位で適用されます。
レート制限を利用して普通のアクセスはOKだけど、一定数を超えた攻撃的なアクセスはブロックと言った事が出来ます。

レート制限

ルールの種類でレート制限を選択します。
レート制限の期間やしきい値を選択できるようになります。

※レート制限に関しては別のフロントドアサーバに届く場合の注意点があります。

レート制限と Azure Front Door サーバー

ルールの種類(一致の種類)

カスタムルールの種類は一致の種類で設定します。

優先順位、アクションの種類、一致条件

Geoロケーション、IPアドレス、サイズ、文字列から選択できます。

一致の種類

一致の種類でカスタムルールの種類を選択します。
選択した内容に応じた条件設定が表示されます。

アクションの種類(操作)(結果)

アクションの種類(操作)(結果)も4種類から選択できます。

優先順位、アクションの種類(操作)、一致条件(操作)

許可、拒否だけではなくリダイレクトや許可(ログに記録)も設定可能です。

アクションの種類

ルールに合致した場合のアクションを4種類から選択します。

※Azureポータルでは結果と表示されます。

IPアドレスのカスタムルール

一致の種類でIPアドレスを選択します。

Azure Front Door 用の WAF で IP 制限規則を構成する

一致変数はRemoteAddrかSocketAddrから選択します。

    • RemoteAddr
      • X-Forwarded-For 要求ヘッダーを介して送信される元のクライアントの IP
    • SocketAddr
      • WAF が認識するソース IP アドレス(プロキシの内側からアクセスされる場合はプロキシ サーバーのアドレス)
条件設定

一致の種類でIPアドレスを選択します。
一致変数を選択します。

含まれる(合致条件)か次の値を含まない(除外条件)から選択します。

IPアドレスの範囲を選択します。IPアドレスの範囲は複数設定出来ます。

サイズのカスタムルール

クエリ文字列、URI、要求本文など、要求の特定の部分の長さを規則の基準にすることができます。
一致変数はQueryString、RequestUri、RequestHeader、PostArgs、RequestBody、Cookiesから選択できます。

サイズのカスタムルール

一致の種類でサイズを選択します。
一致変数を選択します。
演算でルールに合致する場合かしない場合かを決定します。
演算子や一致する値で条件を選択します。

 

文字列のカスタムルール

クエリ文字列、URI、要求本文など、要求などに含まれる文字列を基準にすることができます。
一致変数はQueryString、RequestUri、RequestHeader、PostArgs、RequestBody、Cookiesから選択できます。
一致条件の指定には正規表現を利用する事が出来ます。

※このルールを利用すると特定のURLのパスへのアクセス
※利用出来る正規表現には制約があります。一致する値で利用出来る正規表現の数にも上限があります。

文字列のカスタムルール

一致の種類で文字列を選択します。
一致変数を選択します。

一致変数はQueryString、RequestUri、RequestHeader、PostArgs、RequestBody、Cookiesから選択できます。

入力された文字列を変換する事が出来ます。

一致する値には正規表現を利用する事が出来ます。

※画面の例はWorepressの管理画面へのアクセスを制限する例です。

1つのカスタムルール内に複数条件

1つのカスタムルール内で複数の条件を設定する事が出来ます。
複数の一致の種類を組み合わせたカスタムルールも作成出来ます。

複数条件を指定

条件の下にある+(プラス)を選択すると条件を追加できます。
And条件が追加されます。

 

—広告—

カスタムエラー画面やログ確認

カスタムエラー画面を表示

ポリシー設定でブロック時に表示するカスタムエラー画面(ブロック応答本文)を設定出来ます。

Web アプリケーション ファイアウォール用の Azure Front Door でのポリシー設定

リダイレクト先のURLや応答状態コード設定が出来ます。
ブラウザ表示するカスタムエラー画面(ブロック応答本文)の設定も可能です。

ポリシー設定

フロントドアWAFポリシーの左側のメニューでポリシー設定を選択します。
リダイレクトURL、応答コード、応答本文の設定します。

ブロックされた場合の表示です。
ブロックの応答本文の内容が表示されています。

ブロックされたログを確認

診断設定を使ってログを転送する事でFront Doorのアクセスログやを見る事が出来ます。

Azure Web アプリケーション ファイアウォールの監視とログ記録(WAF ログ)

合致したフロントドアWAFポリシー名やカスタムルール名を確認出来ます。

ログ確認
合致したルール名や拒否(Block)されたアクセスログを確認出来ます。

Log AnalyticsワークスペースでのAzure Front Door(WAF)ログ確認についてはこちらに纏めています。

最後に

Azure Front Door(Premium)のフロンドアWAFポリシーを使ってカスタムルール作成手順や設定内容について確認してみました。

IPアドレスを使ったルールだけではなくGeoロケーションやリクエスト要求の文字列を使ったルール作成が出来ます。
ログを見る事が出来るので、ログを見て判断した上でブロックの有効化と言った事が出来ます。

複数の条件を組み合わせたりする事により細かい設定が出来るのも便利かと思います。
今後も色々試してみたいと思います。

Azure Front DoorでのWeb Application Firewall(WAF)有効化やフロンドアWAFポリシー作成手順についてはこちらに纏めています。

Azure Front Doorの概要やデプロイ手順についてはこちらに纏めています。

スポンサーリンク