Azure Firewall-beleid implementeren en configureren met behulp van Azure PowerShell

Het beheren van toegang tot uitgaande netwerken is een belangrijk onderdeel van een algemeen netwerkbeveiligingsabonnement. U kunt bijvoorbeeld de toegang tot websites beperken. U kunt ook de toegang tot uitgaande IP-adressen en poorten beperken.

Eén manier waarop u uitgaande netwerktoegang vanuit een Azure-subnet kunt beheren, is met Azure Firewall en Firewall Policy. Met Azure Firewall kunt u het volgende configureren:

  • Toepassingsregels die volledig gekwalificeerde domeinnamen (FQDN's) definiëren waartoe toegang kan worden verkregen via een subnet.
  • Netwerkregels die een bronadres, protocol, doelpoort en doeladres definiëren.

Netwerkverkeer is onderhevig aan de geconfigureerde firewallregels wanneer u het routeert naar de firewall als standaardgateway van het subnet.

Voor dit artikel maakt u een vereenvoudigd VNet met drie subnetten voor eenvoudige implementatie. Voor productie-implementaties wordt een hub en spoke-model aanbevolen, waarbij de firewall zich in een eigen VNet bevindt. De werkbelastingservers bevinden zich in gepeerde VNets in dezelfde regio met een of meer subnetten.

  • AzureFirewallSubnet – De firewall bevindt zich in dit subnet.
  • Workload-SN – De workloadserver bevindt zich in dit subnet. Het netwerkverkeer van dit subnet gaat via de firewall.
  • AzureBastionSubnet : het subnet dat wordt gebruikt voor Azure Bastion, dat wordt gebruikt om verbinding te maken met de workloadserver.

Zie Wat is Azure Bastion?

Belangrijk

De prijzen per uur beginnen vanaf het moment dat Bastion wordt geïmplementeerd, ongeacht het uitgaande gegevensgebruik. Zie Prijzen en SKU's voor meer informatie. Als u Bastion implementeert als onderdeel van een zelfstudie of test, raden we u aan deze resource te verwijderen nadat u deze hebt gebruikt.

Tutorial network infrastructure

In dit artikel leert u het volgende:

  • Een testnetwerkomgeving instellen
  • Een firewall implementeren
  • Een standaardroute maken
  • Een firewallbeleid maken
  • Een toepassingsregel configureren om toegang tot www.google.com toe te staan
  • Een netwerkregel configureren om toegang tot externe DNS-servers toe te staan
  • De firewall testen

Als u wilt, kunt u deze procedure voltooien met behulp van Azure Portal.

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Vereisten

Voor deze procedure moet u PowerShell lokaal uitvoeren. U moet de Azure PowerShell-module hebben geïnstalleerd. Voer Get-Module -ListAvailable Az uit om de versie te bekijken. Als u PowerShell wilt upgraden, raadpleegt u De Azure PowerShell-module installeren. Nadat u de versie van PowerShell hebt gecontroleerd, voert u Connect-AzAccount uit om een verbinding op te zetten met Azure.

Het netwerk instellen

Maak eerst een resourcegroep met de resources die nodig zijn om de firewall te implementeren. Maak vervolgens een VNet, subnetten en testservers.

Een brongroep maken

De resourcegroep bevat alle resources voor de implementatie.

New-AzResourceGroup -Name Test-FW-RG -Location "East US"

Een virtueel netwerk en een Azure Bastion-host maken

Dit virtuele netwerk heeft drie subnetten:

Notitie

De grootte van het subnet AzureFirewallSubnet is /26. Zie Veelgestelde vragen over Azure Firewall voor meer informatie over de grootte van het subnet.

$Bastionsub = New-AzVirtualNetworkSubnetConfig -Name AzureBastionSubnet -AddressPrefix 10.0.0.0/27
$FWsub = New-AzVirtualNetworkSubnetConfig -Name AzureFirewallSubnet -AddressPrefix 10.0.1.0/26
$Worksub = New-AzVirtualNetworkSubnetConfig -Name Workload-SN -AddressPrefix 10.0.2.0/24

Maak nu het virtuele netwerk:

$testVnet = New-AzVirtualNetwork -Name Test-FW-VN -ResourceGroupName Test-FW-RG `
-Location "East US" -AddressPrefix 10.0.0.0/16 -Subnet $Bastionsub, $FWsub, $Worksub

Openbaar IP-adres maken voor Azure Bastion-host

$publicip = New-AzPublicIpAddress -ResourceGroupName Test-FW-RG -Location "East US" `
   -Name Bastion-pip -AllocationMethod static -Sku standard

Een Azure Bastion-host maken

New-AzBastion -ResourceGroupName Test-FW-RG -Name Bastion-01 -PublicIpAddress $publicip -VirtualNetwork $testVnet

Maak een virtuele machine

Maak nu de virtuele workloadmachine en plaats deze in het juiste subnet. Wanneer u daarom wordt gevraagd, typt u een gebruikersnaam en wachtwoord voor de virtuele machine.

Maak een virtuele workloadmachine. Wanneer u daarom wordt gevraagd, typt u een gebruikersnaam en wachtwoord voor de virtuele machine.

#Create the NIC
$wsn = Get-AzVirtualNetworkSubnetConfig -Name  Workload-SN -VirtualNetwork $testvnet
$NIC01 = New-AzNetworkInterface -Name Srv-Work -ResourceGroupName Test-FW-RG -Location "East us" -Subnet $wsn

#Define the virtual machine
$VirtualMachine = New-AzVMConfig -VMName Srv-Work -VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName Srv-Work -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC01.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2019-Datacenter' -Version latest

#Create the virtual machine
New-AzVM -ResourceGroupName Test-FW-RG -Location "East US" -VM $VirtualMachine -Verbose

Een firewallbeleid maken

$fwpol = New-AzFirewallPolicy -Name fw-pol -ResourceGroupName Test-FW-RG -Location eastus

Een toepassingsregel voor firewallbeleid configureren

De toepassingsregel staat uitgaande toegang toe tot www.google.com.

$RCGroup = New-AzFirewallPolicyRuleCollectionGroup -Name AppRCGroup -Priority 100 -FirewallPolicyObject $fwpol
$apprule1 = New-AzFirewallPolicyApplicationRule -Name Allow-google -SourceAddress "10.0.2.0/24" -Protocol "http:80","https:443" -TargetFqdn www.google.com
$appcoll1 = New-AzFirewallPolicyFilterRuleCollection -Name App-coll01 -Priority 100 -Rule $appRule1 -ActionType "Allow"
Set-AzFirewallPolicyRuleCollectionGroup -Name $RCGroup.Name -Priority 100 -RuleCollection $appcoll1 -FirewallPolicyObject $fwPol

Azure Firewall bevat een ingebouwde regelverzameling voor infrastructuur-FQDN’s die standaard zijn toegestaan. Deze FQDN’s zijn specifiek voor het platform en kunnen niet voor andere doeleinden worden gebruikt. Zie FQDN's voor infrastructuur voor meer informatie.

Een netwerkregel voor firewallbeleid configureren

De netwerkregel staat uitgaande toegang toe tot twee IP-adressen op poort 53 (DNS).

$RCGroup = New-AzFirewallPolicyRuleCollectionGroup -Name NetRCGroup -Priority 200 -FirewallPolicyObject $fwpol
$netrule1 = New-AzFirewallPolicyNetworkRule -name Allow-DNS -protocol UDP -sourceaddress 10.0.2.0/24 -destinationaddress 209.244.0.3,209.244.0.4 -destinationport 53
$netcoll1 = New-AzFirewallPolicyFilterRuleCollection -Name Net-coll01 -Priority 200 -Rule $netrule1 -ActionType "Allow"
Set-AzFirewallPolicyRuleCollectionGroup -Name $RCGroup.Name -Priority 200 -RuleCollection $netcoll1 -FirewallPolicyObject $fwPol

De firewall implementeren

Implementeer nu de firewall in het virtuele netwerk.

# Get a Public IP for the firewall
$FWpip = New-AzPublicIpAddress -Name "fw-pip" -ResourceGroupName Test-FW-RG `
  -Location "East US" -AllocationMethod Static -Sku Standard
# Create the firewall
$Azfw = New-AzFirewall -Name Test-FW01 -ResourceGroupName Test-FW-RG -Location "East US" -VirtualNetwork $testVnet -PublicIpAddress $FWpip -FirewallPolicyId $fwpol.Id


#Save the firewall private IP address for future use

$AzfwPrivateIP = $Azfw.IpConfigurations.privateipaddress
$AzfwPrivateIP

Noteer het privé-IP-adres. U zult het later gebruiken wanneer u de standaardroute maakt.

Een standaardroute maken

Een tabel maken, waarbij BGP-routedoorgifte is uitgeschakeld

$routeTableDG = New-AzRouteTable `
  -Name Firewall-rt-table `
  -ResourceGroupName Test-FW-RG `
  -location "East US" `
  -DisableBgpRoutePropagation

#Create a route
 Add-AzRouteConfig `
  -Name "DG-Route" `
  -RouteTable $routeTableDG `
  -AddressPrefix 0.0.0.0/0 `
  -NextHopType "VirtualAppliance" `
  -NextHopIpAddress $AzfwPrivateIP `
 | Set-AzRouteTable

#Associate the route table to the subnet

Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $testVnet `
  -Name Workload-SN `
  -AddressPrefix 10.0.2.0/24 `
  -RouteTable $routeTableDG | Set-AzVirtualNetwork

Het primaire en secundaire DNS-adres voor de netwerkinterface Srv-Work wijzigen

Configureer voor testdoeleinden in deze procedure de primaire en secundaire DNS-adressen van de server. Dit is geen algemene Azure Firewall-vereiste.

$NIC01.DnsSettings.DnsServers.Add("209.244.0.3")
$NIC01.DnsSettings.DnsServers.Add("209.244.0.4")
$NIC01 | Set-AzNetworkInterface

De firewall testen

Test nu de firewall om te controleren of deze werkt zoals verwacht.

  1. Verbinding maken naar Virtuele Srv-Work-machine met Bastion en meld u aan.

    Connect using Bastion.

  2. Open in Srv-Work een PowerShell-venster en voer de volgende opdrachten uit:

    nslookup www.google.com
    nslookup www.microsoft.com
    

    Beide opdrachten moeten antwoorden retourneren, zodat u kunt zien dat uw DNS-query's via de firewall worden uitgevoerd.

  3. Voer de volgende opdrachten uit:

    Invoke-WebRequest -Uri https://www.google.com
    Invoke-WebRequest -Uri https://www.google.com
    
    Invoke-WebRequest -Uri https://www.microsoft.com
    Invoke-WebRequest -Uri https://www.microsoft.com
    

    De www.google.com aanvragen moeten slagen en de www.microsoft.com aanvragen moeten mislukken. Dit laat zien dat uw firewallregels werken zoals verwacht.

U hebt nu gecontroleerd of de firewallbeleidsregels werken:

  • Kunt u DNS-namen omzetten met behulp van de geconfigureerde externe DNS-server.
  • Kunt u bladeren naar de enige toegestane FQDN, maar niet naar andere.

Resources opschonen

U kunt uw firewallresources behouden voor verdere tests of als u deze niet meer nodig hebt, verwijdert u de resourcegroep Test-FW-RG om alle firewallresources te verwijderen:

Remove-AzResourceGroup -Name Test-FW-RG

Volgende stappen