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アドレスの範囲を提供します。

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

列挙

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

ネットワーク セキュリティ グループ (NSG)

Azureにおいて、ネットワーク セキュリティ グループ (NSG)は、Azure仮想ネットワーク (VNet) 内のAzureリソースへのおよびからのネットワークトラフィックをフィルタリングする主な機能を果たします。これは、ネットワークトラフィックの流れを詳細に指示する一連のセキュリティルールを含んでいます。

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

  • トラフィック制御: 各NSGには、さまざまなAzureリソースに関連する受信および送信ネットワークトラフィックを許可または阻止するのに重要なルールが含まれています。

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

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

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

  • 任意のソースからウェブサーバーへのHTTPトラフィック(ポート80)を許可する受信ルール。

  • 特定の宛先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を通じて高度なログ記録と分析機能を提供し、トラフィックの性質とパターンを理解するために不可欠です。

Enumeration

# 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

ネットワーク仮想アプライアンス (NVA)

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

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

  • 組織は、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 ルートテーブルとユーザー定義ルート (UDR)

Azure ルートテーブルは、Microsoft Azure内の機能で、Azure 仮想ネットワーク (VNet) 内のネットワークトラフィックのルーティングを制御します。基本的に、これらはパケットがVNet内のサブネット間、VNet間、または外部ネットワークへの転送方法を定義します。各ルートテーブルには、パケットが宛先IPアドレスに基づいてどのようにルーティングされるべきかを指定するルールのセット、すなわちルートが含まれています。

Azureのユーザー定義ルート (UDR)は、Azure ルートテーブル内で作成するカスタムルートで、Azure 仮想ネットワーク (VNet) 内および間のネットワークトラフィックの流れを制御し、外部接続に対しても適用されます。UDRは、Azureのデフォルトのルーティング決定をオーバーライドし、特定の要件に応じてネットワークトラフィックを指示する柔軟性を提供します。

これらのルートは、トラフィックを仮想アプライアンス経由でルーティングする必要があるシナリオ、セキュリティまたはポリシーコンプライアンスのために特定の経路を強制する場合、またはオンプレミスネットワークと統合する場合に特に便利です。

  • 例えば、VNet内のサブネット間のトラフィックを検査するためにネットワーク仮想アプライアンス (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のサービスであり、Azure仮想ネットワーク(VNet)とサービス間のトラフィックが完全にMicrosoftのAzureバックボーンネットワーク内を移動することを保証します。これにより、サービスがVNetに取り込まれます。この設定は、データをパブリックインターネットにさらさないことでセキュリティを強化します。

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

NSGはプライベートエンドポイントには適用されないため、プライベートリンクを含むサブネットに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 サービス エンドポイント

Azure サービス エンドポイントは、仮想ネットワークのプライベート アドレス空間と 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

サービスエンドポイントとプライベートリンクの違い

Microsoftは、docsでプライベートリンクの使用を推奨しています:\

サービスエンドポイント:

  • VNetからAzureサービスへのトラフィックは、Microsoft Azureバックボーンネットワークを経由し、公共のインターネットをバイパスします。

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

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

  • サブネットとAzureサービスの間には一対一の関係があります。

  • プライベートリンクよりもコストが低いです。

プライベートリンク:

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

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

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

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

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

要約すると、サービスエンドポイントとプライベートリンクの両方がAzureサービスへの安全な接続を提供しますが、プライベートリンクはサービスが公共のインターネットにさらされることなくプライベートにアクセスされることを保証することにより、より高いレベルの隔離とセキュリティを提供します。一方、サービスエンドポイントは、VNet内にプライベートIPを必要とせず、Azureサービスへのシンプルで安全なアクセスが必要な一般的なケースに対して設定が容易です。

Azure Front Door (AFD) & AFD WAF

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

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

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

列挙

# 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 と Azure Application Gateway WAF

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

  • ユーザーアカウントや支払い処理など、異なる機能のための複数のサブドメインを含むeコマースウェブサイトがあるシナリオを考えてみてください。Azure Application Gateway は、URL パスに基づいて適切なウェブサーバーにトラフィックをルーティングできます。たとえば、example.com/accounts へのトラフィックはユーザーアカウントサービスに、example.com/pay へのトラフィックは支払い処理サービスに向けられる可能性があります。 そして、WAF 機能を使用してウェブサイトを攻撃から保護します。

列挙

# 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のネットワーキング機能であり、異なる仮想ネットワーク(VNet)を直接かつシームレスに接続することを可能にします。VNetピアリングを通じて、1つのVNet内のリソースは、まるで同じネットワークにいるかのように、別のVNet内のリソースとプライベートIPアドレスを使用して通信できますVNetピアリングは、オンプレミスネットワークとも使用できます。サイト間VPNまたはAzure ExpressRouteを設定することで実現します。

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

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

Examples

  • 営業、HR、開発などの別々の部門を持つ会社を想像してください。それぞれが独自のVNet(スポーク)を持っています。これらのVNetは、中央データベース、ファイアウォール、インターネットゲートウェイなどの共有リソースへのアクセスを必要とします。これらのリソースはすべて別のVNet(ハブ)にあります。ハブとスポークモデルを使用することで、各部門はハブ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

サイト間VPN

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

  • ニューヨークに本社を置く企業は、Azure内のVNetに安全に接続する必要があるオンプレミスデータセンターを持っています。仮想化されたワークロードをホストしています。**サイト間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データセンター間のプライベートで専用の高速接続を提供するサービスです。この接続は、接続プロバイダーを介して行われ、公共のインターネットをバイパスし、通常のインターネット接続よりも信頼性が高く、速度が速く、レイテンシが低く、セキュリティが高いです。

Example

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

Enumeration

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

Last updated