Azure Firewall 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.

Een van de manieren waarop u de toegang tot uitgaande netwerken kunt beheren vanaf een Azure-subnet is met Azure Firewall. 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.

Netwerkinfrastructuur van zelfstudie

In dit artikel leert u het volgende:

  • Een testnetwerkomgeving instellen
  • Een firewall implementeren
  • Een standaardroute 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
$SecurePassword = ConvertTo-SecureString "<choose a password>" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("<choose a user name>", $SecurePassword);
$VirtualMachine = New-AzVMConfig -VMName Srv-Work -VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName Srv-Work -ProvisionVMAgent -EnableAutoUpdate -Credential $Credential
$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

Notitie

Azure biedt een standaard ip-adres voor uitgaande toegang voor VM's waaraan geen openbaar IP-adres is toegewezen of zich in de back-endpool van een interne Azure-load balancer bevinden. Het standaard ip-mechanisme voor uitgaande toegang biedt een uitgaand IP-adres dat niet kan worden geconfigureerd.

Het standaard IP-adres voor uitgaande toegang is uitgeschakeld wanneer een van de volgende gebeurtenissen plaatsvindt:

  • Er wordt een openbaar IP-adres toegewezen aan de VIRTUELE machine.
  • De VIRTUELE machine wordt in de back-endpool van een standaard load balancer geplaatst, met of zonder uitgaande regels.
  • Er wordt een Azure NAT Gateway-resource toegewezen aan het subnet van de VIRTUELE machine.

Virtuele machines die u maakt met behulp van virtuele-machineschaalsets in de flexibele indelingsmodus, hebben geen standaardtoegang voor uitgaand verkeer.

Zie Voor meer informatie over uitgaande verbindingen in Azure standaard uitgaande toegang in Azure en SNAT (Source Network Address Translation) gebruiken voor uitgaande verbindingen.

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

#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

Een toepassingsregel configureren

Met de toepassingsregel is uitgaande toegang tot www.google.com toegestaan.

$AppRule1 = New-AzFirewallApplicationRule -Name Allow-Google -SourceAddress 10.0.2.0/24 `
  -Protocol http, https -TargetFqdn www.google.com

$AppRuleCollection = New-AzFirewallApplicationRuleCollection -Name App-Coll01 `
  -Priority 200 -ActionType Allow -Rule $AppRule1

$Azfw.ApplicationRuleCollections.Add($AppRuleCollection)

Set-AzFirewall -AzureFirewall $Azfw

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 configureren

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

$NetRule1 = New-AzFirewallNetworkRule -Name "Allow-DNS" -Protocol UDP -SourceAddress 10.0.2.0/24 `
   -DestinationAddress 209.244.0.3,209.244.0.4 -DestinationPort 53

$NetRuleCollection = New-AzFirewallNetworkRuleCollection -Name RCNet01 -Priority 200 `
   -Rule $NetRule1 -ActionType "Allow"

$Azfw.NetworkRuleCollections.Add($NetRuleCollection)

Set-AzFirewall -AzureFirewall $Azfw

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.

    Verbinding maken bastion gebruiken.

  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.

Nu u hebt geverifieerd dat de firewallregels 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 de volgende zelfstudie, of als u deze niet meer nodig hebt, verwijdert u de resourcegroep Test-FW-RG om alle firewallgerelateerde resources te verwijderen:

Remove-AzResourceGroup -Name Test-FW-RG

Volgende stappen