Aracılığıyla paylaş


Öğretici: Azure PowerShell kullanarak sanal hub'ınızın güvenliğini sağlama

Bu öğreticide, bir bölgede Sanal Hub ile bir Sanal WAN örneği oluşturacak ve bağlantının güvenliğini sağlamak için Sanal Hub'da bir Azure Güvenlik Duvarı dağıtacaksınız. Bu örnekte, Sanal Ağ'ler arasında güvenli bağlantı gösterirsiniz. Sanal ağlar ile siteden siteye, noktadan siteye veya ExpressRoute dalları arasındaki trafik de Virtual Secure Hub tarafından desteklenir.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Sanal WAN'ı dağıtma
  • Azure Güvenlik Duvarı dağıtma ve özel yönlendirmeyi yapılandırma
  • Bağlantıyı test edin

Important

Sanal WAN, hub'ın içinde kullanıma sunulan merkezlerden ve hizmetlerden oluşan bir koleksiyondur. İhtiyacınız olan kadar Sanal WAN dağıtabilirsiniz. Sanal WAN hub'ında VPN, ExpressRoute gibi birden çok hizmet vardır. Bölge kullanılabilirlik alanlarını destekliyorsa, bu hizmetlerin her biri Azure Güvenlik Duvarı dışında kullanılabilirlik alanları arasında otomatik olarak dağıtılır. Mevcut bir Azure Sanal WAN Hub'ını Güvenli Hub'a yükseltmek ve Azure Güvenlik Duvarı kullanılabilirlik alanlarını kullanmasını sağlamak için, bu makalenin devamında açıklandığı gibi Azure PowerShell'i kullanmanız gerekir.

Prerequisites

  • Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.

  • PowerShell 7 veya üzeri

    Bu öğretici, Azure PowerShell'i PowerShell 7 veya üzeri sürümlerde yerel olarak çalıştırmanızı gerektirir. PowerShell 7'yi yüklemek için bkz . Windows PowerShell 5.1'den PowerShell 7'ye geçiş.

  • "Az.Network" modül sürümü 4.17.0 veya üzeri olmalıdır.

Azure'da oturum açma

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

İlk Sanal WAN dağıtımı

Başlamak için değişkenleri ayarlamanız ve kaynak grubunu, sanal WAN örneğini ve sanal hub'ı oluşturmanız gerekir:

# Variable definition
$RG = "vwan-rg"
$Location = "westeurope"
$VwanName = "vwan"
$HubName =  "hub1"
$FirewallTier = "Standard" # or "Premium"

# Create Resource Group, Virtual WAN and Virtual Hub using the New-AzVirtualWan and New-AzVirtualHub cmdlets
New-AzResourceGroup -Name $RG -Location $Location
$Vwan = New-AzVirtualWan -Name $VwanName -ResourceGroupName $RG -Location $Location -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic -VirtualWANType "Standard"
$Hub = New-AzVirtualHub -Name $HubName -ResourceGroupName $RG -VirtualWan $Vwan -Location $Location -AddressPrefix "192.168.1.0/24" -Sku "Standard"
  • İki sanal ağ oluşturun ve New-AzVirtualHubVnetConnection cmdlet'ini kullanarak bunları bir hub'a uydu olarak bağlayın. Sanal ağlar, adres ön ekleri 10.1.1.0/24 ve 10.1.2.0/24ile oluşturulur.
# Create Virtual Network
$Spoke1 = New-AzVirtualNetwork -Name "spoke1" -ResourceGroupName $RG -Location $Location -AddressPrefix "10.1.1.0/24"
$Spoke2 = New-AzVirtualNetwork -Name "spoke2" -ResourceGroupName $RG -Location $Location -AddressPrefix "10.1.2.0/24"
# Connect Virtual Network to Virtual WAN
$Spoke1Connection = New-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName  $HubName -Name "spoke1" -RemoteVirtualNetwork $Spoke1 -EnableInternetSecurityFlag $True
$Spoke2Connection = New-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName  $HubName -Name "spoke2" -RemoteVirtualNetwork $Spoke2 -EnableInternetSecurityFlag $True

Bu aşamada, Sanal WAN'ınız tamamen çalışır durumdadır ve uçtan uca bağlantı sağlar. Bu ortamın güvenliğini sağlamak için her Sanal Hub'a bir Azure Güvenlik Duvarı dağıtın. Güvenlik Duvarı İlkelerini kullanarak bu güvenlik duvarlarını merkezi olarak yönetebilirsiniz.

Bu örnekte, cmdlet'ini kullanarak New-AzFirewallPolicy Sanal WAN hub'ında Azure Güvenlik Duvarı örneğini yönetmek için bir güvenlik duvarı ilkesi de oluşturacaksınız. Azure Güvenlik Duvarı, New-AzFirewall cmdlet'i kullanılarak hub'a dağıtılacaktır.

# New Firewall Policy
$FWPolicy = New-AzFirewallPolicy -Name "VwanFwPolicy" -ResourceGroupName $RG -Location $Location
# New Firewall Public IP
$AzFWPIPs = New-AzFirewallHubPublicIpAddress -Count 1
$AzFWHubIPs = New-AzFirewallHubIpAddress -PublicIP $AzFWPIPs
# New Firewall
$AzFW = New-AzFirewall -Name "azfw1" -ResourceGroupName $RG -Location $Location `
            -VirtualHubId $Hub.Id -FirewallPolicyId $FWPolicy.Id `
            -SkuName "AZFW_Hub" -HubIPAddress $AzFWHubIPs `
            -SkuTier $FirewallTier

Note

Aşağıdaki Güvenlik duvarı oluşturma komutu kullanılabilirlik alanlarını kullanmaz . Bu özelliği kullanmak istiyorsanız, ek bir parametre -Zone gereklidir. Bu makalenin sonundaki yükseltme bölümünde bir örnek verilmiştir.

Azure Güvenlik Duvarı'ndan Azure İzleyici'ye günlük kaydı etkinleştirmek isteğe bağlıdır. Bu örnekte, trafiğin güvenlik duvarından geçtiğini doğrulamak için güvenlik duvarı günlüklerini kullanırsınız. İlk olarak günlükleri depolamak için bir Log Analytics çalışma alanı oluşturun. Ardından, Set-AzDiagnosticSetting cmdlet'ini tanılama ayarlarını yapılandırmak ve günlükleri çalışma alanına göndermek için kullanın.

# Optionally, enable logging of Azure Firewall to Azure Monitor
$LogWSName = "vwan-" + (Get-Random -Maximum 99999) + "-" + $RG
$LogWS = New-AzOperationalInsightsWorkspace -Location $Location -Name $LogWSName -Sku Standard -ResourceGroupName $RG
Set-AzDiagnosticSetting -ResourceId $AzFW.Id -Enabled $True -Category AzureFirewallApplicationRule, AzureFirewallNetworkRule -WorkspaceId $LogWS.ResourceId

Azure Güvenlik Duvarı dağıtma ve özel yönlendirmeyi yapılandırma

Note

Bu, "Hub'lar arası" ayarı devre dışı olarak ayarlandığında Azure Portal'dan Azure Güvenlik Duvarı Yöneticisi ile bağlantının güvenliğini sağlarken dağıtılan yapılandırmadır. "Merkezler arası" etkin olarak ayarlandığında PowerShell kullanarak yönlendirmeyi yapılandırma yönergeleri için bkz. Yönlendirme amacını etkinleştirme.

Artık hub'da bir Azure Güvenlik Duvarı var, ancak Sanal WAN trafiği sanal ağlardan ve dallardan güvenlik duvarı üzerinden gönderebilmesi için yönlendirmeyi değiştirmeniz gerekiyor. Bunu iki adımda yaparsınız:

  1. Yönlendirme Tablosuna yaymak None için tüm sanal ağ bağlantılarını (ve varsa dal bağlantılarını) yapılandırın. Bu yapılandırmanın etkisi, diğer sanal ağların ve dalların ön eklerini öğrenmemesi ve bunlara ulaşmak için yönlendirme olmamasıdır.
  2. Artık tüm trafiğin Default Azure Güvenlik Duvarı gönderilmesi için Rota Tablosu'na statik yollar ekleyebilirsiniz (tüm sanal ağların ve dalların varsayılan olarak ilişkilendirildiği yer).

Başlangıç olarak, sanal ağ bağlantılarınızı Rota Tablosuna yaymak üzere None yapılandırın. Bu adım, sanal ağların birbirlerinin adres ön eklerini öğrenmemesini sağlayarak aralarında doğrudan iletişimi engeller. Sonuç olarak, tüm sanal ağlar arası trafiğin Azure Güvenlik Duvarı'nı geçmesi gerekir.

Bunu yapmak için, Yol Tablosu'nu almak üzere Get-AzVhubRouteTable cmdlet'ini kullanın ve ardından her sanal ağ bağlantısının yönlendirme yapılandırmasını None cmdlet'iyle güncelleyin.

# Configure Virtual Network connections in hub to propagate to None
$VnetRoutingConfig = $Spoke1Connection.RoutingConfiguration    # We take $Spoke1Connection as baseline for the future vnet config, all vnets will have an identical config
$NoneRT = Get-AzVhubRouteTable -ResourceGroupName $RG -HubName $HubName -Name "noneRouteTable"
$NewPropRT = @{}
$NewPropRT.Add('Id', $NoneRT.Id)
$PropRTList = @()
$PropRTList += $NewPropRT
$VnetRoutingConfig.PropagatedRouteTables.Ids = $PropRTList
$VnetRoutingConfig.PropagatedRouteTables.Labels = @()
$Spoke1Connection = Update-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName  $HubName -Name "spoke1" -RoutingConfiguration $VnetRoutingConfig
$Spoke2Connection = Update-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName  $HubName -Name "spoke2" -RoutingConfiguration $VnetRoutingConfig

Ardından, ikinci adıma geçin: yol tablosuna Default statik yollar ekleme. Aşağıdaki örnek, Sanal WAN'da bağlantının güvenliğini sağlarken Azure Güvenlik Duvarı Yöneticisi'nin uyguladığı varsayılan yapılandırmayı kullanır. Cmdlet'ini kullanarak New-AzVHubRoute statik yoldaki ön eklerin listesini gerektiği gibi özelleştirebilirsiniz. Bu örnekte, tüm trafik önerilen varsayılan olan Azure Güvenlik Duvarı üzerinden yönlendirilir.

# Create static routes in default Route table
$AzFWId = $(Get-AzVirtualHub -ResourceGroupName $RG -name  $HubName).AzureFirewall.Id
$AzFWRoute = New-AzVHubRoute -Name "all_traffic" -Destination @("0.0.0.0/0", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16") -DestinationType "CIDR" -NextHop $AzFWId -NextHopType "ResourceId"
$DefaultRT = Update-AzVHubRouteTable -Name "defaultRouteTable" -ResourceGroupName $RG -VirtualHubName  $HubName -Route @($AzFWRoute)

Note

Yukarıdaki New-AzVHubRoute komutundaki "-Name" parametresi için değer olarak "all_traffic" dizesinin özel bir anlamı vardır: Tam olarak bu dizeyi kullanırsanız, bu makalede uygulanan yapılandırma Azure portalına düzgün bir şekilde yansıtılır (Güvenlik Duvarı Yöneticisi --> Sanal hub'lar --> [Hub'ınız] --> Güvenlik Yapılandırması). Farklı bir ad kullanılacaksa, istenen yapılandırma uygulanır, ancak Azure portalına yansıtılmaz.

Yönlendirme amacını etkinleştirme

Sanal WAN hub'ına dağıtılan Azure Güvenlik Duvarı aracılığıyla merkezler arası ve bölgeler arası trafik göndermek istiyorsanız, yönlendirme amacı özelliğini etkinleştirebilirsiniz. Yönlendirme amacı hakkında daha fazla bilgi için Yönlendirme Amacı belgelerine bakın.

Note

Bu, "Interhub" ayarı etkin olarak ayarlandığında Azure portaldan Azure Güvenlik Duvarı Yöneticisi ile bağlantının güvenliğini sağlarken dağıtılan yapılandırmadır.

# Get the Azure Firewall resource ID
$AzFWId = $(Get-AzVirtualHub -ResourceGroupName <thname> -name  $HubName).AzureFirewall.Id

# Create routing policy and routing intent
$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id
$policy2 = New-AzRoutingPolicy -Name "PublicTraffic" -Destination @("Internet") -NextHop $firewall.Id
New-AzRoutingIntent -ResourceGroupName "<rgname>" -VirtualHubName "<hubname>" -Name "hubRoutingIntent" -RoutingPolicy @($policy1, $policy2)
If your Virtual WAN uses non-RFC1918 address prefixes (for example, `40.0.0.0/24` in a virtual network or on-premises), you should add an extra route to the `defaultRouteTable` after completing the routing intent configuration. Name this route **private_traffic**. If you use a different name, the route will work as expected, but the configuration will not be reflected in the Azure portal.

```azurepowershell-interactive
# Get the defaultRouteTable
$defaultRouteTable = Get-AzVHubRouteTable -ResourceGroupName routingIntent-Demo -HubName wus_hub1 -Name defaultRouteTable

# Get the routes automatically created by routing intent. If private routing policy is enabled, this is the route named _policy_PrivateTraffic. If internet routing policy is enabled, this is the route named _policy_InternetTraffic. 
$privatepolicyroute = $defaultRouteTable.Routes[1]


# Create new route named private_traffic for non-RFC1918 prefixes
$private_traffic = New-AzVHubRoute -Name "private-traffic" -Destination @("30.0.0.0/24") -DestinationType "CIDR" -NextHop $AzFWId -NextHopType ResourceId

# Create new routes for route table
$newroutes = @($privatepolicyroute, $private_traffic)

# Update route table
Update-AzVHubRouteTable -ResourceGroupName <rgname> -ParentResourceName <hubname> -Name defaultRouteTable -Route $newroutes

Bağlantıyı test edin

Güvenli hub'ınız tamamen çalışır durumda olduğuna göre, hub'a bağlı her uç sanal ağına bir sanal makine dağıtarak bağlantıyı test edebilirsiniz:

# Create VMs in spokes for testing
$VMLocalAdminUser = "lab-user"
$VMLocalAdminSecurePassword = ConvertTo-SecureString -AsPlainText -Force
$VMCredential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$VMSize = "Standard_B2ms"
# Spoke1
$Spoke1 = Get-AzVirtualNetwork -ResourceGroupName $RG -Name "spoke1"
Add-AzVirtualNetworkSubnetConfig -Name "vm" -VirtualNetwork $Spoke1 -AddressPrefix "10.1.1.0/26"
$Spoke1 | Set-AzVirtualNetwork
$VM1 = New-AzVM -Name "spoke1-vm" -ResourceGroupName $RG -Location $Location `
            -Image "UbuntuLTS" -credential $VMCredential `
            -VirtualNetworkName "spoke1" -SubnetName "vm" -PublicIpAddressName "spoke1-pip"
$NIC1 = Get-AzNetworkInterface -ResourceId $($VM1.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke1VMPrivateIP = $NIC1.IpConfigurations[0].PrivateIpAddress
$Spoke1VMPIP = $(Get-AzPublicIpAddress -ResourceGroupName $RG -Name "spoke1-pip")
# Spoke2
$Spoke2 = Get-AzVirtualNetwork -ResourceGroupName $RG -Name "spoke2"
Add-AzVirtualNetworkSubnetConfig -Name "vm" -VirtualNetwork $Spoke2 -AddressPrefix "10.1.2.0/26"
$Spoke2 | Set-AzVirtualNetwork
$VM2 = New-AzVM -Name "spoke2-vm" -ResourceGroupName $RG -Location $Location `
            -Image "UbuntuLTS" -credential $VMCredential `
            -VirtualNetworkName "spoke2" -SubnetName "vm" -PublicIpAddressName "spoke2-pip"
$NIC2 = Get-AzNetworkInterface -ResourceId $($VM2.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke2VMPrivateIP = $NIC2.IpConfigurations[0].PrivateIpAddress
$Spoke2VMPIP = $(Get-AzPublicIpAddress -ResourceGroupName $RG -Name "spoke2-pip")

Varsayılan olarak, güvenlik duvarı ilkesi tüm trafiği engeller. Test sanal makinelerinize erişime izin vermek için DNAT (Hedef Ağ Adresi Çevirisi) kurallarını yapılandırmanız gerekir. Bu kurallar, Azure Güvenlik Duvarı'nın genel IP adresi aracılığıyla VM'lere bağlanmanızı sağlar:

# Adding DNAT rules for virtual machines in the spokes
$AzFWPublicAddress = $AzFW.HubIPAddresses.PublicIPs.Addresses[0].Address
$NATRuleSpoke1 = New-AzFirewallPolicyNatRule -Name "Spoke1SSH" -Protocol "TCP" `
        -SourceAddress "*" -DestinationAddress $AzFWPublicAddress -DestinationPort 10001 `
        -TranslatedAddress $Spoke1VMPrivateIP -TranslatedPort 22
$NATRuleSpoke2 = New-AzFirewallPolicyNatRule -Name "Spoke2SSH" -Protocol "TCP" `
        -SourceAddress "*" -DestinationAddress $AzFWPublicAddress -DestinationPort 10002 `
        -TranslatedAddress $Spoke2VMPrivateIP -TranslatedPort 22
$NATCollection = New-AzFirewallPolicyNatRuleCollection -Name "SSH" -Priority 100 `
        -Rule @($NATRuleSpoke1, $NATRuleSpoke2) -ActionType "Dnat"
$NATGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "NAT" -Priority 100 -RuleCollection $NATCollection -FirewallPolicyObject $FWPolicy

Ardından güvenlik duvarı ilkeniz için örnek kuralları yapılandırın. İlk olarak, sanal ağlar arasında SSH trafiğine izin vermek için bir ağ kuralı oluşturun. Ardından, HTTP isteğinde görülen kaynak IP adresini döndüren Tam Etki Alanı Adı (FQDN) ifconfig.co için yalnızca İnternet erişimine izin vermek amacıyla bir uygulama kuralı ekleyin.

# Add Network Rule
$SSHRule = New-AzFirewallPolicyNetworkRule -Name PermitSSH -Protocol TCP `
        -SourceAddress "10.0.0.0/8" -DestinationAddress "10.0.0.0/8" -DestinationPort 22
$NetCollection = New-AzFirewallPolicyFilterRuleCollection -Name "Management" -Priority 100 -ActionType Allow -Rule $SSHRule
$NetGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "Management" -Priority 200 -RuleCollection $NetCollection -FirewallPolicyObject $FWPolicy
# Add Application Rule
$ifconfigRule = New-AzFirewallPolicyApplicationRule -Name PermitIfconfig -SourceAddress "10.0.0.0/8" -TargetFqdn "ifconfig.co" -Protocol "http:80","https:443"
$AppCollection = New-AzFirewallPolicyFilterRuleCollection -Name "TargetURLs" -Priority 300 -ActionType Allow -Rule $ifconfigRule
$NetGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "TargetURLs" -Priority 300 -RuleCollection $AppCollection -FirewallPolicyObject $FWPolicy

Herhangi bir trafik göndermeden önce, her sanal makine için geçerli yolları denetleyin. Yol tabloları Sanal WAN'dan (0.0.0.0/0 ve RFC1918 aralıklarından) öğrenilen ön ekleri göstermelidir, ancak diğer uç sanal ağının adres ön ekini içermemelidir.

# Check effective routes in the VM NIC in spoke 1
# Note that 10.1.2.0/24 (the prefix for spoke2) should not appear
Get-AzEffectiveRouteTable -ResourceGroupName $RG -NetworkInterfaceName $NIC1.Name | ft
# Check effective routes in the VM NIC in spoke 2
# Note that 10.1.1.0/24 (the prefix for spoke1) should not appear
Get-AzEffectiveRouteTable -ResourceGroupName $RG -NetworkInterfaceName $NIC2.Name | ft

Bir sanal makineden diğerine trafik oluşturun ve Azure Güvenlik Duvarı tarafından filtrelendiğini doğrulayın. Sanal makinelere bağlanmak için SSH kullanın; SSH parmak izini kabul edin ve VM oluşturma sırasında ayarladığınız parolayı girin. Bu örnekte şunları yapacaksınız:

  • spoke1'deki VM'den spoke2'deki VM'ye beş ICMP yankı isteği (ping) gönderin.
  • Veri göndermeden bağlantıyı denetleyen bayraklarla nc (netcat) yardımcı programını kullanarak -vz 22 numaralı bağlantı noktasında TCP bağlantısı denemesi yapın.

Daha önce yapılandırılmış ağ kuralının izin verdiği şekilde 22 numaralı bağlantı noktası üzerindeki TCP bağlantısı başarılı olurken ping isteklerinin başarısız olduğunu (güvenlik duvarı tarafından engellendiğini) gözlemlemeniz gerekir.

# Connect to one VM and ping the other. It should not work, because the firewall should drop the traffic, since no rule for ICMP is configured
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "ping $Spoke2VMPrivateIP -c 5"
# Connect to one VM and send a TCP request on port 22 to the other. It should work, because the firewall is configured to allow SSH traffic (port 22)
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "nc -vz $Spoke2VMPrivateIP 22"

Ayrıca güvenlik duvarı üzerinden İnternet erişimini test edebilirsiniz. HTTP istekleri izin verilen FQDN'ye (curl) ifconfig.co yardımıyla başarılı olurken, diğer hedeflere (örneğin bing.com) yönelik istekler güvenlik duvarı ilkesi tarafından engellenmelidir.

# This HTTP request should succeed, since it is allowed in an app rule in the AzFW, and return the public IP of the FW
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "curl -s4 ifconfig.co"
# This HTTP request should fail, since the FQDN bing.com is not in any app rule in the firewall policy
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "curl -s4 bing.com"

Güvenlik duvarının paketleri beklendiği gibi düşürdüğünden emin olmak için Azure Monitor'a gönderilen günlükleri gözden geçirin. Azure Güvenlik Duvarı tanılama günlüklerini Azure İzleyici'ye gönderecek şekilde yapılandırıldığından, ilgili günlük girdilerini sorgulamak ve analiz etmek için Kusto Sorgu Dili'ni (KQL) kullanabilirsiniz:

Note

Günlüklerin Azure İzleyici'ye gönderilmesi yaklaşık 1 dakika sürebilir

# Getting Azure Firewall network rule Logs
$LogWS = Get-AzOperationalInsightsWorkspace -ResourceGroupName $RG
$LogQuery = 'AzureDiagnostics
| where Category == "AzureFirewallNetworkRule"
| where TimeGenerated >= ago(5m)
| parse msg_s with Protocol " request from " SourceIP ":" SourcePortInt:int " to " TargetIP ":" TargetPortInt:int *
| parse msg_s with * ". Action: " Action1a
| parse msg_s with * " was " Action1b " to " NatDestination
| parse msg_s with Protocol2 " request from " SourceIP2 " to " TargetIP2 ". Action: " Action2
| extend SourcePort = tostring(SourcePortInt),TargetPort = tostring(TargetPortInt)
| extend Action = case(Action1a == "", case(Action1b == "",Action2,Action1b), Action1a),Protocol = case(Protocol == "", Protocol2, Protocol),SourceIP = case(SourceIP == "", SourceIP2, SourceIP),TargetIP = case(TargetIP == "", TargetIP2, TargetIP),SourcePort = case(SourcePort == "", "N/A", SourcePort),TargetPort = case(TargetPort == "", "N/A", TargetPort),NatDestination = case(NatDestination == "", "N/A", NatDestination)
| project TimeGenerated, Protocol, SourceIP,SourcePort,TargetIP,TargetPort,Action, NatDestination, Resource
| take 25 '
$(Invoke-AzOperationalInsightsQuery -Workspace $LogWS -Query $LogQuery).Results | ft

Önceki komutta farklı girdiler görmeniz gerekir:

  • SSH bağlantınız DNAT'ed
  • Uçlardaki VM'ler arasında bırakılan ICMP paketleri (10.1.1.4 ve 10.1.2.4)
  • Uçlardaki VM'ler arasında izin verilen SSH bağlantıları

Yukarıdaki komut tarafından oluşturulan örnek çıktıyı burada bulabilirsiniz:

TimeGenerated            Protocol    SourceIP       SourcePort TargetIP      TargetPort Action  NatDestination Resource
-------------            --------    --------       ---------- --------      ---------- ------  -------------- --------
2020-10-04T20:53:02.41Z  TCP         109.125.122.99 62281      51.105.224.44 10001      DNAT'ed 10.1.1.4:22    AZFW1
2020-10-04T20:53:07.045Z TCP         10.1.1.4       35932      10.1.2.4      22         Allow   N/A            AZFW1
2020-10-04T20:53:50.119Z TCP         109.125.122.99 62293      51.105.224.44 10001      DNAT'ed 10.1.2.4:22    AZFW1
2020-10-04T20:52:47.475Z TCP         109.125.122.99 62273      51.105.224.44 10001      DNAT'ed 10.1.2.4:22    AZFW1
2020-10-04T20:51:04.682Z TCP         109.125.122.99 62200      51.105.224.44 10001      DNAT'ed 10.1.2.4:22    AZFW1
2020-10-04T20:51:17.031Z ICMP Type=8 10.1.1.4       N/A        10.1.2.4      N/A        Deny    N/A            AZFW1
2020-10-04T20:51:18.049Z ICMP Type=8 10.1.1.4       N/A        10.1.2.4      N/A        Deny    N/A            AZFW1
2020-10-04T20:51:19.075Z ICMP Type=8 10.1.1.4       N/A        10.1.2.4      N/A        Deny    N/A            AZFW1
2020-10-04T20:51:20.097Z ICMP Type=8 10.1.1.4       N/A        10.1.2.4      N/A        Deny    N/A            AZFW1
2020-10-04T20:51:21.121Z ICMP Type=8 10.1.1.4       N/A        10.1.2.4      N/A        Deny    N/A            AZFW1
2020-10-04T20:52:52.356Z TCP         10.1.1.4       53748      10.1.2.4      22         Allow   N/A            AZFW1

Uygulama kurallarının günlüklerini görmek (izin verilen ve reddedilen HTTP bağlantılarını açıklama) veya günlüklerin görüntülenme biçimini değiştirmek istiyorsanız, diğer KQL sorgularını deneyebilirsiniz. Azure Güvenlik Duvarı için Azure İzleyici günlüklerinde bazı örnekler bulabilirsiniz.

Test ortamını temizlemek için, cmdlet'ini kullanarak Remove-AzResourceGroup kaynak grubunu ve ilişkili tüm kaynakları silin. Bu işlem Sanal WAN, Sanal Hub, Azure Güvenlik Duvarı ve bu öğretici sırasında oluşturulan diğer tüm kaynakları kaldırır.

# Delete resource group and all contained resources
Remove-AzResourceGroup -Name $RG

Kullanılabilirlik alanları içeren yeni bir Azure Güvenlik Duvarı var olan bir hub'a dağıtma

Önceki adımlarda Azure PowerShell kullanarak yeni bir Azure Sanal WAN Hub'ı oluşturma ve Azure Güvenlik Duvarı ile güvenliğini sağlama adımları gösterildi. Ayrıca, benzer bir betik tabanlı yaklaşım kullanarak mevcut bir Azure Sanal WAN Hub'ın güvenliğini de sağlayabilirsiniz. Güvenlik Duvarı Yöneticisi bir hub'ı Güvenli Hub'a dönüştürese de Azure Güvenlik Duvarı'nın portal aracılığıyla kullanılabilirlik alanlarına dağıtılması desteklenmez. Azure Güvenlik Duvarı'nı üç kullanılabilirlik alanına da dağıtmak için, mevcut Sanal WAN Hub'ınızı Güvenli Hub'a dönüştürmek için aşağıdaki PowerShell betiğini kullanın.

Note

Bu yordam yeni bir Azure Güvenlik Duvarı dağıtır. Kullanılabilirlik alanları olmayan mevcut bir Azure Güvenlik Duvarı kullanılabilirlik alanları olan bir Azure Güvenlik Duvarı yükseltemezsiniz. Önce hub'daki mevcut Azure Güvenlik Duvarı silmeniz ve bu yordamı kullanarak yeniden oluşturmanız gerekir.

# Variable definition
$RG = "vwan-rg"
$Location = "westeurope"
$VwanName = "vwan"
$HubName =  "hub1"
$FirewallName = "azfw1"
$FirewallTier = "Standard" # or "Premium"
$FirewallPolicyName = "VwanFwPolicy"

# Get references to vWAN and vWAN Hub to convert #
$Vwan = Get-AzVirtualWan -ResourceGroupName $RG -Name $VwanName
$Hub = Get-AzVirtualHub -ResourceGroupName  $RG -Name $HubName

# Create a new Firewall Policy #
$FWPolicy = New-AzFirewallPolicy -Name $FirewallPolicyName -ResourceGroupName $RG -Location $Location

# Create a new Firewall Public IP #
$AzFWPIPs = New-AzFirewallHubPublicIpAddress -Count 1
$AzFWHubIPs = New-AzFirewallHubIpAddress -PublicIP $AzFWPIPs

# Create Firewall instance #
$AzFW = New-AzFirewall -Name $FirewallName -ResourceGroupName $RG -Location $Location `
            -VirtualHubId $Hub.Id -FirewallPolicyId $FWPolicy.Id `
            -SkuName "AZFW_Hub" -HubIPAddress $AzFWHubIPs `
            -SkuTier $FirewallTier `
            -Zone 1,2,3

Bu betiği çalıştırdıktan sonra, kullanılabilirlik alanları aşağıdaki ekran görüntüsünde gösterildiği gibi güvenli hub özelliklerinde görünmelidir:

Güvenli sanal hub kullanılabilirlik alanlarının ekran görüntüsü.

Azure Güvenlik Duvarı'nı dağıttıktan sonra, düzgün yönlendirme ve güvenlik sağlamak için azure güvenlik duvarını dağıtma ve özel yönlendirmeyi yapılandırma bölümünde açıklanan yapılandırma adımlarını tamamlamanız gerekir.

Sonraki Adımlar