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.
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.
Anslut till en virtuell Srv-Work-dator med Bastion och logga in.
Ö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.
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ärandenwww.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