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 サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
ネットワークのセットアップ
最初に、ファイアウォールをデプロイするために必要なリソースを含めるリソース グループを作成します。 その後、仮想ネットワーク、サブネット、およびテスト サーバーを作成します。
リソース グループの作成
このリソース グループには、この手順で使用するすべてのリソースが含まれます。
- Azure portal にサインインします。
- Azure portal メニューで [リソース グループ] を選択するか、または任意のページから [リソース グループ] を検索して選択します。 [作成] を選択します。
- [サブスクリプション] で、ご使用のサブスクリプションを選択します。
- [リソース グループ名] に「Test-FW-RG」と入力します。
- [リージョン] でリージョンを選択します。 作成する他のすべてのリソースも、同じリージョン内のものである必要があります。
- [Review + create](レビュー + 作成) を選択します。
- [作成] を選択します。
仮想ネットワークの作成
この仮想ネットワークには 2 つのサブネットが含まれています。
Note
AzureFirewallSubnet サブネットのサイズは /26 です。 サブネットのサイズの詳細については、「Azure Firewall に関する FAQ」を参照してください。
- Azure portal メニュー上または [ホーム] ページから、[仮想ネットワーク] を検索します。
- 検索結果で、[仮想ネットワーク] を選択します。
- [作成] を選択します
- [サブスクリプション] で、ご使用のサブスクリプションを選択します。
- [リソース グループ] で、 [Test-FW-RG] を選択します。
- [仮想ネットワーク名] に、「Test-FW-VN」と入力します。
- [リージョン] で、前に使用したのと同じリージョンを選択します。
- [次へ] を選択します。
- [セキュリティ] タブで、[Azure Firewall を有効にする] を選択します。
- [Azure Firewall 名] に、「Test-FW01」と入力します。
- [Azure Firewall のパブリック IP アドレス] では、[パブリック IP アドレスの作成] を選択します。
- [名前] に、「fw-pip」と入力し、[OK] を選択します。
- [次へ] を選択します。
- [アドレス空間] には、既定値の 10.0.0.0/16 をそのまま使用します。
- [サブネット] で、[既定] を選択し、[名前] を [Workload-SN] に変更します。
- [開始アドレス] に、「10.0.2.0/24」と入力します。
- [保存] を選択します。
- [Review + create](レビュー + 作成) を選択します。
- [作成] を選択します
Note
Azure Firewall は、利用できるポートに基づき、必要に応じてパブリック IP を使います。 アウトバウンド接続用のパブリック IP をランダムに選んで以降、現在のパブリック IP からそれ以上接続できなくなった後は、次に使用可能なパブリック IP のみが使われます。 トラフィック量とスループットが大きいシナリオでは、NAT Gateway を使ってアウトバウンド接続を提供することをお勧めします。 SNAT ポートは、NAT Gateway に関連付けられているすべてのパブリック IP に動的に割り当てられます。 詳しくは、NAT Gateway と Azure Firewall の統合に関する記事をご覧ください。
仮想マシンの作成
ワークロード仮想マシンを作成し、Workload-SN サブネットに配置します。
Azure portal メニュー上または [ホーム] ページから [リソースの作成] を選択します。
[Windows Server 2019 Datacenter] を選択します。
次の仮想マシンの値を入力します。
設定 値 Resource group Test-FW-RG 仮想マシン名 Srv-Work リージョン 前と同じ Image Windows Server 2019 Datacenter 管理者のユーザー名 ユーザー名を入力します Password パスワードを入力します [受信ポートの規則] の [パブリック受信ポート] で、 [なし] を選択します。
他の既定値をそのまま使用し、 [次へ:ディスク] を選択します。
ディスクの既定値をそのまま使用し、 [次へ:ネットワーク] を選択します。
仮想ネットワークとして Test-FW-VN が選択されていること、およびサブネットが Workload-SN であることを確認します。
[パブリック IP] で、 [なし] を選択します。
他の既定値をそのまま使用し、 [次へ:管理] を選択します。
既定値をそのまま使用し、[次へ: 監視] を選択します。
[起動の診断] で、[無効] を選択して起動の診断を無効にします。 他の既定値をそのまま使用し、 [確認および作成] を選択します。
概要ページの設定を確認して、 [作成] を選択します。
デプロイが完了したら、[リソースに移動] を選択し、後で使用する必要がある 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)を使用する」を参照してください。
ファイアウォールを調べる
- リソース グループに移動し、ファイアウォールを選択します。
- ファイアウォールのプライベートおよびパブリック IP アドレスをメモします。 これらのアドレスは後で使用します。
既定のルートを作成する
ファイアウォール経由で送信および受信接続のルートを作成する場合は、仮想アプライアンスのプライベート IP をネクスト ホップとした 0.0.0.0/0 への既定のルートがあれば十分です。 これにより、送信および受信接続がファイアウォール経由で送信されます。 たとえば、ファイアウォールで TCP ハンドシェイクが実行され、受信要求への応答が行われる場合、応答はトラフィックの送信元の IP アドレスに送信されます。 これは仕様です。
このため、AzureFirewallSubnet の IP 範囲を含めるための別のユーザー定義ルートを作成する必要はありません。 これにより、接続が切断される可能性があります。 元の既定のルートで十分です。
Workload-SN サブネットでは、アウトバウンドの既定ルートがファイアウォールを通過するように構成します。
- Azure portal で、[ルート テーブル] を検索します。
- 検索結果で [ルート テーブル] を選択します。
- [作成] を選択します
- [サブスクリプション] で、ご使用のサブスクリプションを選択します。
- [リソース グループ] で、 [Test-FW-RG] を選択します。
- [リージョン] で、以前使用したのと同じ場所を選択します。
- [名前] に「Firewall-route」と入力します。
- [Review + create](レビュー + 作成) を選択します。
- [作成] を選択します
デプロイが完了したら、[リソースに移動] を選択します。
[Firewall-route] ページで、[サブネット] を選択し、[関連付け] を選択します。
[仮想ネットワーク] では、Test-FW-VN を選択します。
[サブネット] で、 [Workload-SN] を選択します。 必ずこのルートの Workload-SN サブネットのみを選択してください。それ以外の場合、ファイアウォールが正常に動作しません。
[OK] を選択します。
[ルート] 、 [追加] の順に選択します。
[ルート名] に「fw-dg」と入力します。
[送信先の種類] として [IP アドレス] を選択します。
[宛先 IP アドレス/CIDR 範囲] に「0.0.0.0/0」と入力します。
[次ホップの種類] で、 [仮想アプライアンス] を選択します。
Azure Firewall は実際はマネージド サービスですが、この状況では仮想アプライアンスが動作します。
[次ホップ アドレス] に、前にメモしておいたファイアウォールのプライベート IP アドレスを入力します。
[追加] を選択します。
アプリケーション ルールを構成する
これは、www.google.com
へのアウトバウンド アクセスを許可するアプリケーション ルールです。
- Test-FW-RG を開き、 [Test-FW01] ファイアウォールを選択します。
- Test-FW01 ページの [設定] で、 [規則 (クラシック)] を選択します。
- [アプリケーション ルール コレクション] タブを選択します。
- [アプリケーション ルール コレクションの追加] を選択します。
- [名前] に「App-Coll01」と入力します。
- [優先度] に「200」と入力します。
- [アクション] で、 [許可] を選択します。
- [ルール] の [ターゲットの FQDN] で、 [名前] に「Allow-Google」と入力します。
- [Source type](送信元の種類) で、 [IP アドレス] を選択します。
- [送信元] に「10.0.2.0/24」と入力します。
- [プロトコル:ポート] に「http, https」と入力します。
- [ターゲットの FQDN] に「
www.google.com
」と入力します - [追加] を選択します。
Azure Firewall には、既定で許可されるインフラストラクチャ FQDN 用の組み込みのルール コレクションが含まれています。 これらの FQDN はプラットフォームに固有であり、他の目的には使用できません。 詳細については、インフラストラクチャ FQDN に関する記事を参照してください。
ネットワーク ルールを構成する
これは、ポート 53 (DNS) で 2 つの IP アドレスへのアウトバウンド アクセスを許可するネットワーク ルールです。
[ネットワーク ルール コレクション] タブを選択します。
[ネットワーク ルール コレクションの追加] を選択します。
[名前] に「Net-Coll01」と入力します。
[優先度] に「200」と入力します。
[アクション] で、 [許可] を選択します。
[ルール] の [IP アドレス] で、 [名前] に「Allow-DNS」と入力します。
[プロトコル] で [UDP] を選択します。
[Source type](送信元の種類) で、 [IP アドレス] を選択します。
[送信元] に「10.0.2.0/24」と入力します。
[送信先の種類] として [IP アドレス] を選択します。
[送信先アドレス] に「209.244.0.3,209.244.0.4」と入力します
これらは、Level3 によって運用されるパブリック DNS サーバーです。
[宛先ポート] に「53」と入力します。
[追加] を選択します。
DNAT ルールを構成する
このルールを使用すると、ファイアウォールを介して、リモート デスクトップを Srv-Work 仮想マシンに接続できます。
- [NAT ルール コレクション] タブを選択します。
- [NAT ルール コレクションの追加] を選択します。
- [名前] に「rdb」と入力します。
- [優先度] に「200」と入力します。
- [ルール] の [名前] に「rdp-nat」と入力します。
- [プロトコル] で [TCP] を選択します。
- [Source type](送信元の種類) で、 [IP アドレス] を選択します。
- [送信先] に「*」を入力します。
- [宛先アドレス] に、ファイアウォールのパブリック IP アドレスを入力します。
- [宛先ポート] に「3389」と入力します。
- [変換されたアドレス] に、Srv-work のプライベート IP アドレスを入力します。
- [Translated port] (変換されたポート) に「3389」と入力します。
- [追加] を選択します。
Srv-Work ネットワーク インターフェイスのプライマリおよびセカンダリ DNS アドレスを変更する
テストのために、サーバーのプライマリおよびセカンダリ DNS アドレスを構成します。 これは、一般的な Azure Firewall 要件ではありません。
- Azure portal メニューで [リソース グループ] を選択するか、または任意のページから [リソース グループ] を検索して選択します。 [Test-FW-RG] リソース グループを選択します。
- Srv-Work 仮想マシンのネットワーク インターフェイスを選択します。
- [設定] で、 [DNS サーバー] を選択します。
- [DNS サーバー] で、 [カスタム] を選択します。
- [DNS サーバーの追加] テキスト ボックスに「209.244.0.3」と入力し、次のテキスト ボックスに「209.244.0.4」と入力して Enter キーを押します。
- [保存] を選択します。
- Srv-Work 仮想マシンを再起動します。
ファイアウォールをテストする
今度は、ファイアウォールをテストして、想定したように機能することを確認します。
リモート デスクトップをファイアウォールのパブリック IP アドレスに接続し、Srv-Work 仮想マシンにサインインします。
Internet Explorer を開き、
https://www.google.com
を参照します。Internet Explorer のセキュリティ アラートで、 [OK]>[閉じる] の順に選択します。
Google のホーム ページが表示されます。
https://www.microsoft.com
を参照します。ファイアウォールによってブロックされるはずです。
これで、ファイアウォール規則が機能していることを確認できました。
- RDP を使用して仮想マシンに接続できます。
- 1 つの許可された FQDN は参照できますが、それ以外は参照できません。
- 構成された外部 DNS サーバーを使用して DNS 名を解決できます。
リソースをクリーンアップする
引き続きテストを行うために、ファイアウォール リソースを残しておいてもかまいませんが、不要であれば、Test-FW-RG リソース グループを削除して、ファイアウォール関連のすべてのリソースを削除してください。