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 etme

Önemli

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.

Önkoşullar

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

  • PowerShell 7

    Bu öğretici, Azure PowerShell'i PowerShell 7'de 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ı

İlk adım olarak, bazı 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
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 bunları merkezle uç olarak bağlayın:

# 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 noktada, herhangi bir bağlantı sağlayan tam işlevsel bir Sanal WAN sahipsiniz. Güvenlikle geliştirmek için her Sanal Hub'a bir Azure Güvenlik Duvarı dağıtmanız gerekir. Güvenlik Duvarı İlkeleri, sanal WAN Azure Güvenlik Duvarı örneğini verimli bir şekilde yönetmek için kullanılabilir. Bu nedenle, bu örnekte bir güvenlik duvarı ilkesi de oluşturulur:

# 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

Not

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ı Azure İzleyici'de günlüğe kaydetmeyi etkinleştirmek isteğe bağlıdır, ancak bu örnekte güvenlik duvarı günlüklerini kullanarak trafiğin güvenlik duvarından geçiş yaptığı kanıtlanır:

# Optionally, enable looging 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

Not

Bu, "Merkezler Arası" ayarı devre dışı olarak ayarlandığında Azure Güvenlik Duvarı Yöneticisi ile Azure Portal'dan 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).

İlk adımla başlayın, sanal ağ bağlantılarınızı Yönlendirme Tablosuna yaymak üzere None yapılandırın:

# 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

Artık ikinci adımla devam edebilir ve statik yolları yol tablosuna Default ekleyebilirsiniz. Bu örnekte, bir Sanal WAN bağlantının güvenliğini sağlarken Azure Güvenlik Duvarı Manager'ın oluşturacağı varsayılan yapılandırmayı uygularsınız, ancak statik yoldaki ön eklerin listesini belirli gereksinimlerinize uyacak şekilde değiştirebilirsiniz:

# 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)

Not

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

Not

Bu, "Interhub" ayarı etkin olarak ayarlandığında Azure Güvenlik Duvarı Manager ile Azure Portal'dan 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)

Sanal Ağ veya şirket içi Sanal WAN 40.0.0.0/24 gibi RFC1918 olmayan ön ekler kullanıyorsanız yönlendirme amacı yapılandırması tamamlandıktan sonra defaultRouteTable'a ek bir yol ekleyin. Bu yolu private_traffic olarak adlandırdığınızdan emin olun. Yol aksi şekilde adlandırılırsa, istenen yapılandırma uygulanır ancak Azure Portal'a yansıtılmaz.

# 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 etme

Artık tamamen operasyonel güvenli bir hub'ına sahipsiniz. Bağlantıyı test etmek için hub'a bağlı her uç sanal ağında bir sanal makineye ihtiyacınız vardır:

# 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")

Güvenlik duvarı ilkesindeki varsayılan yapılandırma her şeyi bırakmaktır. Bu nedenle bazı kuralları yapılandırmanız gerekir. Test sanal makinelerine Güvenlik Duvarı'nın genel IP adresi üzerinden erişilebilir olması için DNAT kurallarıyla başlayın:

# 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

Artık bazı örnek kurallar yapılandırabilirsiniz. SSH trafiğine izin veren bir ağ kuralının yanı sıra Tam Etki Alanı Adına ifconfig.coİnternet erişimine izin veren bir uygulama kuralı tanımlayın. Bu URL, HTTP isteğinde gördüğü kaynak IP adresini döndürür:

# 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 sanal makinelerin geçerli yollarını inceleyebilirsiniz. Bunlar Sanal WAN (0.0.0.0/0artı RFC1918) öğrenilen ön ekleri içermelidir, ancak diğer uç ö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

Şimdi bir Sanal Makineden diğerine trafik oluşturun ve Azure Güvenlik Duvarı bırakıldığını doğrulayın. Aşağıdaki SSH komutlarında sanal makinelerin parmak izlerini kabul etmeniz ve sanal makineleri oluştururken tanımladığınız parolayı sağlamanız gerekir. Bu örnekte, uç1 ile uç2 arasındaki sanal makineden beş ICMP yankı isteği paketi ve Linux yardımcı programını nc kullanarak bağlantı noktası 22'de tcp bağlantı girişimi göndereceksiniz (yalnızca bağlantı isteği gönderdiği ve sonucu gösterdiği bayraklarla -vz ). Daha önce yapılandırdığınız ağ kuralı izin verdiği için ping'in başarısız olduğunu ve 22 numaralı bağlantı noktasında TCP bağlantı girişiminin başarılı olduğunu görmeniz 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"

İnternet trafiğini de doğrulayabilirsiniz. Güvenlik duvarı ilkesinde (ifconfig.co) izin verilen FQDN'ye yardımcı programı curl aracılığıyla yapılan HTTP istekleri çalışmalıdır, ancak başka bir hedefe yönelik HTTP istekleri başarısız olmalıdır (bu örnekte ile bing.comtest edebilirsiniz):

# 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"

Paketlerin güvenlik duvarı tarafından bırakıldığından emin olmak için en kolay yol günlükleri denetlemektir. Azure Güvenlik Duvarı Azure İzleyici'ye günlük gönderecek şekilde yapılandırdığınızdan, ilgili günlükleri Azure İzleyici'den almak için Kusto Sorgu Dili kullanabilirsiniz:

Not

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.

Kaynakları temizleme

Test ortamını silmek için, tüm kapsanan nesnelerin bulunduğu kaynak grubunu kaldırabilirsiniz:

# 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 yordamda yeni bir Azure Sanal WAN Hub oluşturmak için Azure PowerShell kullanılır ve ardından Azure Güvenlik Duvarı kullanarak bunu hemen Güvenli Hub'a dönüştürür. Mevcut bir Azure Sanal WAN Hub'ına da benzer bir yaklaşım uygulanabilir. Güvenlik Duvarı Yöneticisi dönüştürme için de kullanılabilir, ancak betik tabanlı bir yaklaşım olmadan Azure Güvenlik Duvarı kullanılabilirlik alanlarına dağıtmak mümkün değildir. Mevcut bir Azure Sanal WAN Hub'ını, üç kullanılabilirlik alanına dağıtılmış bir Azure Güvenlik Duvarı kullanarak Güvenli Hub'a dönüştürmek için aşağıdaki kod parçacığını kullanabilirsiniz.

Not

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ı dağıtıldıktan sonra, önceki Dağıtım Azure Güvenlik Duvarı ve özel yönlendirmeyi yapılandırma bölümünde açıklandığı gibi bir yapılandırma yordamının tamamlanması gerekir.

Sonraki adımlar