Azure Firewall Premium をデプロイして構成する
Azure Firewall Premium は、機密度が高く、規制された環境に必要な機能を備えた次世代のファイアウォールです。 このパックには、次の機能があります。
- TLS 検査 - 送信トラフィックを復号化し、データを処理し、その後にデータを暗号化して宛先に送信します。
- IDPS - ネットワーク侵入検出と防止システム (IDPS) を使用すると、ネットワーク アクティビティを監視して悪意のあるアクティビティがないか確認し、このアクティビティに関する情報をログに記録し、それを報告して、任意でそのブロックを試みることができます。
- URL フィルタリング - Azure Firewall の FQDN フィルタリング機能を拡張して URL 全体が考慮対象になるようにします。 たとえば、
www.contoso.com
の代わりにwww.contoso.com/a/c
となります。 - Web カテゴリ - 管理者は、ギャンブルの Web サイトやソーシャル メディアの Web サイトといった Web サイト カテゴリへのユーザーのアクセスを許可または禁止できます。
詳細については、「Azure Firewall Premium の機能」を参照してください。
テンプレートを使用して、3 つのサブネットを含む中央の VNet (10.0.0.0/16) を備えたテスト環境をデプロイします。
- worker サブネット (10.0.10.0/24)
- Azure Bastion サブネット (10.0.20.0/24)
- ファイアウォール サブネット (10.0.100.0/24)
重要
時間単位の料金は、送信データの使用量に関係なく、Bastion がデプロイされた時点から発生します。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環として Bastion をデプロイしている場合は、使用終了後にこのリソースを削除することをお勧めします。
このテスト環境では、単純化するために中央の VNet が 1 つ使用されています。 運用を目的とする場合は、ピアリングされた VNet を含むハブとスポークのトポロジがより一般的です。
worker 仮想マシンは、ファイアウォールを介して HTTP/S 要求を送信するクライアントです。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
インフラストラクチャをデプロイする
テンプレートを使用すると、IDPS、TLS 検査、URL フィルタリング、Web カテゴリが有効になった Azure Firewall Premium の完全なテスト環境がデプロイされます。
- 新しい Azure Firewall Premium と、そのコア機能 (IDPS、TLS 検査、URL フィルタリング、Web カテゴリ) を簡単に検証できるようにする事前定義の設定を含むファイアウォール ポリシー
- Key Vault とマネージド ID を含む、すべての依存関係をデプロイします。 運用環境では、これらのリソースが既に作成されていて、同じテンプレート内では必要ない場合があります。
- 自己署名のルート CA を生成し、生成された Key Vault にデプロイします
- 派生した中間 CA を生成して、Windows テスト仮想マシン (WorkerVM) にデプロイします。
- bastion ホスト (BastionHost) もデプロイされ、Windows テスト マシン (WorkerVM) への接続に使用できます。
ファイアウォールをテストする
これで、IDPS、TLS 検査、Web フィルタリング、Web カテゴリをテストできます。
ファイアウォール診断設定を追加する
ファイアウォール ログを収集するには、ファイアウォール ログを収集するための診断設定を追加する必要があります。
- DemoFirewall を選択し、 [モニター] の下で、 [診断設定] を選択します。
- [診断設定の追加] を選択します。
- [診断設定の名前] に、「fw-diag」と入力します。
- [ログ] の下で、AzureFirewallApplicationRule と AzureFirewallNetworkRule を選択します。
- [宛先の詳細] で、 [Log Analytics ワークスペースに送信する] を選択します。
- [保存] を選択します。
IDPS のテスト
IDPS をテストするには、適切なサーバー証明書を持つ独自の内部テスト Web サーバーをデプロイする必要があります。 このテストには、Web サーバーへの悪意のあるトラフィックの送信が含まれているため、パブリック Web サーバーに対してこれを行うことはお勧めできません。 Azure Firewall Premium の証明書の要件に関する詳細については、「Azure Firewall Premium の証明書」を参照してください。
curl
を使用して、さまざまな HTTP ヘッダーを制御し、悪意のあるトラフィックをシミュレートできます。
HTTP トラフィックの場合に IDPS をテストするには:
WorkerVM 仮想マシンで、管理者のコマンド プロンプト ウィンドウを開きます。
コマンド プロンプトに、次のコマンドを入力します。
curl -A "HaxerMen" <your web server address>
Web サーバーの応答が表示されます。
Azure portal でファイアウォール ネットワーク規則のログに移動し、次のメッセージのようなアラートを見つけます。
{ “msg” : “TCP request from 10.0.100.5:16036 to 10.0.20.10:80. Action: Alert. Rule: 2032081. IDS: USER_AGENTS Suspicious User Agent (HaxerMen). Priority: 1. Classification: A Network Trojan was detected”}
注意
ログにデータが表示され始めるまでに、しばらく時間がかかる可能性があります。 ログにデータが表示され始めるまで、少なくとも数分かかります。
署名 2032081 の署名規則を追加します。
- DemoFirewallPolicy を選択し、 [設定] で [IDPS] を選択します。
- [署名規則] タブを選択します。
- [署名 ID] の下に開くテキスト ボックスに「2032081」と入力します。
- [モード] で、 [禁止] を選択します。
- [保存] を選択します。
- デプロイが完了するのを待ってから続行します。
WorkerVM で、
curl
コマンドをもう一度実行します。curl -A "HaxerMen" <your web server address>
HTTP 要求はファイアウォールによってブロックされるようになっているため、接続タイムアウトが満了すると、次の出力が表示されます。
read tcp 10.0.100.5:55734->10.0.20.10:80: read: connection reset by peer
Azure portal で監視ログに移動し、ブロックされた要求に関するメッセージを見つけます。
HTTPS トラフィックの場合に IDPS をテストするには
HTTP ではなく HTTPS を使用してこれらの curl テストを繰り返します。 次に例を示します。
curl --ssl-no-revoke -A "HaxerMen" <your web server address>
HTTP のテストで得られたものと同じ結果が表示されるはずです。
URL フィルタリングによる TLS 検査
URL フィルタリングによる TLS 検査をテストするには、次の手順を使用します。
ファイアウォール ポリシーのアプリケーション規則を編集し、
AllowURL
という名前の新しい規則をAllowWeb
規則コレクションに追加します。 ターゲット URL としてwww.nytimes.com/section/world
、ソース IP アドレスとして *、宛先の種類としてwww.nytimes.com/section/world
を構成し、* とプロトコル http、https を選択します。デプロイが完了したら、WorkerVM でブラウザーを開き、
https://www.nytimes.com/section/world
に移動して、HTML 応答がブラウザーに想定どおりに表示されることを検証します。Azure portal で、アプリケーション規則の監視ログ内で URL 全体を表示できます。
HTML ページの中には、禁止されている他の URL を参照しているために不完全に見えるものがあります。 この問題を解決するために、次の方法をとることができます。
HTML ページに他のドメインへのリンクが含まれている場合は、それらのドメインを新しいアプリケーション規則に追加して、これらの FQDN へのアクセスを許可することができます。
HTML ページにサブ URL へのリンクが含まれている場合は、規則を変更し、URL にアスタリスクを追加できます。 例:
targetURLs=www.nytimes.com/section/world*
または、新しい URL を規則に追加することもできます。 次に例を示します。
www.nytimes.com/section/world, www.nytimes.com/section/world/*
Web カテゴリのテスト
スポーツの Web サイトへのアクセスを許可するアプリケーション規則を作成してみましょう。
ポータルから、リソース グループを開いて DemoFirewallPolicy を選択します。
[Application Rules](アプリケーション規則) を選択し、次に [規則コレクションの追加] を選択します。
[名前] に「GeneralWeb」、[優先度] に「103」と入力し、[規則コレクション グループ] で DefaultApplicationRuleCollectionGroup を選択します。
[規則] で、[名前] に「AllowSports」、[接続元] に「*」、[プロトコル] に「http, https」を入力し、[TLS 検査] を選択し、[宛先の種類] で [Web カテゴリ] を選択し、[宛先] で [Sports]\(スポーツ\) を選択します。
[追加] を選択します。
デプロイが完了したら、WorkerVM に移動し、Web ブラウザーを開いて
https://www.nfl.com
に移動します。NFL Web ページが表示され、アプリケーション規則のログに、Web カテゴリ:スポーツの規則が一致し、要求が許可されたことが示されます。