Azure portal を使用して Azure Firewall をデプロイして構成する

アウトバウンド ネットワーク アクセスを制御することは、ネットワーク セキュリティ プラン全体の重要な要素です。 たとえば、Web サイトへのアクセスを制限することができます。 または、アクセスできる送信 IP アドレスとポートを制限することもできます。

Azure サブネットから外に向かうアウトバウンド ネットワーク アクセスを制御する方法の 1 つとして、Azure Firewall の使用が挙げられます。 Azure Firewall を使用して、次のルールを構成できます。

  • アプリケーション ルール: サブネットからアクセスできる完全修飾ドメイン名 (FQDN) を定義します。
  • ネットワーク ルール: 送信元アドレス、プロトコル、宛先ポート、送信先アドレスを定義します。

ネットワーク トラフィックは、サブネットの既定ゲートウェイとしてのファイアウォールにルーティングしたときに、構成されているファイアウォール ルールに制約されます。

この記事では、簡単にデプロイできるように、2 つのサブネットを含む単純な単一の仮想ネットワークを作成します。

運用環境のデプロイでは、ファイアウォールが専用の仮想ネットワークに配置されるハブ アンド スポーク モデルをお勧めします。 ワークロード サーバーは、1 つまたは複数のサブネットを含む同じリージョンのピアリングされた仮想ネットワーク内にあります。

  • AzureFirewallSubnet - このサブネットにファイアウォールが存在します。
  • Workload-SN - このサブネットにはワークロード サーバーがあります。 このサブネットのネットワーク トラフィックは、ファイアウォールを通過します。

ネットワーク インフラストラクチャ

この記事では、次の方法について説明します。

  • テスト ネットワーク環境を設定する
  • ファイアウォールをデプロイする
  • 既定のルートを作成する
  • www.google.com へのアクセスを許可するようにアプリケーション ルールを構成する
  • 外部 DNS サーバーへのアクセスを許可するようにネットワーク ルールを構成する
  • テスト サーバーへのリモート デスクトップ接続を許可するように NAT 規則を構成する
  • ファイアウォールをテストする

Note

この記事では、従来のファイアウォール規則を使用してファイアウォールを管理します。 推奨される方法は、ファイアウォール ポリシーを使用することです。 ファイアウォール ポリシーを使用してこの手順を実行するには、「チュートリアル: Azure portal を使用して Azure Firewall とポリシーをデプロイおよび構成する」をご覧ください。

好みに応じて、Azure PowerShell を使ってこの手順を実行することもできます。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

ネットワークのセットアップ

最初に、ファイアウォールをデプロイするために必要なリソースを含めるリソース グループを作成します。 その後、仮想ネットワーク、サブネット、およびテスト サーバーを作成します。

リソース グループの作成

このリソース グループには、この手順で使用するすべてのリソースが含まれます。

  1. Azure portal にサインインします。
  2. Azure portal メニューで [リソース グループ] を選択するか、または任意のページから [リソース グループ] を検索して選択します。 [作成] を選択します。
  3. [サブスクリプション] で、ご使用のサブスクリプションを選択します。
  4. [リソース グループ名] に「Test-FW-RG」と入力します。
  5. [リージョン] でリージョンを選択します。 作成する他のすべてのリソースも、同じリージョン内のものである必要があります。
  6. [Review + create](レビュー + 作成) を選択します。
  7. [作成] を選択します。

仮想ネットワークの作成

この仮想ネットワークには 2 つのサブネットが含まれています。

Note

AzureFirewallSubnet サブネットのサイズは /26 です。 サブネットのサイズの詳細については、「Azure Firewall に関する FAQ」を参照してください。

  1. Azure portal メニュー上または [ホーム] ページから、[仮想ネットワーク] を検索します。
  2. 検索結果で、[仮想ネットワーク] を選択します。
  3. [作成] を選択します
  4. [サブスクリプション] で、ご使用のサブスクリプションを選択します。
  5. [リソース グループ] で、 [Test-FW-RG] を選択します。
  6. [仮想ネットワーク名] に、「Test-FW-VN」と入力します。
  7. [リージョン] で、前に使用したのと同じリージョンを選択します。
  8. [次へ] を選択します。
  9. [セキュリティ] タブで、[Azure Firewall を有効にする] を選択します。
  10. [Azure Firewall 名] に、「Test-FW01」と入力します。
  11. [Azure Firewall のパブリック IP アドレス] では、[パブリック IP アドレスの作成] を選択します。
  12. [名前] に、「fw-pip」と入力し、[OK] を選択します。
  13. [次へ] を選択します。
  14. [アドレス空間] には、既定値の 10.0.0.0/16 をそのまま使用します。
  15. [サブネット] で、[既定] を選択し、[名前][Workload-SN] に変更します。
  16. [開始アドレス] に、「10.0.2.0/24」と入力します。
  17. [保存] を選択します。
  18. [Review + create](レビュー + 作成) を選択します。
  19. [作成] を選択します

仮想マシンの作成

ワークロード仮想マシンを作成し、Workload-SN サブネットに配置します。

  1. Azure portal メニュー上または [ホーム] ページから [リソースの作成] を選択します。

  2. [Windows Server 2019 Datacenter] を選択します。

  3. 次の仮想マシンの値を入力します。

    設定
    Resource group Test-FW-RG
    仮想マシン名 Srv-Work
    リージョン 前と同じ
    Image Windows Server 2019 Datacenter
    管理者のユーザー名 ユーザー名を入力します
    Password パスワードを入力します
  4. [受信ポートの規則][パブリック受信ポート] で、 [なし] を選択します。

  5. 他の既定値をそのまま使用し、 [次へ:ディスク] を選択します。

  6. ディスクの既定値をそのまま使用し、 [次へ:ネットワーク] を選択します。

  7. 仮想ネットワークとして Test-FW-VN が選択されていること、およびサブネットが Workload-SN であることを確認します。

  8. [パブリック IP] で、 [なし] を選択します。

  9. 他の既定値をそのまま使用し、 [次へ:管理] を選択します。

  10. 既定値をそのまま使用し、[次へ: 監視] を選択します。

  11. [起動の診断] で、[無効] を選択して起動の診断を無効にします。 他の既定値をそのまま使用し、 [確認および作成] を選択します。

  12. 概要ページの設定を確認して、 [作成] を選択します。

  13. デプロイが完了したら、[リソースに移動] を選択し、後で使用する必要がある Srv-Work プライベート IP アドレスをメモします。

Note

パブリック IP が割り当てられていない VM、または内部の Basic Azure Load Balancer のバックエンド プール内にある VM に対しては、Azure によって既定のアウトバウンド アクセス IP が提供されます。 デフォルト送信アクセス IP メカニズムは、構成できないアウトバウンド IP アドレスを提供します。

次のいずれかのイベントが発生すると、既定のアウトバウンド アクセス IP は無効になります。

  • パブリック IP アドレスが VM に割り当てられます。
  • アウトバウンド規則の有無にかかわらず、VM は標準ロード バランサーのバックエンド プール内に配置されます。
  • Azure NAT Gateway リソースが VM のサブネットに割り当てられます。

フレキシブル オーケストレーション モードの仮想マシン スケール セットによって作成された VM には、既定のアウトバウンド アクセスがありません。

Azure のアウトバウンド接続の詳細については、「Azure での既定の送信アクセス」および「送信接続での送信元ネットワーク アドレス変換 (SNAT)を使用する」を参照してください。

ファイアウォールを調べる

  1. リソース グループに移動し、ファイアウォールを選択します。
  2. ファイアウォールのプライベートおよびパブリック IP アドレスをメモします。 これらのアドレスは後で使用します。

既定のルートを作成する

ファイアウォール経由で送信および受信接続のルートを作成する場合は、仮想アプライアンスのプライベート IP をネクスト ホップとした 0.0.0.0/0 への既定のルートがあれば十分です。 これにより、送信および受信接続がファイアウォール経由で送信されます。 たとえば、ファイアウォールで TCP ハンドシェイクが実行され、受信要求への応答が行われる場合、応答はトラフィックの送信元の IP アドレスに送信されます。 これは仕様です。

このため、AzureFirewallSubnet の IP 範囲を含めるための別のユーザー定義ルートを作成する必要はありません。 これにより、接続が切断される可能性があります。 元の既定のルートで十分です。

Workload-SN サブネットでは、アウトバウンドの既定ルートがファイアウォールを通過するように構成します。

  1. Azure portal で、[ルート テーブル] を検索します。
  2. 検索結果で [ルート テーブル] を選択します。
  3. [作成] を選択します
  4. [サブスクリプション] で、ご使用のサブスクリプションを選択します。
  5. [リソース グループ] で、 [Test-FW-RG] を選択します。
  6. [リージョン] で、以前使用したのと同じ場所を選択します。
  7. [名前] に「Firewall-route」と入力します。
  8. [Review + create](レビュー + 作成) を選択します。
  9. [作成] を選択します

デプロイが完了したら、[リソースに移動] を選択します。

  1. [Firewall-route] ページで、[サブネット] を選択し、[関連付け] を選択します。

  2. [仮想ネットワーク] では、Test-FW-VN を選択します。

  3. [サブネット] で、 [Workload-SN] を選択します。 必ずこのルートの Workload-SN サブネットのみを選択してください。それ以外の場合、ファイアウォールが正常に動作しません。

  4. [OK] を選択します。

  5. [ルート][追加] の順に選択します。

  6. [ルート名] に「fw-dg」と入力します。

  7. [送信先の種類] として [IP アドレス] を選択します。

  8. [宛先 IP アドレス/CIDR 範囲] に「0.0.0.0/0」と入力します。

  9. [次ホップの種類] で、 [仮想アプライアンス] を選択します。

    Azure Firewall は実際はマネージド サービスですが、この状況では仮想アプライアンスが動作します。

  10. [次ホップ アドレス] に、前にメモしておいたファイアウォールのプライベート IP アドレスを入力します。

  11. [追加] を選択します。

アプリケーション ルールを構成する

これは、www.google.com へのアウトバウンド アクセスを許可するアプリケーション ルールです。

  1. Test-FW-RG を開き、 [Test-FW01] ファイアウォールを選択します。
  2. Test-FW01 ページの [設定] で、 [規則 (クラシック)] を選択します。
  3. [アプリケーション ルール コレクション] タブを選択します。
  4. [アプリケーション ルール コレクションの追加] を選択します。
  5. [名前] に「App-Coll01」と入力します。
  6. [優先度] に「200」と入力します。
  7. [アクション] で、 [許可] を選択します。
  8. [ルール][ターゲットの FQDN] で、 [名前] に「Allow-Google」と入力します。
  9. [Source type](送信元の種類) で、 [IP アドレス] を選択します。
  10. [送信元] に「10.0.2.0/24」と入力します。
  11. [プロトコル:ポート] に「http, https」と入力します。
  12. [ターゲットの FQDN] に「www.google.com」と入力します
  13. [追加] を選択します。

Azure Firewall には、既定で許可されるインフラストラクチャ FQDN 用の組み込みのルール コレクションが含まれています。 これらの FQDN はプラットフォームに固有であり、他の目的には使用できません。 詳細については、インフラストラクチャ FQDN に関する記事を参照してください。

ネットワーク ルールを構成する

これは、ポート 53 (DNS) で 2 つの IP アドレスへのアウトバウンド アクセスを許可するネットワーク ルールです。

  1. [ネットワーク ルール コレクション] タブを選択します。

  2. [ネットワーク ルール コレクションの追加] を選択します。

  3. [名前] に「Net-Coll01」と入力します。

  4. [優先度] に「200」と入力します。

  5. [アクション] で、 [許可] を選択します。

  6. [ルール][IP アドレス] で、 [名前] に「Allow-DNS」と入力します。

  7. [プロトコル][UDP] を選択します。

  8. [Source type](送信元の種類) で、 [IP アドレス] を選択します。

  9. [送信元] に「10.0.2.0/24」と入力します。

  10. [送信先の種類] として [IP アドレス] を選択します。

  11. [送信先アドレス] に「209.244.0.3,209.244.0.4」と入力します

    これらは、Level3 によって運用されるパブリック DNS サーバーです。

  12. [宛先ポート] に「53」と入力します。

  13. [追加] を選択します。

DNAT ルールを構成する

このルールを使用すると、ファイアウォールを介して、リモート デスクトップを Srv-Work 仮想マシンに接続できます。

  1. [NAT ルール コレクション] タブを選択します。
  2. [NAT ルール コレクションの追加] を選択します。
  3. [名前] に「rdb」と入力します。
  4. [優先度] に「200」と入力します。
  5. [ルール][名前] に「rdp-nat」と入力します。
  6. [プロトコル][TCP] を選択します。
  7. [Source type](送信元の種類) で、 [IP アドレス] を選択します。
  8. [送信先] に「*」を入力します。
  9. [宛先アドレス] に、ファイアウォールのパブリック IP アドレスを入力します。
  10. [宛先ポート] に「3389」と入力します。
  11. [変換されたアドレス] に、Srv-work のプライベート IP アドレスを入力します。
  12. [Translated port] (変換されたポート) に「3389」と入力します。
  13. [追加] を選択します。

Srv-Work ネットワーク インターフェイスのプライマリおよびセカンダリ DNS アドレスを変更する

テストのために、サーバーのプライマリおよびセカンダリ DNS アドレスを構成します。 これは、一般的な Azure Firewall 要件ではありません。

  1. Azure portal メニューで [リソース グループ] を選択するか、または任意のページから [リソース グループ] を検索して選択します。 [Test-FW-RG] リソース グループを選択します。
  2. Srv-Work 仮想マシンのネットワーク インターフェイスを選択します。
  3. [設定] で、 [DNS サーバー] を選択します。
  4. [DNS サーバー] で、 [カスタム] を選択します。
  5. [DNS サーバーの追加] テキスト ボックスに「209.244.0.3」と入力し、次のテキスト ボックスに「209.244.0.4」と入力して Enter キーを押します。
  6. [保存] を選択します。
  7. Srv-Work 仮想マシンを再起動します。

ファイアウォールをテストする

今度は、ファイアウォールをテストして、想定したように機能することを確認します。

  1. リモート デスクトップをファイアウォールのパブリック IP アドレスに接続し、Srv-Work 仮想マシンにサインインします。

  2. Internet Explorer を開き、 https://www.google.com を参照します。

  3. Internet Explorer のセキュリティ アラートで、 [OK]>[閉じる] の順に選択します。

    Google のホーム ページが表示されます。

  4. https://www.microsoft.com を参照します。

    ファイアウォールによってブロックされるはずです。

これで、ファイアウォール規則が機能していることを確認できました。

  • RDP を使用して仮想マシンに接続できます。
  • 1 つの許可された FQDN は参照できますが、それ以外は参照できません。
  • 構成された外部 DNS サーバーを使用して DNS 名を解決できます。

リソースをクリーンアップする

引き続きテストを行うために、ファイアウォール リソースを残しておいてもかまいませんが、不要であれば、Test-FW-RG リソース グループを削除して、ファイアウォール関連のすべてのリソースを削除してください。

次のステップ