# List VNetsaznetworkvnetlist--query"[].{name:name, location:location, addressSpace:addressSpace}"# List subnets of a VNetaznetworkvnetsubnetlist--resource-group<ResourceGroupName>--vnet-name<VNetName>--query"[].{name:name, addressPrefix:addressPrefix}"-otable
# List VNetsGet-AzVirtualNetwork|Select-Object Name, Location,@{Name="AddressSpace"; Expression={$_.AddressSpace.AddressPrefixes}}# List subnets of a VNetGet-AzVirtualNetwork-ResourceGroupName <ResourceGroupName>-Name <VNetName>|Select-Object-ExpandProperty Subnets |Select-Object Name, AddressPrefix
# List NSGsaznetworknsglist--query"[].{name:name, location:location}"-otableaznetworknsgshow--name<nsg-name># Get NSG rulesaznetworknsgrulelist--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}"-otable# Get NICs and subnets using this NSGaznetworknsgshow--nameMyLowCostVM-nsg--resource-groupResource_Group_1--query"{subnets: subnets, networkInterfaces: networkInterfaces}"
# List NSGsGet-AzNetworkSecurityGroup|Select-Object Name, LocationGet-AzNetworkSecurityGroup-Name <NSGName>-ResourceGroupName <ResourceGroupName># Get NSG rules(Get-AzNetworkSecurityGroup-ResourceGroupName <NSGName>-Name <ResourceGroupName>).SecurityRules# Get NICs and subnets using this NSG(Get-AzNetworkSecurityGroup-Name <NSGName>-ResourceGroupName <ResourceGroupName>).Subnets
# List Azure Firewallsaznetworkfirewalllist--query"[].{name:name, location:location, subnet:subnet, publicIp:publicIp}"-otable# Get network rules of a firewallaznetworkfirewallnetwork-rulecollectionlist--firewall-name<FirewallName>--resource-group<ResourceGroupName>--query"[].{name:name, rules:rules}"-otable# Get application rules of a firewallaznetworkfirewallapplication-rulecollectionlist--firewall-name<FirewallName>--resource-group<ResourceGroupName>--query"[].{name:name, rules:rules}"-otable# Get nat rules of a firewallaznetworkfirewallnat-rulecollectionlist--firewall-name<FirewallName>--resource-group<ResourceGroupName>--query"[].{name:name, rules:rules}"-otable
# List Azure FirewallsGet-AzFirewall# Get network rules of a firewall(Get-AzFirewall-Name <FirewallName>-ResourceGroupName <ResourceGroupName>).NetworkRuleCollections# Get application rules of a firewall(Get-AzFirewall-Name <FirewallName>-ResourceGroupName <ResourceGroupName>).ApplicationRuleCollections# Get nat rules of a firewall(Get-AzFirewall-Name <FirewallName>-ResourceGroupName <ResourceGroupName>).NatRuleCollections
示例: 如果一个子网托管需要通过网络虚拟设备 (NVA) 进行检查的出站流量的资源,您可以在路由表中创建一个 路由,将所有流量(例如,0.0.0.0/0)重定向到 NVA 的私有 IP 地址作为下一跳。
枚举
# List Route Tablesaznetworkroute-tablelist--query"[].{name:name, resourceGroup:resourceGroup, location:location}"-otable# List routes for a tableaznetworkroute-tableroutelist--route-table-name<RouteTableName>--resource-group<ResourceGroupName>--query"[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}"-otable
# List Route TablesGet-AzRouteTable# List routes for a table(Get-AzRouteTable-Name <RouteTableName>-ResourceGroupName <ResourceGroupName>).Routes
Azure Private Link
Azure Private Link 是 Azure 中的一项服务,通过确保您的 Azure 虚拟网络 (VNet) 与服务之间的流量完全在 Microsoft 的 Azure 主干网络内传输,从而实现对 Azure 服务的私有访问。它有效地将服务引入您的 VNet。此设置通过不将数据暴露于公共互联网来增强安全性。
Private Link 可以与各种 Azure 服务一起使用,如 Azure Storage、Azure SQL Database 和通过 Private Link 共享的自定义服务。它提供了一种安全的方式,从您自己的 VNet 或甚至不同的 Azure 订阅中使用服务。
NSG 不适用于私有端点,这清楚地意味着将 NSG 与包含 Private Link 的子网关联将没有效果。
# List Private Link Servicesaznetworkprivate-link-servicelist--query"[].{name:name, location:location, resourceGroup:resourceGroup}"-otable# List Private Endpointsaznetworkprivate-endpointlist--query"[].{name:name, location:location, resourceGroup:resourceGroup, privateLinkServiceConnections:privateLinkServiceConnections}"-otable
# List Private Link ServicesGet-AzPrivateLinkService|Select-Object Name, Location, ResourceGroupName# List Private EndpointsGet-AzPrivateEndpoint|Select-Object Name, Location, ResourceGroupName, PrivateEndpointConnections
# List Virtual Networks with Service Endpointsaznetworkvnetlist--query"[].{name:name, location:location, serviceEndpoints:serviceEndpoints}"-otable# List Subnets with Service Endpointsaznetworkvnetsubnetlist--resource-group<ResourceGroupName>--vnet-name<VNetName>--query"[].{name:name, serviceEndpoints:serviceEndpoints}"-otable
# List Virtual Networks with Service EndpointsGet-AzVirtualNetwork# List Subnets with Service Endpoints(Get-AzVirtualNetwork-ResourceGroupName <ResourceGroupName>-Name <VNetName>).Subnets
总之,虽然服务端点和私有链接都提供安全的 Azure 服务连接,私有链接通过确保服务以私密方式访问而不暴露于公共互联网,提供了更高水平的隔离和安全性。另一方面,服务端点在一般情况下更易于设置,适用于需要简单、安全访问 Azure 服务而不需要 VNet 中的私有 IP 的场景。
Azure Front Door (AFD) 和 AFD WAF
Azure Front Door 是一个可扩展且安全的入口点,用于 快速交付 您的全球 web 应用程序。它 结合 了全球 负载均衡、站点加速、SSL 卸载和 Web 应用防火墙 (WAF) 功能于一体。Azure Front Door 提供基于 离用户最近的边缘位置 的智能路由,确保最佳性能和可靠性。此外,它还提供基于 URL 的路由、多站点托管、会话亲和性和应用层安全性。
Azure Front Door WAF 旨在 保护 web 应用程序免受基于 web 的攻击,无需修改后端代码。它包括自定义规则和管理规则集,以防范 SQL 注入、跨站脚本和其他常见攻击等威胁。
示例:
想象一下,您有一个全球分布的应用程序,用户遍布世界各地。您可以使用 Azure Front Door 将用户请求路由到最近的区域数据中心 托管您的应用程序,从而减少延迟,改善用户体验,并 利用 WAF 功能保护其免受 web 攻击。如果某个特定区域出现停机,Azure Front Door 可以自动将流量重新路由到下一个最佳位置,确保高可用性。
枚举
# List Azure Front Door Instancesaznetworkfront-doorlist--query"[].{name:name, resourceGroup:resourceGroup, location:location}"-otable# List Front Door WAF Policiesaznetworkfront-doorwaf-policylist--query"[].{name:name, resourceGroup:resourceGroup, location:location}"-otable
# List Azure Front Door InstancesGet-AzFrontDoor# List Front Door WAF PoliciesGet-AzFrontDoorWafPolicy-Name <policyName>-ResourceGroupName <resourceGroupName>
Azure 应用程序网关和 Azure 应用程序网关 WAF
Azure 应用程序网关是一个 Web 流量负载均衡器,使您能够管理对 Web 应用程序的流量。它在应用交付控制器 (ADC) 中提供 第 7 层负载均衡、SSL 终止和 Web 应用程序防火墙 (WAF) 功能。主要功能包括基于 URL 的路由、基于 Cookie 的会话亲和性和安全套接字层 (SSL) 卸载,这些对于需要复杂负载均衡能力的应用程序至关重要,例如全球路由和基于路径的路由。
# List the Web Application Firewall configurations for your Application Gatewaysaznetworkapplication-gatewaywaf-configlist--gateway-name<AppGatewayName>--resource-group<ResourceGroupName>--query"[].{name:name, firewallMode:firewallMode, ruleSetType:ruleSetType, ruleSetVersion:ruleSetVersion}"-otable
# List the Web Application Firewall configurations for your Application Gateways(Get-AzApplicationGateway-Name <AppGatewayName>-ResourceGroupName <ResourceGroupName>).WebApplicationFirewallConfiguration
# List all VNets in your subscriptionaznetworkvnetlist--query"[].{name:name, location:location, addressSpace:addressSpace}"-otable# List VNet peering connections for a given VNetaznetworkvnetpeeringlist--resource-group<ResourceGroupName>--vnet-name<VNetName>--query"[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}"-otable# List Shared Resources (e.g., Azure Firewall) in the Hubaznetworkfirewalllist--query"[].{name:name, location:location, resourceGroup:resourceGroup}"-otable
# List all VNets in your subscriptionGet-AzVirtualNetwork# List VNet peering connections for a given VNet(Get-AzVirtualNetwork-ResourceGroupName <ResourceGroupName>-Name <VNetName>).VirtualNetworkPeerings# List Shared Resources (e.g., Azure Firewall) in the HubGet-AzFirewall
一家总部位于纽约的企业拥有一个本地数据中心,需要安全地连接到其在 Azure 中托管虚拟化工作负载的 VNet。通过设置 Site-to-Site VPN,该公司可以确保本地服务器与 Azure VM 之间的加密连接,使得两个环境中的资源可以像在同一本地网络中一样安全地访问。
Enumeration
# List VPN Gatewaysaznetworkvnet-gatewaylist--query"[].{name:name, location:location, resourceGroup:resourceGroup}"-otable# List VPN Connectionsaznetworkvpn-connectionlist--gateway-name<VpnGatewayName>--resource-group<ResourceGroupName>--query"[].{name:name, connectionType:connectionType, connectionStatus:connectionStatus}"-otable
# List VPN GatewaysGet-AzVirtualNetworkGateway-ResourceGroupName <ResourceGroupName># List VPN ConnectionsGet-AzVirtualNetworkGatewayConnection-ResourceGroupName <ResourceGroupName>