Distribuera och konfigurera Azure Firewall med Hjälp av Azure PowerShell

En viktig del av en övergripande säkerhetsplan för nätverket är att kontrollera utgående nätverksåtkomst. Du kanske till exempel vill begränsa åtkomsten till webbplatser. Eller så kanske du vill begränsa de utgående IP-adresser och portar som kan nås.

Med Azure Firewall kan du kontrollera åtkomsten till utgående nätverk från ett Azure-undernät. Med Azure Firewall kan du konfigurera:

  • Programreglerna som definierar fullständigt kvalificerade domännamn (FQDN) kan nås från ett undernät.
  • Nätverksregler som definierar källadress, protokoll, målport och måladress.

Nätverkstrafiken måste följa konfigurerade brandväggsregler när du vidarebefordrar den till brandväggen som standardgateway för undernätet.

I den här artikeln skapar du ett förenklat virtuellt nätverk med tre undernät för enkel distribution. För produktionsdistributioner rekommenderas en hubb- och ekermodell , där brandväggen finns i ett eget virtuellt nätverk. Arbetsbelastningsservrarna finns i peerkopplade virtuella nätverk i samma region med ett eller flera undernät.

  • AzureFirewallSubnet – brandväggen ligger i det här undernätet.
  • Workload-SN – arbetsbelastningsservern ligger i det här undernätet. Det här undernätets nätverkstrafik går genom brandväggen.
  • AzureBastionSubnet – det undernät som används för Azure Bastion, som används för att ansluta till arbetsbelastningsservern.

Mer information om Azure Bastion finns i Vad är Azure Bastion?

Viktigt!

Priserna per timme börjar från det ögonblick då Bastion distribueras, oavsett utgående dataanvändning. Mer information finns i Priser och SKU:er. Om du distribuerar Bastion som en del av en självstudie eller ett test rekommenderar vi att du tar bort den här resursen när du har använt den.

Självstudie om nätverksinfrastruktur

I den här artikeln kan du se hur du:

  • konfigurera en testnätverksmiljö
  • distribuera en brandvägg
  • Skapa en standardväg
  • Konfigurera en programregel för att tillåta åtkomst till www.google.com
  • Konfigurera en nätverksregel för att tillåta åtkomst till externa DNS-servrar
  • testa brandväggen.

Om du vill kan du slutföra den här proceduren med hjälp av Azure-portalen.

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

Den här proceduren kräver att du kör PowerShell lokalt. Du måste ha Azure PowerShell-modulen installerad. Kör Get-Module -ListAvailable Az för att hitta versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). När du har verifierat PowerShell-versionen kör du Connect-AzAccount för att skapa en anslutning till Azure.

Konfigurera nätverket

Skapa först en resursgrupp som ska innehålla de resurser som behövs till att distribuera brandväggen. Sedan skapa ett virtuellt nätverk, undernät och testservrar.

Skapa en resursgrupp

Resursgruppen innehåller alla resurser för distributionen.

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

Skapa ett virtuellt nätverk och En Azure Bastion-värd

Det här virtuella nätverket har tre undernät:

Kommentar

Storleken på AzureFirewallSubnet-undernätet är /26. Mer information om undernätets storlek finns i Vanliga frågor och svar om Azure Firewall.

$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

Skapa nu det virtuella nätverket:

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

Skapa offentlig IP-adress för Azure Bastion-värd

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

Skapa Azure Bastion-värd

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

Skapa en virtuell dator

Skapa nu den virtuella arbetsbelastningsdatorn och placera den i lämpligt undernät. När du uppmanas anger du användarnamn och lösenord för den virtuella datorn.

Skapa en virtuell arbetsbelastningsdator. När du uppmanas anger du användarnamn och lösenord för den virtuella datorn.

#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

Kommentar

Azure tillhandahåller en standard-IP för utgående åtkomst för virtuella datorer som antingen inte har tilldelats någon offentlig IP-adress eller som finns i serverdelspoolen för en intern grundläggande Azure-lastbalanserare. Ip-mekanismen för utgående åtkomst har en utgående IP-adress som inte kan konfigureras.

Standard-IP för utgående åtkomst inaktiveras när någon av följande händelser inträffar:

  • En offentlig IP-adress tilldelas till den virtuella datorn.
  • Den virtuella datorn placeras i serverdelspoolen för en standardlastbalanserare, med eller utan regler för utgående trafik.
  • En Azure NAT Gateway-resurs tilldelas till den virtuella datorns undernät.

Virtuella datorer som du skapar med hjälp av vm-skalningsuppsättningar i flexibelt orkestreringsläge har inte standardåtkomst till utgående trafik.

Mer information om utgående anslutningar i Azure finns i Standardutgående åtkomst i Azure och Använda SNAT (Source Network Address Translation) för utgående anslutningar.

Distribuera brandväggen

Distribuera brandväggen till det virtuella nätverket.

# 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

Skriv ned den privata IP-adressen. Du kommer att använda den senare när du skapar standardvägen.

Skapa en standardväg

Skapa en tabell med BGP-vägspridning inaktiverad

$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

Konfigurera en programregel

Programregeln tillåter utgående åtkomst till www.google.com.

$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 innehåller en inbyggd regelsamling för fullständiga domännamn för mål (FQDN) i infrastrukturen som tillåts som standard. Dessa FQDN är specifika för plattformen och kan inte användas för andra ändamål. Mer information finns i Infrastruktur-FQDN.

Konfigurera en nätverksregel

Nätverksregeln tillåter utgående åtkomst till två IP-adresser på port 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

Ändra den primära och sekundära DNS-adressen för nätverksgränssnittet Srv-Work

I testsyfte i den här proceduren konfigurerar du serverns primära och sekundära DNS-adresser. Detta är inte ett allmänt Azure Firewall-krav.

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

testa brandväggen.

Testa nu brandväggen för att bekräfta att den fungerar som förväntat.

  1. Anslut till Den virtuella Srv-Work-datorn använder Bastion och loggar in.

    Anslut med Bastion.

  2. Öppna ett PowerShell-fönster på Srv-Work och kör följande kommandon:

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

    Båda kommandona bör returnera svar som visar att DNS-frågorna kommer genom brandväggen.

  3. Kör följande kommandon:

    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
    

    Begärandena www.google.com ska lyckas och begäranden www.microsoft.com bör misslyckas. Detta visar att brandväggsreglerna fungerar som förväntat.

Nu har du alltså kontrollerat att brandväggsreglerna fungerar:

  • Du kan omvandla DNS-namn med hjälp av den konfigurerade externa DNS-servern.
  • Du kan bläddra till en tillåten FQDN, men inte till andra.

Rensa resurser

Du kan behålla brandväggsresurserna för nästa självstudie, eller om det inte längre behövs tar du bort resursgruppen Test-FW-RG för att ta bort alla brandväggsrelaterade resurser:

Remove-AzResourceGroup -Name Test-FW-RG

Nästa steg