Distribuera och konfigurera Azure Firewall-princip 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.

Ett sätt att styra utgående nätverksåtkomst från ett Azure-undernät är med Azure Firewall and Firewall Policy. 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.

Tutorial network infrastructure

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

  • konfigurera en testnätverksmiljö
  • distribuera en brandvägg
  • Skapa en standardväg
  • Skapa en brandväggsprincip
  • 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
$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

Skapa en brandväggsprincip

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

Konfigurera en brandväggsprincipprogramregel

Programregeln tillåter utgående åtkomst till 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 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 för brandväggsprincip

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

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 -FirewallPolicyId $fwpol.Id


#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

Ä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.

    Connect using 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äggsprincipreglerna 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 ytterligare testning, 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