Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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ı'nı dağıtın ve özel yönlendirmeyi yapılandırın
- 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-AzVirtualHubVnetConnectioncmdlet'ini kullanarak bunları bir hub'a uydu olarak bağlayın. Sanal ağlar, adres ön ekleri10.1.1.0/24ve10.1.2.0/24ile oluşturulur.
# Create Virtual Network
$Spoke1 = New-AzVirtualNetwork -Name "spoke1" -ResourceGroupName $RG -Location $Location -AddressPrefix "10.1.1.0/24"
Add-AzVirtualNetworkSubnetConfig -Name "AzureBastionSubnet" -VirtualNetwork $Spoke1 -AddressPrefix "10.1.1.64/26"
$Spoke1 | Set-AzVirtualNetwork
$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ı'nı dağıtın ve özel yönlendirmeyi yapılandırın
Note
Bu, "Hub'lar arası" ayarı devre dışı 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. "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:
- Yönlendirme Tablosu'na yaymak 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 ve dalların ön eklerini öğrenmemeleri ve bu nedenle onlara ulaşmak için bir yönlendirme mekanizmasına sahip olmamalarıdır.
- Artık tüm trafiğin
DefaultAzure 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
Artık 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.
İlk olarak, kimlik doğrulaması için SSH anahtarları oluşturun:
# Generate SSH key pair for VM authentication
ssh-keygen -t rsa -b 4096 -f ~/.ssh/vwan-lab-key -N ""
$sshPublicKey = Get-Content ~/.ssh/vwan-lab-key.pub
Şimdi genel IP adresleri olmadan sanal makineleri oluşturun:
# Create VMs in spokes for testing
$VMLocalAdminUser = "azureuser"
$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 "Ubuntu2204" -Size $VMSize `
-VirtualNetworkName "spoke1" -SubnetName "vm" `
-PublicIpAddressName "" -OpenPorts 22,80 `
-GenerateSshKey -SshKeyName "spoke1-ssh-key"
$NIC1 = Get-AzNetworkInterface -ResourceId $($VM1.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke1VMPrivateIP = $NIC1.IpConfigurations[0].PrivateIpAddress
# 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 "Ubuntu2204" -Size $VMSize `
-VirtualNetworkName "spoke2" -SubnetName "vm" `
-PublicIpAddressName "" -OpenPorts 22,80 `
-GenerateSshKey -SshKeyName "spoke2-ssh-key"
$NIC2 = Get-AzNetworkInterface -ResourceId $($VM2.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke2VMPrivateIP = $NIC2.IpConfigurations[0].PrivateIpAddress
Azure Bastion’ı dağıtma
Genel IP adreslerine veya DNAT kurallarına gerek kalmadan sanal makinelere güvenli bir şekilde bağlanmak için Uç-01 sanal ağında Azure Bastion'ı dağıtın.
# Deploy Azure Bastion for secure VM access
$BastionPip = New-AzPublicIpAddress -ResourceGroupName $RG -Name "bastion-pip" `
-Location $Location -AllocationMethod Static -Sku Standard
$Spoke1 = Get-AzVirtualNetwork -ResourceGroupName $RG -Name "spoke1"
$BastionSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AzureBastionSubnet" -VirtualNetwork $Spoke1
New-AzBastion -ResourceGroupName $RG -Name "spoke1-bastion" `
-PublicIpAddress $BastionPip -VirtualNetwork $Spoke1 -Sku "Basic"
Note
Azure Bastion dağıtımının tamamlanması yaklaşık 10 dakika sürebilir.
Varsayılan olarak, güvenlik duvarı ilkesi tüm trafiği engeller. Uç sanal makineleri ile İnternet arasında erişime izin vermek için güvenlik duvarı kurallarını yapılandırmanız gerekir. İ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 Azure Bastion'ı kullanın. Bu örnekte şunları yapacaksınız:
- Azure portalı üzerinden Azure Bastion'ı kullanarak spoke1-vm'ye bağlanın
- Uç 1'deki VM'den Uç 2'deki VM'ye beş ICMP yankı isteği (ping) gönderin.
- 22 numaralı bağlantı noktasında TCP bağlantısını, veri göndermeden bağlantıyı denetlemek için
ncbayraklarını kullanarak-vz(netcat) yardımcı programı ile deneme 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.
Bağlantıyı test etmek için:
- Azure portalında spoke1-vm sanal makinesine gidin.
- Bastion ile Bağlan'ı> seçin.
- azureuser kullanıcı adını girin ve daha önce oluşturulan özel anahtar dosyasını karşıya yükleyin.
- SSH oturumu açmak için Bağlan'ı seçin.
- SSH oturumunda, aşağıdaki komutları çalıştırın:
# Ping should fail (blocked by firewall)
ping $Spoke2VMPrivateIP -c 5
# SSH connectivity check should succeed (allowed by firewall)
nc -vz $Spoke2VMPrivateIP 22
Spoke2-vm'nin gerçek özel IP adresi $Spoke2VMPrivateIP ile değiştirin (PowerShell çıkışında görüntülenir).
Ayrıca güvenlik duvarı üzerinden İnternet erişimini test edebilirsiniz.
curl yardımcı programını kullanan HTTP istekleri izin verilen FQDN'ye (ifconfig.co) başarılı olmalı, diğer hedeflere (örneğin bing.com) yönelik istekler güvenlik duvarı politikası tarafından engellenmelidir.
Spoke1-vm'de aynı SSH oturumundan:
# This HTTP request should succeed, since it is allowed in an app rule in the AzFW, and return the public IP of the FW
curl -s4 ifconfig.co
# This HTTP request should fail, since the FQDN bing.com is not in any app rule in the firewall policy
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önderilmiş olarak görünmesi 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:
- Uçlardaki VM'ler arasında bırakılan ICMP paketleri (10.1.1.4 ve 10.1.2.4)
- Spoke'lardaki VM'ler arasında izni 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:07.045Z TCP 10.1.1.4 35932 10.1.2.4 22 Allow N/A AZFW1
2020-10-04T20:52:47.475Z TCP 10.1.1.4 53748 10.1.2.4 22 Allow N/A AZFW1
2020-10-04T20:51:04.682Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A 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
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 işlem yeni bir Azure Güvenlik Duvarı dağıtır. Mevcut bir Azure Güvenlik Duvarı'nı, kullanılabilirlik alanları olmayan bir yapılandırmadan kullanılabilirlik alanları olan bir yapılandırmaya 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:
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.