Az - Azure Network

Support HackTricks

基本情報

Azure内のネットワークは、そのクラウドコンピューティングプラットフォームの不可欠な部分として機能し、さまざまなAzureサービスとリソース間の接続と通信を可能にします。Azureのネットワークアーキテクチャは、高度にスケーラブルで安全かつカスタマイズ可能に設計されています。

Azureの中心には、ユーザーがAzureクラウド内に隔離されたネットワークを作成できる**仮想ネットワーク(VNet)**があります。これらのVNet内では、仮想マシン、アプリケーション、データベースなどのリソースを安全にホストおよび管理できます。Azureのネットワーキングは、クラウド内の通信(Azureサービス間)と外部ネットワークおよびインターネットへの接続の両方をサポートします。

セキュリティはAzureネットワーキングの重要な側面であり、データの保護、アクセス管理、コンプライアンスの確保のためのさまざまなツールとサービスが利用可能です。これらのセキュリティ対策には、ファイアウォールネットワークセキュリティグループ、および暗号化機能が含まれ、トラフィックとアクセスの高度な制御が可能です。

全体として、Azureのネットワーキング機能は柔軟性を提供するように設計されており、ユーザーが特定のアプリケーションおよびワークロードのニーズに合わせたネットワーク環境を作成できるようにしながら、セキュリティと信頼性を強調しています。

仮想ネットワーク (VNET) とサブネット

AzureのVNetは、クラウド内の独自のネットワークの表現です。これは、Azureクラウドの論理的な隔離であり、サブスクリプションに専用されています。VNetを使用すると、Azureで仮想プライベートネットワーク(VPN)をプロビジョニングおよび管理でき、仮想マシン(VM)、データベース、アプリケーションサービスなど、さまざまな種類のAzureリソースをホストおよび管理するために使用できます。

VNetは、IPアドレス範囲、サブネットの作成、ルートテーブル、ネットワークゲートウェイなど、ネットワーク設定を完全に制御できます。

サブネットは、VNet内のIPアドレスの範囲です。VNetを複数のサブネットに分割して、組織化とセキュリティを図ることができます。VNet内の各サブネットは、ネットワークおよびアプリケーションアーキテクチャに従ってリソースを分離およびグループ化するために使用できます。

さらに、サブネットを使用すると、VNetを1つ以上のサブネットワークにセグメント化し、リソースが使用できるIPアドレスの範囲を提供できます。

  • 10.0.0.0/16のIPアドレス範囲を持つMyVNetという名前のVNetがあるとします。このVNet内に、10.0.0.0/24のIPアドレス範囲を持つSubnet-1というサブネットを作成し、Webサーバーをホストすることができます。別のサブネットである10.0.1.0/24の範囲を持つSubnet-2は、データベースサーバー用に使用できます。このセグメンテーションにより、ネットワーク内の効率的な管理とセキュリティコントロールが可能になります。

列挙

Azureアカウント内のすべてのVNetとサブネットを一覧表示するには、Azureコマンドラインインターフェイス(CLI)を使用できます。手順は次のとおりです:

# List VNets
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List subnets of a VNet
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, addressPrefix:addressPrefix}" -o table

Network Security Groups (NSG)

Azureにおいて、Network Security Group (NSG)は、Azure Virtual Network (VNet)内のAzureリソースへの入出力ネットワークトラフィックをフィルタリングする主要な機能を果たします。これは、ネットワークトラフィックの流れを詳細に指示するセキュリティルールのセットを保持しています。

NSGの主な側面は以下の通りです:

  • トラフィック制御: 各NSGには、さまざまなAzureリソースに関連する入出力ネットワークトラフィックを許可または遮断するためのルールが含まれています。

  • ルールの構成要素: NSG内のルールは、送信元/送信先のIPアドレス、ポート、プロトコルなどの基準に基づいてトラフィックをフィルタリングするため、非常に具体的です。この具体性により、ネットワークトラフィックの詳細な管理が可能になります。

  • セキュリティの強化: 許可されたトラフィックのみがAzureリソースに出入りできるようにすることで、NSGはネットワークインフラのセキュリティ体制を強化する重要な役割を果たします。

  • VNet内のサブネットまたは特定の仮想マシンに適用されたMyNSGという名前のNSGがあるとします。以下のようなルールを作成できます:

  • 任意の送信元からのHTTPトラフィック(ポート80)をWebサーバーに許可するインバウンドルール。

  • 特定の送信先IPアドレス範囲に対してのみSQLトラフィック(ポート1433)を許可するアウトバウンドルール。

列挙

# List NSGs
az network nsg list --query "[].{name:name, location:location}" -o table

# Get NSG rules
az network nsg rule list --nsg-name <NSGName> --resource-group <ResourceGroupName> --query "[].{name:name, priority:priority, direction:direction, access:access, protocol:protocol, sourceAddressPrefix:sourceAddressPrefix, destinationAddressPrefix:destinationAddressPrefix, sourcePortRange:sourcePortRange, destinationPortRange:destinationPortRange}" -o table

Azure Firewall

Azure Firewallは、Azure Virtual Networkリソースを保護するマネージドクラウドベースのネットワークセキュリティサービスです。高可用性とスケーラビリティ機能を備えた完全なステートフルファイアウォールサービスです。

Azure Firewallは、NSGよりも高度な機能を提供し、アプリケーションレベルのフィルタリング、ネットワークレベルのフィルタリング、脅威インテリジェンスベースのフィルタリング、Azure Monitorとの統合によるログと分析をサポートします。 アウトバウンド、インバウンド、スポーク間、VPN、およびExpressRouteトラフィックをフィルタリングできます。ファイアウォールルールはFQDN(完全修飾ドメイン名)、IPアドレス、およびポートに基づいて作成できます

Azure FirewallとNSGの違い

  1. スコープ:

  • NSG: サブネットまたはネットワークインターフェイスレベルで動作します。ネットワークインターフェイス(NIC)、VM、またはサブネットからのインバウンドおよびアウトバウンドトラフィックの基本的なフィルタリングを提供することを目的としています。

  • Azure Firewall: VNetレベルで動作し、より広範な保護を提供します。仮想ネットワークリソースを保護し、VNet内外のトラフィックを管理するように設計されています。

  1. 機能:

  • NSG: IPアドレス、ポート、およびプロトコルに基づく基本的なフィルタリング機能を提供します。アプリケーションレベルの検査や脅威インテリジェンスのような高度な機能はサポートしていません。

  • Azure Firewall: アプリケーションレベル(レイヤー7)のトラフィックフィルタリング、脅威インテリジェンスベースのフィルタリング、ネットワークトラフィックフィルタリングなどの高度な機能を提供します。また、複数のパブリックIPアドレスをサポートします。

  1. ユースケース:

  • NSG: 基本的なネットワークレベルのトラフィックフィルタリングに最適です。

  • Azure Firewall: アプリケーションレベルの制御、ログ記録、および脅威インテリジェンスが必要なより複雑なフィルタリングシナリオに適しています。

  1. 管理と監視:

  • NSG: 基本的なログ記録とAzure Monitorとの統合を提供します。

  • Azure Firewall: Azure Monitorを通じて高度なログ記録と分析機能を提供し、トラフィックの性質とパターンを理解するために不可欠です。

列挙

# List Azure Firewalls
az network firewall list --query "[].{name:name, location:location, subnet:subnet, publicIp:publicIp}" -o table

# Get network rules of a firewall
az network firewall network-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get application rules of a firewall
az network firewall application-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get nat rules of a firewall
az network firewall nat-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

Network Virtual Appliance (NVA)

AzureのNetwork Virtual Appliance (NVA)は、仮想ネットワーク内でネットワーク機能を実行する仮想アプライアンスです。NVAsは通常、Azureでネイティブに利用できないネットワーク機能や、よりカスタマイズが必要な場合に使用されます。これらは本質的にネットワークアプリケーションやサービスを実行するVMであり、ファイアウォール、WAN最適化、ロードバランサーなどが含まれます。

NVAsは、複雑なルーティング、セキュリティ、およびネットワークトラフィック管理のタスクに使用されます。Azure Marketplaceからデプロイでき、多くのサードパーティベンダーがAzure環境に統合するためのアプライアンスを提供しています。

  • 組織はAzureにNVAをデプロイして、カスタムファイアウォールソリューションを作成できます。このNVAはサードパーティのファイアウォールソフトウェアを実行し、侵入検知、パケット検査、VPN接続などの高度な機能を提供します。NVAは通過するトラフィックを検査およびフィルタリングするように構成でき、組織のポリシーに従って強化されたセキュリティ対策を確保します。

列挙

# Usually NVAs are named or tagged in a way to distinguish them from other VMs
az vm list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# For a specific VM identified as an NVA, list its network interfaces
az vm nic list --vm-name <VMName> --resource-group <ResourceGroupName> --query "[].{id:id}" -o table

Azure Route Tables & User Defined Routes (UDR)

Azure Route Tables は、Microsoft Azure 内で Azure Virtual Networks (VNets) 内のネットワークトラフィックのルーティングを制御する 機能です。基本的に、パケットサブネット間、VNet 間、または外部ネットワークへの転送 方法を定義します。各ルートテーブルには、宛先 IP アドレスに基づいてパケットをルーティングする方法を指定する一連のルール(ルート)が含まれています。

User Defined Routes (UDR) は、Azure Route Tables 内で作成する カスタムルート であり、Azure Virtual Networks (VNets) 内および VNet 間、外部接続への ネットワークトラフィックの流れを制御 します。UDR は、Azure のデフォルトのルーティング決定を上書きして、特定の要件に応じてネットワークトラフィックを指示する柔軟性を提供します。

これらのルートは、仮想アプライアンスを通じてトラフィックをルーティング する必要がある場合、セキュリティやポリシーの遵守のために特定の経路を強制する場合、またはオンプレミスネットワークと統合する場合に特に役立ちます。

  • VNet 内のサブネット間のトラフィックを検査するために Network Virtual Appliance (NVA) をデプロイしたと仮定します。あるサブネットから別のサブネットへのすべてのトラフィックを NVA を通過させる UDR を作成できます。この UDR により、トラフィックが目的地に到達する前に NVA がセキュリティ目的でトラフィックを検査することが保証されます。

列挙

# List Route Tables
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List UDRs for a table
az network route-table route list --route-table-name <RouteTableName> --resource-group <ResourceGroupName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table

Azure Private Linkは、Azureのサービスであり、Azureの仮想ネットワーク(VNet)とサービス間のトラフィックが完全にMicrosoftのAzureバックボーンネットワーク内を移動することを保証することにより、Azureサービスへのプライベートアクセスを可能にします。これにより、サービスが実質的にVNet内に持ち込まれます。この設定により、データがパブリックインターネットにさらされることなくセキュリティが強化されます。

Private Linkは、Azure Storage、Azure SQL Database、およびPrivate Linkを介して共有されるカスタムサービスなど、さまざまなAzureサービスで使用できます。これにより、自分のVNet内や異なるAzureサブスクリプションからサービスを安全に利用する方法が提供されます。

NSGはプライベートエンドポイントには適用されません。これは、Private Linkを含むサブネットにNSGを関連付けても効果がないことを明確に意味します。

Example

  • VNetから安全にアクセスしたいAzure SQL Databaseがあるシナリオを考えてみましょう。通常、これはパブリックインターネットを経由することを伴うかもしれません。Private Linkを使用すると、VNet内にAzure SQL Databaseサービスに直接接続するプライベートエンドポイントを作成できます。このエンドポイントにより、データベースが自分のVNetの一部であるかのように見え、プライベートIPアドレスを介してアクセスできるため、安全でプライベートなアクセスが保証されます。

Enumeration

# List Private Link Services
z network private-link-service list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List Private Endpoints
az network private-endpoint list --query "[].{name:name, location:location, resourceGroup:resourceGroup, privateLinkServiceConnections:privateLinkServiceConnections}" -o table

Azure Service Endpoints

Azure Service Endpointsは、仮想ネットワークのプライベートアドレス空間とVNetのアイデンティティをAzureサービスに直接接続することで拡張します。サービスエンドポイントを有効にすることで、VNet内のリソースはAzureのバックボーンネットワークを使用してAzureサービス(Azure StorageやAzure SQL Databaseなど)に安全に接続できます。これにより、VNetからAzureサービスへのトラフィックがAzureネットワーク内に留まるため、より安全で信頼性の高い経路が提供されます。

  • 例えば、Azure Storageアカウントはデフォルトでパブリックインターネット経由でアクセス可能です。VNet内でAzure Storageのサービスエンドポイントを有効にすることで、VNetからのトラフィックのみがストレージアカウントにアクセスできるようにすることができます。その後、ストレージアカウントのファイアウォールをVNetからのトラフィックのみを受け入れるように構成できます。

列挙

# List Virtual Networks with Service Endpoints
az network vnet list --query "[].{name:name, location:location, serviceEndpoints:serviceEndpoints}" -o table

# List Subnets with Service Endpoints
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}" -o table

Service EndpointsとPrivate Linksの違い

MicrosoftはdocsでPrivate Linksの使用を推奨しています:\

Service Endpoints:

  • VNetからAzureサービスへのトラフィックは、パブリックインターネットを経由せずにMicrosoft Azureバックボーンネットワークを通過します。

  • エンドポイントはAzureサービスへの直接接続であり、VNet内にサービスのプライベートIPを提供しません。

  • サービス自体は、サービスファイアウォールを設定してそのようなトラフィックをブロックしない限り、VNet外部からパブリックエンドポイントを介してアクセス可能です。

  • サブネットとAzureサービスの間は一対一の関係です。

  • Private Linksよりも安価です。

Private Links:

  • Private Linkは、プライベートエンドポイントを介してAzureサービスをVNetにマッピングします。これは、VNet内のプライベートIPアドレスを持つネットワークインターフェイスです。

  • AzureサービスはこのプライベートIPアドレスを使用してアクセスされ、ネットワークの一部であるかのように見えます。

  • Private Linkを介して接続されたサービスは、VNetまたは接続されたネットワークからのみアクセス可能であり、パブリックインターネットからのアクセスはありません。

  • AzureサービスやAzureにホストされている自社サービス、他者が共有するサービスへの安全な接続を可能にします。

  • サービスエンドポイントでのサブネットレベルの広範なアクセス制御に対して、VNet内のプライベートエンドポイントを介したより詳細なアクセス制御を提供します。

要約すると、Service EndpointsとPrivate Linksの両方がAzureサービスへの安全な接続を提供しますが、Private Linksはサービスをパブリックインターネットに公開せずにプライベートにアクセスすることで、より高いレベルの隔離とセキュリティを提供します。一方、Service Endpointsは、VNet内でプライベートIPが必要ない一般的なケースでの簡単な安全なアクセスを設定するのが容易です。

Azure Front Door (AFD) & AFD WAF

Azure Front Doorは、グローバルなWebアプリケーションの高速配信のためのスケーラブルで安全なエントリーポイントです。グローバル負荷分散、サイト加速、SSLオフロード、Web Application Firewall (WAF)機能などのさまざまなサービスを単一のサービスに統合します。Azure Front Doorは、ユーザーに最も近いエッジロケーションに基づくインテリジェントなルーティングを提供し、最適なパフォーマンスと信頼性を確保します。さらに、URLベースのルーティング、複数サイトのホスティング、セッションアフィニティ、アプリケーション層のセキュリティを提供します。

Azure Front Door WAFは、バックエンドコードを変更することなくWebアプリケーションをWebベースの攻撃から保護するように設計されています。SQLインジェクション、クロスサイトスクリプティング、その他の一般的な攻撃から保護するためのカスタムルールと管理ルールセットが含まれています。

  • 世界中にユーザーがいるグローバルに分散したアプリケーションを持っていると想像してください。Azure Front Doorを使用して、ユーザーリクエストをアプリケーションをホストしている最寄りの地域データセンターにルーティングすることで、レイテンシを削減し、ユーザーエクスペリエンスを向上させ、WAF機能でWeb攻撃から防御します。特定の地域でダウンタイムが発生した場合、Azure Front Doorは自動的にトラフィックを次の最適な場所に再ルーティングし、高可用性を確保します。

Enumeration

# List Azure Front Door Instances
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List Front Door WAF Policies
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

Azure Application Gateway and Azure Application Gateway WAF

Azure Application Gatewayは、ウェブトラフィックのロードバランサーであり、ウェブアプリケーションへのトラフィックを管理することができます。Application Delivery Controller (ADC) as a serviceとして、レイヤー7のロードバランシング、SSL終端、ウェブアプリケーションファイアウォール(WAF)機能を提供します。主な機能には、URLベースのルーティング、クッキーベースのセッションアフィニティ、セキュアソケットレイヤー(SSL)オフロードが含まれ、グローバルルーティングやパスベースのルーティングなど、複雑なロードバランシング機能を必要とするアプリケーションにとって重要です。

  • 複数のサブドメインを持つeコマースサイトを考えてみましょう。例えば、ユーザーアカウントや支払い処理のためのサブドメインがある場合、Azure Application GatewayはURLパスに基づいて適切なウェブサーバーにトラフィックをルーティングすることができます。例えば、example.com/accountsへのトラフィックはユーザーアカウントサービスに、example.com/payへのトラフィックは支払い処理サービスにルーティングされます。 そして、WAF機能を使用してウェブサイトを攻撃から保護します。

Enumeration

# List the Web Application Firewall configurations for your Application Gateways
az network application-gateway waf-config list --gateway-name <AppGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, firewallMode:firewallMode, ruleSetType:ruleSetType, ruleSetVersion:ruleSetVersion}" -o table

Azure Hub, Spoke & VNet Peering

VNet Peeringは、Azureのネットワーキング機能であり、異なるVirtual Networks (VNets)を直接かつシームレスに接続することを可能にします。VNet Peeringを通じて、あるVNetのリソースは、同じネットワーク内にあるかのように、プライベートIPアドレスを使用して別のVNetのリソースと通信できます。 VNet Peeringは、サイト間VPNやAzure ExpressRouteを設定することで、オンプレミスネットワークとも使用できます

Azure Hub and Spokeは、Azureでネットワークトラフィックを管理および整理するために使用されるネットワークトポロジです。「ハブ」は、異なる「スポーク」間のトラフィックを制御およびルーティングする中央ポイントです。ハブには通常、ネットワーク仮想アプライアンス(NVAs)、Azure VPN Gateway、Azure Firewall、またはAzure Bastionなどの共有サービスが含まれます。「スポーク」は、ワークロードをホストし、VNet Peeringを使用してハブに接続するVNetsです。これにより、ハブ内の共有サービスを活用できます。このモデルは、異なるVNets間で複数のワークロードが使用できる共通サービスを集中化することで、クリーンなネットワークレイアウトを促進し、複雑さを軽減します。

VNET PeeringはAzureでは非推移的です。つまり、スポーク1がスポーク2に接続され、スポーク2がスポーク3に接続されている場合、スポーク1はスポーク3と直接通信できません。

Examples

  • 例えば、Sales、HR、Developmentなどの各部門がそれぞれのVNet(スポーク)を持つ会社を想像してください。これらのVNetsは、中央データベース、ファイアウォール、インターネットゲートウェイなどの共有リソースにアクセスする必要があります。これらのリソースは別のVNet(ハブ)に配置されています。Hub and Spokeモデルを使用することで、各部門はこれらの共有リソースにハブVNetを通じて安全に接続でき、これらのリソースをパブリックインターネットに公開することなく、複雑なネットワーク構造を作成することなく接続できます

Enumeration

# List all VNets in your subscription
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List VNet peering connections for a given VNet
az network vnet peering list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}" -o table

# List Shared Resources (e.g., Azure Firewall) in the Hub
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

Site-to-Site VPN

AzureのSite-to-Site VPNは、オンプレミスネットワークをAzure Virtual Network (VNet)に接続し、Azure内のVMなどのリソースがローカルネットワーク上にあるかのように見えるようにします。この接続は、2つのネットワーク間のトラフィックを暗号化するVPNゲートウェイを通じて確立されます。

  • ニューヨークに本社を持つ企業が、仮想化されたワークロードをホストするAzureのVNetに安全に接続する必要があるオンプレミスのデータセンターを持っている場合。Site-to-Site VPNを設定することで、オンプレミスのサーバーとAzureのVM間の暗号化された接続を確保し、両方の環境でリソースが同じローカルネットワークにあるかのように安全にアクセスできるようにします。

列挙

# List VPN Gateways
az network vnet-gateway list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List VPN Connections
az network vpn-connection list --gateway-name <VpnGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, connectionType:connectionType, connectionStatus:connectionStatus}" -o table

Azure ExpressRoute

Azure ExpressRouteは、オンプレミスのインフラストラクチャとAzureデータセンター間のプライベートで専用の高速接続を提供するサービスです。この接続は接続プロバイダーを介して行われ、パブリックインターネットを回避し、通常のインターネット接続よりも信頼性が高く、速度が速く、遅延が少なく、セキュリティが高いです。

  • 多国籍企業は、大量のデータと高スループットの必要性のためにAzureサービスへの一貫した信頼性のある接続を必要としています。この企業は、オンプレミスのデータセンターをAzureに直接接続するためにAzure ExpressRouteを選択し、日次バックアップやリアルタイムデータ分析などの大規模なデータ転送をプライバシーと速度を強化して行います。

列挙

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
HackTricksをサポートする

Last updated