Azure

オンプレミス(VPN)からの通信をAzure Firewall 経由で制御する

はじめに

オンプレミスからAzure Firewall 経由でリソースと通信を行う方法を紹介したいと思います。

オンプレミスからのアクセスを制御するための方法になります。Azure Firewallを経由することで、ログの取得やL7、L4での制御が行えるようになります。

以前、格安VPNルータを利用してAzure接続方法、FirewallをDNS Proxyとして利用する方法を紹介しましたがこの続きになります。

8800円の格安VPNルータで家とAzure間をサイト対サイトVPN(IPSec)で接続する - 技術的な何か。
8800円の格安VPNルータで家とAzure間をサイト対サイトVPN(IPSec)で接続する - 技術的な何か。

はじめに Azureと拠点を結ぶためにはVPNかExpress Routeによる接続が必要となります。しかし、少数の拠点ではExpress Routeはコスパが悪いです。また、個人でVPN用にルータを

level69.net

Azure FirewallのDNS Proxy機能で実現するシームレスなハイブリッドクラウド環境 - 技術的な何か。
Azure FirewallのDNS Proxy機能で実現するシームレスなハイブリッドクラウド環境 - 技術的な何か。

はじめに ハイブリッドクラウド環境の構築において重要な機能のひとつにDNSがあります。しかし、ひとつ問題としてオンプレにしろクラウドにしろDNSサーバーの運用は行いたくないですね。 そこでAzureに

level69.net

前提条件

すでにVPNでAzureと接続されており、Firewallの導入も完了していることが前提条件です。

下記の記事を参考に構築を行ってください。

8800円の格安VPNルータで家とAzure間をサイト対サイトVPN(IPSec)で接続する - 技術的な何か。
8800円の格安VPNルータで家とAzure間をサイト対サイトVPN(IPSec)で接続する - 技術的な何か。

はじめに Azureと拠点を結ぶためにはVPNかExpress Routeによる接続が必要となります。しかし、少数の拠点ではExpress Routeはコスパが悪いです。また、個人でVPN用にルータを

level69.net

Azure FirewallのDNS Proxy機能で実現するシームレスなハイブリッドクラウド環境 - 技術的な何か。
Azure FirewallのDNS Proxy機能で実現するシームレスなハイブリッドクラウド環境 - 技術的な何か。

はじめに ハイブリッドクラウド環境の構築において重要な機能のひとつにDNSがあります。しかし、ひとつ問題としてオンプレにしろクラウドにしろDNSサーバーの運用は行いたくないですね。 そこでAzureに

level69.net

構成

Azure Firewallを経由した場合の構成図は以下のようになります。

Azure Firewall経由で通信を行うためには、Firewallポリシーの追加、UDRの追加を行うことで実現します。

また、検証用としてVNETを追加しています。追加したVNETとピアリング経由でサーバーへアクセスできるように設定も行います。

作業は以下の順で行います。

  1. 検証用のVNET、仮想マシンの作成とピアリング
  2. Firewallポリシーの追加()
  3. UDRの追加

検証用のVNET、仮想マシンの作成とピアリング

検証用用にVNETと仮想マシンを追加します。これらは特殊な設定はないので通常通り作成します。ただし、他のVNETとCIDRが被らないように作成します。

作成たVNETとFirewallがあるVNETとピアリングを行います。

Firewall側のVNETからピアリングの設定を行います。どちらのVNETから設定しても問題ありません。

ここで重要なのは仮想ネットワークを使用するという点です。

  • ピアリング リンク名:任意
  • リモート仮想ネットワークへのトラフィック:許可
  • リモート仮想ネットワークから転送されたトラフィック:許可
  • 仮想ネットワークゲートウェイまたはルートサーバー:この仮想ネットワークのゲートウェイまたはルートサーバーを使用する(検証用のVNETから行う場合はリモートのゲートウェイを選択する)

  • ピアリング リンク名:任意
  • 仮想ネットワークのデプロイモデル:Resource Manager
  • 仮想ネットワーク:検証用のVNET
  • リモート仮想ネットワークへのトラフィック:許可
  • リモート仮想ネットワークから転送されたトラフィック:許可
  • 仮想ネットワークゲートウェイまたはルートサーバー:リモート仮想ネットワークのゲートウェイまたはルートサーバーを使用する

以上でピアリングの設定は完了です。

Firewallポリシーの追加

Firewallのポリシーを追加します。Firewallと同じVNETにある仮想マシンと、ピアリング先の仮想マシンは同じルールを利用します。分けたい場合はターゲットを変更して分ける必要があります。

ネットワーク規則を追加し、L4で制御します。今回は、オンプレミスのサーバー、クライアントが自由にAzure側のリソースに通信できるようにします。

ネットワーク規則を開き規則コレクションの追加を行います。

  • 名前:任意
  • 規則コレクションの種類:ネットワーク
  • 優先度:任意
  • 規則コレクション アクション:許可
  • 規則コレクション グループ:任意(既定の名前でOK)
  • 規則
    • 名前:任意
    • ソースの種類:IPアドレス
    • ソース:192.168.1.0/24(オンプレミス側のIP)
    • プロトコル:TCP、UDP、ICMP、任意
    • 宛先ポート:*
    • Destination Type:IPアドレス
    • ターゲット:*

 

上記の設定でポリシーの追加は完了です。

次にUDRを追加します。

UDRの追加

下記を参考に行っています。

Azure portal を使用してハイブリッド ネットワークに Azure Firewall をデプロイして構成する | Microsoft Learn
Azure portal を使用してハイブリッド ネットワークに Azure Firewall をデプロイして構成する | Microsoft Learn

この記事では、Azure portal を使用して Azure Firewall をデプロイおよび構成する方法について説明します。

docs.microsoft.com

Azure Firewall経由で通信を行う場合に各サブネットにUDR(ルートテーブル)を追加し制御する必要があります。

  • Virtual Network Gateway(VNET用ルート)
  • 検証用VNET(オンプレミス用ルート)
  • Azure Firewallと同一仮想ネットワークのサブネット(オンプレミス用ルート)

それぞれUDRは事前に作成しておきます。作成後ルートを設定していきます。

Virtual Network Gateway(VNET用ルート)

VNET用ルートを定義します。

ルートは分けて設定しても良いし、まとめて設定しても良いと思います。これは設計時に考慮して決めてください。

今回はルートを分けて設定します。

ひとつ目は検証用VNETのルートを設定します。

  • ルート名:任意
  • アドレスプレフィックスソース:IPアドレス
  • ソースIPアドレス/CIDR範囲:10.3.0.0/24
  • ネクストホップの種類:仮想アプライアンス
  • ネクストホップアドレス:10.0.3.4(FirewallのIPアドレス)

 

次にAzure Firewallと同一仮想ネットワークのサブネット用にルートを追加します。

  • ルート名:任意
  • アドレスプレフィックスソース:IPアドレス
  • ソースIPアドレス/CIDR範囲:10.0.0.0/24
  • ネクストホップの種類:仮想アプライアンス
  • ネクストホップアドレス:10.0.3.4(FirewallのIPアドレス)

このUDRをGatewaySubnetに追加します。

検証用VNET(オンプレミス用ルート)

検証用VNETのルートを設定します。

ここでソースIPを0.0.0.0/0にしている理由はデフォルトゲートウェイを設定しています。UDRで設定することで直接インターネットに通信できないようにしています。

直接、インターネットに通信を行ってよいのであれば192.168.1.0/24を設定します。

  • ルート名:任意
  • アドレスプレフィックスソース:IPアドレス
  • ソースIPアドレス/CIDR範囲:0.0.0.0/0
  • ネクストホップの種類:仮想アプライアンス
  • ネクストホップアドレス:10.0.3.4(FirewallのIPアドレス)

このUDRを検証用VNETのサブネットに追加します。

Azure Firewallと同一仮想ネットワークのサブネット(オンプレミス用ルート)

Azure Firewallと同一仮想ネットワークのサブネットのルートを設定します。

ここでソースIPを0.0.0.0/0にしている理由はデフォルトゲートウェイを設定しています。UDRで設定することで直接インターネットに通信できないようにしています。

直接、インターネットに通信を行ってよいのであれば192.168.1.0/24を設定します。

  • ルート名:任意
  • アドレスプレフィックスソース:IPアドレス
  • ソースIPアドレス/CIDR範囲:0.0.0.0/0
  • ネクストホップの種類:仮想アプライアンス
  • ネクストホップアドレス:10.0.3.4(FirewallのIPアドレス)

このUDRをAzure Firewallと同一仮想ネットワークのサブネットに追加します。

疎通確認

それぞれ問題なく疎通出来ることを確認します。

各サーバーにはnginxが事前に導入されています。導入しない場合はPingなどで確認するとよいと思います。

PS C:\Users\user1> curl http://10.3.0.4

StatusCode : 200
StatusDescription : OK
Content : <!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

PS C:\Users\user1> curl http://10.0.0.4

StatusCode : 200
StatusDescription : OK
Content : <!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

まとめ

Azure Firewall経由で通信を行うための方法を紹介しました、Firewall経由にする理由としてはセキュリティの強化などがあげられます。例としてプライベートエンドポイントを利用する場合にも用います。

いろいろと汎用性の高い構成かと思いますのでセキュリティを考慮する場合は検討してみても良いのではないでしょうか。

プライベート エンドポイント宛てのトラフィックを検査する Azure Firewall シナリオ - Azure Private Link | Microsoft Learn
プライベート エンドポイント宛てのトラフィックを検査する Azure Firewall シナリオ - Azure Private Link | Microsoft Learn

Azure Firewall を使用してプライベート エンドポイント宛てのトラフィックを検査するさまざまなシナリオについて説明します。

docs.microsoft.com

-Azure
-, ,