次の方法で共有


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

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

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

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

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

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

運用環境のデプロイの場合、ファイアウォールが独自の仮想ネットワーク内にあるハブアンドスポーク モデルが推奨されます。 ワークロード サーバーは、1 つ以上のサブネットを持つ米国西部のピアリングされた仮想ネットワーク内にあります。

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

ファイアウォール ネットワーク インフラストラクチャの図。

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

  • テスト ネットワーク環境を設定する
  • ファイアウォールをデプロイする
  • 既定のルートを作成する
  • www.google.com へのアクセスを許可するようにアプリケーション ルールを構成する
  • 外部 DNS サーバーへのアクセスを許可するようにネットワーク ルールを構成する
  • セキュリティで保護された VM アクセスのための Azure Bastion のデプロイ
  • ファイアウォールをテストする

Note

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

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

前提条件

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

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

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

リソース グループを作成する

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

  1. Azure portal にサインインします。
  2. Azure portal メニューで [リソース グループ] を選択するか、または任意のページから [リソース グループ] を検索して選択します。 [作成] を選択します。
  3. [サブスクリプション] で、ご使用のサブスクリプションを選択します。
  4. [リソース グループ名] に「Test-FW-RG」と入力します。
  5. [リージョン] では [米国西部] を選択します。 作成する他のすべてのリソースは、米国西部に存在する必要があります。
  6. [確認と作成] を選択します。
  7. [作成] を選択します

仮想ネットワークの作成

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

Note

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

  1. Azure portal のメニューまたは ホーム ページで、 仮想ネットワークを検索して選択します。

  2. [作成] を選択します

  3. [基本] タブで次の設定を構成します。

    設定
    Subscription サブスクリプションを選択します。
    リソースグループ Test-FW-RG
    仮想ネットワーク名 Test-FW-VN
    リージョン 米国西部
  4. [次へ] を選択します。

  5. [ セキュリティ ] タブで、次の設定を構成します。

    設定
    Azure Firewall を有効にする 入選
    Azure Firewall 名前 Test-FW01
    レベル 標準
    Policy なし (クラシック ファイアウォール規則を使用)
    Azure ファイアウォールのパブリック IP アドレス [ パブリック IP アドレスの作成] を選択し、名前に 「fw-pip 」と入力して、[ OK] を選択します
  6. [次へ] を選択します。

  7. [ IP アドレス ] タブで、次の設定を構成します。

    設定
    アドレス空間 既定値の 10.0.0.0/16 をそのまま使用する
    サブネット 既定値を選択し、名前Workload-SN に変更し、開始アドレス10.0.2.0/24 に設定します。 [保存] を選択します。
  8. [確認と作成] を選択します。

  9. [作成] を選択します

Note

Azure Firewall は、利用できるポートに基づき、必要に応じてパブリック IP を使います。 アウトバウンド接続用のパブリック IP をランダムに選んで以降、現在のパブリック IP からそれ以上接続できなくなった後は、次に使用可能なパブリック IP のみが使われます。 トラフィック量とスループットが高いシナリオでは、NAT ゲートウェイを使用して送信接続を提供することをお勧めします。 SNAT ポートは、NAT Gateway に関連付けられているすべてのパブリック IP に動的に割り当てられます。 詳細については、 Azure NAT ゲートウェイを使用した SNAT ポートのスケーリングに関するページを参照してください。

仮想マシンの作成

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

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

  2. [Ubuntu Server 22.04 LTS] を選択します。

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

    設定
    リソースグループ Test-FW-RG
    仮想マシン名 Srv-Work
    リージョン 米国西部
    Image Ubuntu Server 22.04 LTS - x64 Gen2
    サイズ Standard_B2s
    認証の種類 SSH 公開キー
    ユーザー名 azureuser
    SSH 公開キーのソース 新しいキーの組の生成
    キーの組の名前 Srv-Work_key
  4. [ネットワーク] タブ 、次の設定を構成します。

    設定
    仮想ネットワーク Test-FW-VN
    サブネット Workload-SN
    パブリック IP なし
  5. 他の既定値をそのまま使用し、 [次へ:管理] を選択します。

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

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

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

  9. [ 新しいキー ペアの生成 ] ダイアログで、[ 秘密キーのダウンロードとリソースの作成] を選択します。 キー ファイルを Srv-Work_key.pem として保存します。

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

Note

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

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

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

フレキシブル オーケストレーション モードで Virtual Machine Scale Sets を使用して作成された VM には、既定のアウトバウンド アクセスはありません。

Azure のアウトバウンド接続の詳細については、「Azure の既定の送信アクセス」および「送信接続で Source Network Address Translation (SNAT) を使用する」を参照してください。

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

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

既定のルートを作成する

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

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

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

  1. Azure portal で、 ルート テーブルを検索して選択します。

  2. [作成] を選択します

  3. [基本] タブで次の設定を構成します。

    設定
    Subscription サブスクリプションを選択します。
    リソースグループ Test-FW-RG
    リージョン 米国西部
    名前 Firewall-route
    ゲートウェイのルートを伝達する お好みを選択する
  4. [確認と作成] を選択します。

  5. [作成] を選択します

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

  1. [ファイアウォール ルート] ページで、[設定]>[サブネット]、[関連付け] の順に選択します。

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

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

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

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

  6. 次の設定でルートを構成します。

    設定
    ルート名 fw-dg
    変換先の型 IP アドレス
    宛先 IP アドレス/CIDR 範囲 0.0.0.0/0
    次ホップの種類 仮想アプライアンス。 Azure Firewall は実際はマネージド サービスですが、この状況では仮想アプライアンスが動作します。
    ネクストホップ アドレス 前にメモしたファイアウォールのプライベート IP アドレス
  7. [追加]を選択します。

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

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

  1. Test-FW-RG リソース グループを開き、Test-FW01 ファイアウォールを選択します。

  2. Test-FW01 ページの [設定] で、 [規則 (クラシック)] を選択します。

  3. [アプリケーション ルール コレクション] タブを選択します。

  4. [アプリケーション ルール コレクションの追加] を選択します。

  5. 次の設定でルール コレクションを構成します。

    設定
    名前 App-Coll01
    Priority 200
    アクション 許可
  6. [ ルール] の [ ターゲット FQDN] で、次の設定を構成します。

    設定
    名前 Allow-Google
    ソースの種類 IPアドレス
    情報源 10.0.2.0/24
    プロトコル:ポート http、https
    ターゲットの FQDN www.google.com
  7. [追加]を選択します。

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

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

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

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

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

  3. 次の設定でルール コレクションを構成します。

    設定
    名前 Net-Coll01
    Priority 200
    アクション 許可
  4. [ルール] の [IP アドレス] で、次の設定を構成します。

    設定
    名前 Allow-DNS
    プロトコル UDP
    ソースの種類 IPアドレス
    情報源 10.0.2.0/24
    変換先の型 IPアドレス
    宛先アドレス 209.244.0.3,209.244.0.4 (Level3 が運用するパブリック DNS サーバー)
    ターゲット ポート 53
  5. [追加]を選択します。

Azure Bastion をデプロイする

次に、Azure Bastion をデプロイして、仮想マシンへの安全なアクセスを提供します。

  1. Azure portal のメニューで、[リソースの作成] を選択します。

  2. 検索ボックスに「 Bastion 」と入力し、結果から選択します。

  3. [作成] を選択します

  4. [基本] タブで次の設定を構成します。

    設定
    Subscription サブスクリプションを選択します。
    リソースグループ Test-FW-RG
    名前 Test-Bastion
    リージョン 米国西部
    レベル 開発者
    仮想ネットワーク Test-FW-VN
    サブネット [ サブネットの編集] を選択する
  5. [ サブネットの編集] ページで、次の設定を構成します。

    設定
    開始アドレス 10.0.4.0/26
    サイズ /26
  6. [ 保存] を 選択し、[サブネット] ページを閉じます。

  7. [確認と作成] を選択します。

  8. 検証に合格したら、[ 作成] を選択します。

Note

Bastion のデプロイが完了するまでに約 10 分かかります。 Developer レベルは、テストと評価を目的としています。 運用環境のデプロイについては、Azure Bastion SKU の比較で Azure Bastion SKU オプションを確認してください。

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

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

  1. Azure portal メニューで [リソース グループ] を選択するか、または任意のページから [リソース グループ] を検索して選択します。 [Test-FW-RG] リソース グループを選択します。

  2. Srv-Work 仮想マシンのネットワーク インターフェイスを選択します。

  3. [設定] で、[DNS サーバー] を選択します。

  4. [DNS サーバー] で、[カスタム] を選択します。

  5. 次の DNS サーバーを構成します。

    DNS サーバー
    プライマリ 209.244.0.3
    Secondary 209.244.0.4
  6. [保存] を選択します。

  7. Srv-Work 仮想マシンを再起動します。

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

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

  1. Azure portal で、 Srv-Work 仮想マシンに移動します。

  2. [ 接続] を選択し、[ Bastion 経由で接続] を選択します。

  3. [ローカル ファイルから SSH 秘密キーを使用する] を選択します。

  4. [ Username]\(ユーザー名\)「azureuser」と入力します。

  5. フォルダー アイコンを選択し、先ほどダウンロードした Srv-Work_key.pem ファイルを参照します。

  6. [接続] を選択します。

  7. bash プロンプトで、次のコマンドを実行して DNS 解決をテストします。

    nslookup www.google.com
    nslookup www.microsoft.com
    

    どちらのコマンドでも、DNS クエリがファイアウォールを通過していることを示す回答を返します。

  8. 次のコマンドを実行して、アプリケーションルールをテストします。

    curl https://www.google.com
    curl https://www.microsoft.com
    

    www.google.com要求は成功し、HTML 応答が表示されます。

    www.microsoft.com要求は失敗し、ファイアウォールが要求をブロックしていることを示します。

これで、ファイアウォール ルールが動作していることを確認できました:

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

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

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

次のステップ