Zelfstudie: Uw virtuele hub beveiligen met Behulp van Azure PowerShell
In deze zelfstudie maakt u een Virtual WAN-exemplaar met een virtuele hub in één regio en implementeert u een Azure Firewall in de virtuele hub om de connectiviteit te beveiligen. In dit voorbeeld demonstreert u beveiligde connectiviteit tussen virtuele netwerken. Verkeer tussen virtuele netwerken en site-naar-site-, punt-naar-site of ExpressRoute-branches wordt ook ondersteund door virtuele beveiligde hub.
In deze zelfstudie leert u het volgende:
- De virtuele WAN implementeren
- Azure Firewall implementeren en aangepaste routering configureren
- Connectiviteit testen
Belangrijk
Een Virtual WAN is een verzameling hubs en services die beschikbaar worden gesteld in de hub. U kunt zoveel virtuele WAN's implementeren die u nodig hebt. In een Virtual WAN-hub zijn er meerdere services zoals VPN, ExpressRoute, enzovoort. Elk van deze services wordt automatisch geïmplementeerd in beschikbaarheidszones, met uitzondering van Azure Firewall, als de regio beschikbaarheidszones ondersteunt. Als u een bestaande Azure Virtual WAN-hub wilt upgraden naar een beveiligde hub en de Azure Firewall beschikbaarheidszones wilt gebruiken, moet u Azure PowerShell gebruiken, zoals verderop in dit artikel wordt beschreven.
Vereisten
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
PowerShell 7
Voor deze zelfstudie moet u Azure PowerShell lokaal uitvoeren op PowerShell 7. Zie Migreren van Windows PowerShell 5.1 naar PowerShell 7 om PowerShell 7 te installeren.
De moduleversie Az.Network moet 4.17.0 of hoger zijn.
Aanmelden bij Azure
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
Eerste implementatie van Virtual WAN
Als eerste stap moet u enkele variabelen instellen en de resourcegroep, het virtuele WAN-exemplaar en de virtuele hub maken:
# 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"
Maak twee virtuele netwerken en verbind ze met de hub als spokes:
# 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
Op dit moment hebt u een volledig functioneel Virtual WAN dat any-to-any-connectiviteit biedt. Als u het wilt verbeteren met beveiliging, moet u een Azure Firewall implementeren op elke virtuele hub. Er kan Firewall-beleid worden gebruikt om het Azure Firewall-exemplaar van Virtual WAN efficiënt te beheren. In dit voorbeeld wordt dus ook een firewallbeleid gemaakt:
# 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
Notitie
De volgende opdracht voor het maken van een firewall maakt geen gebruik van beschikbaarheidszones. Als u deze functie wilt gebruiken, is een extra parameter -Zone vereist. Aan het einde van dit artikel vindt u een voorbeeld in de sectie Upgrade.
Het inschakelen van logboekregistratie van de Azure Firewall op Azure Monitor is optioneel, maar in dit voorbeeld gebruikt u de Firewall-logboeken om te bewijzen dat verkeer de firewall doorkruist:
# 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 Firewall implementeren en aangepaste routering configureren
Notitie
Dit is de configuratie die is geïmplementeerd bij het beveiligen van connectiviteit vanuit Azure Portal met Azure Firewall Manager wanneer de instelling Inter-hub is ingesteld op uitgeschakeld. Zie Routeringsintentie inschakelen voor instructies over het configureren van routering met behulp van PowerShell wanneer 'Inter-hub' is ingeschakeld.
U hebt nu een Azure Firewall in de hub, maar u moet nog steeds de routering wijzigen zodat Virtual WAN het verkeer van de virtuele netwerken en van de branches via de firewall verzendt. Dit doet u in twee stappen:
- Configureer alle virtuele netwerkverbindingen (en de branche-verbindingen indien aanwezig) zodat deze doorgeven aan de Routeringstabel
None
. Het effect van deze configuratie is dat andere virtuele netwerken en branches hun voorvoegsels niet leren en dat er geen routering is om ze te bereiken. - U kunt nu statische routes invoegen in de Routeringstabel
Default
(waarbij alle virtuele netwerken en branches standaard zijn gekoppeld), zodat al het verkeer naar de Azure Firewall wordt verzonden.
Begin met de eerste stap, om uw virtuele netwerkverbindingen te configureren zodat deze doorgeven aan de Routeringstabel None
:
# 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
U kunt nu doorgaan met de tweede stap, om de statische routes toe te voegen aan de routeringstabel Default
. In dit voorbeeld past u de standaard configuratie toe die Azure Firewall Manager zou genereren bij het beveiligen van de connectiviteit in een Virtual WAN, maar u kunt de lijst met voorvoegsels in de statische route aanpassen aan uw specifieke vereisten:
# 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)
Notitie
Tekenreeks 'all_traffic' als waarde voor parameter '-Name' in de bovenstaande opdracht New-AzVHubRoute heeft een speciale betekenis: als u deze exacte tekenreeks gebruikt, wordt de configuratie die in dit artikel wordt toegepast, correct weergegeven in de Azure-portal (Firewall Manager --> Virtuele hubs --> [Uw hub] -> Beveiligingsconfiguratie). Als er een andere naam wordt gebruikt, wordt de gewenste configuratie toegepast, maar wordt deze niet weergegeven in Azure Portal.
Routeringsintentie inschakelen
Als u verkeer tussen hubs en regio's wilt verzenden via Azure Firewall die is geïmplementeerd in de Virtual WAN-hub, kunt u in plaats daarvan de functie voor routeringsintentie inschakelen. Zie de documentatie over routeringsintentie voor meer informatie over routeringsintentie.
Notitie
Dit is de configuratie die is geïmplementeerd bij het beveiligen van connectiviteit vanuit Azure Portal met Azure Firewall Manager wanneer de instelling Interhub is ingesteld op ingeschakeld.
# 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)
Als u niet-RFC1918 voorvoegsels gebruikt in uw Virtual WAN, zoals 40.0.0.0/24 in uw virtuele netwerk of on-premises, voegt u een extra route toe aan de defaultRouteTable nadat de configuratie van de routeringsintentie is voltooid. Zorg ervoor dat u deze route een naam krijgt als private_traffic. Als de route anders wordt genoemd, wordt de gewenste configuratie toegepast, maar wordt deze niet weergegeven in Azure Portal.
# 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
Connectiviteit testen
Nu hebt u een volledig operationele beveiligde hub. Als u de connectiviteit wilt testen, hebt u één virtuele machine nodig in elke spoke van het virtuele netwerk dat is verbonden met de hub:
# 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")
De standaardconfiguratie in het firewallbeleid is om alles te verwijderen. Daarom moet u enkele regels configureren. Begin met DNAT-regels, zodat de virtuele testmachines toegankelijk zijn via het openbare IP-adres van de Firewall:
# 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
Nu kunt u enkele voorbeeldregels configureren. Definieer een netwerkregel die SSH-verkeer toestaat, plus een toepassingsregel waarmee Internettoegang tot de FQDN-naam (Fully Qualified Domain Name) ifconfig.co
wordt toegestaan. Deze URL retourneert het bron-IP-adres dat wordt weergegeven in de HTTP-aanvraag:
# 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
Voordat u verkeer daadwerkelijk verzendt, kunt u de effectieve routes van de virtuele machines inspecteren. Deze moeten de voorvoegsels bevatten die zijn geleerd van het Virtual WAN (0.0.0.0/0
plus RFC1918), maar niet het voorvoegsel van de andere spoke:
# 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
Genereer nu verkeer van de ene virtuele machine naar de andere en controleer of dit wordt verwijderd in de Azure Firewall. In de volgende SSH-opdrachten moet u de vingerafdrukken van de virtuele machines accepteren en het wachtwoord opgeven dat u hebt gedefinieerd tijdens het maken van de virtuele machines. In dit voorbeeld gaat u vijf ICMP-echo-aanvraagpakketten verzenden vanaf de virtuele machine in spoke1 naar spoke2, plus een TCP-verbindingspoging op poort 22 met behulp van het Linux-hulpprogramma nc
(met de -vz
-vlaggen wordt alleen een verbindingsaanvraag verzonden en wordt het resultaat weergegeven). Als het goed is, ziet u dat de ping mislukt en dat de TCP-verbindingspoging op poort 22 slaagt, omdat deze wordt toegestaan door de netwerkregel die u eerder hebt geconfigureerd:
# 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"
U kunt ook internetverkeer controleren. HTTP-aanvragen via het hulpprogramma curl
naar de FQDN die u hebt toegestaan in het firewallbeleid (ifconfig.co
) zouden moeten werken, maar HTTP-aanvragen naar een andere bestemming moeten mislukken (in dit voorbeeld test u met bing.com
):
# 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"
De eenvoudigste manier om te controleren of de pakketten door de firewall worden verwijderd, is door de logboeken te controleren. Aangezien u de Azure Firewall hebt geconfigureerd om logboeken te verzenden naar Azure Monitor, kunt u de Kusto-querytaal gebruiken om de relevante logboeken uit Azure Monitor op te halen:
Notitie
Het kan ongeveer 1 minuut duren voordat de logboeken worden verzonden naar Azure Monitor
# 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
In de vorige opdracht moet u verschillende vermeldingen zien:
- Er wordt een DNAT uitgevoerd op uw SSH-verbinding
- Verwijderde ICMP-pakketten tussen de VM’s in de spokes (10.1.1.4 en 10.1.2.4)
- Toegestane SSH-verbindingen tussen de VM’s in de spokes
Hier volgt een voorbeeld van de uitvoer die wordt geproduceerd met de bovenstaande opdracht:
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
Als u de logboeken voor de toepassingsregels wilt weergeven (met een beschrijving van de toegestane en geweigerde HTTP-verbindingen) of als u de manier wilt wijzigen waarop de logboeken worden weergegeven, kunt u het proberen met andere KQL-query’s. U vindt enkele voorbeelden in Azure Monitor-logboeken voor Azure Firewall.
Resources opschonen
Als u de testomgeving wilt verwijderen, kunt u de resourcegroep met alle ingesloten objecten verwijderen:
# Delete resource group and all contained resources
Remove-AzResourceGroup -Name $RG
Een nieuwe Azure Firewall implementeren met beschikbaarheidszones naar een bestaande hub
De vorige procedure maakt gebruik van Azure PowerShell om een nieuwe Azure Virtual WAN Hub te maken en converteert deze onmiddellijk naar een beveiligde hub met behulp van Azure Firewall. Een vergelijkbare benadering kan worden toegepast op een bestaande Azure Virtual WAN-hub. Firewall Manager kan ook worden gebruikt voor de conversie, maar het is niet mogelijk om Azure Firewall in beschikbaarheidszones te implementeren zonder een op scripts gebaseerde benadering. U kunt het volgende codefragment gebruiken om een bestaande Azure Virtual WAN Hub te converteren naar een beveiligde hub, met behulp van een Azure Firewall die in alle drie de beschikbaarheidszones is geïmplementeerd.
Notitie
Met deze procedure wordt een nieuwe Azure Firewall geïmplementeerd. U kunt een bestaande Azure Firewall niet upgraden zonder beschikbaarheidszones naar een met beschikbaarheidszones. U moet eerst de bestaande Azure Firewall in de hub verwijderen en deze opnieuw maken met behulp van deze procedure.
# 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
Nadat u dit script hebt uitgevoerd, moeten beschikbaarheidszones worden weergegeven in de eigenschappen van de beveiligde hub, zoals wordt weergegeven in de volgende schermopname:
Nadat de Azure Firewall is geïmplementeerd, moet een configuratieprocedure worden voltooid zoals beschreven in de vorige sectie Azure Firewall implementeren en aangepaste routering configureren.