Distribuera och konfigurera Azure Firewall med Hjälp av Azure CLI
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. FQDN kan också innehålla SQL-instanser.
- 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 . 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.
- Jump-SN – ”hopp”-servern ligger i det här undernätet. Hoppservern har en offentlig IP-adress som du kan ansluta till via Fjärrskrivbord. Därifrån kan du sedan ansluta till arbetsbelastningsservern (via ett annat Fjärrskrivbord).
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 eller Azure PowerShell.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.55.0 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
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.
az group create --name Test-FW-RG --location eastus
Skapa ett virtuellt nätverk
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.
az network vnet create \
--name Test-FW-VN \
--resource-group Test-FW-RG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name AzureFirewallSubnet \
--subnet-prefix 10.0.1.0/26
az network vnet subnet create \
--name Workload-SN \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefix 10.0.2.0/24
az network vnet subnet create \
--name Jump-SN \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefix 10.0.3.0/24
Skapa virtuella datorer
Skapa nu de virtuella hopp- och arbetsbelastningsdatorerna och placera dem i respektive undernät. När du uppmanas till det skriver du ett lösenord för den virtuella datorn.
Skapa den virtuella Srv-Jump-datorn.
az vm create \
--resource-group Test-FW-RG \
--name Srv-Jump \
--location eastus \
--image win2016datacenter \
--vnet-name Test-FW-VN \
--subnet Jump-SN \
--admin-username azureadmin
az vm open-port --port 3389 --resource-group Test-FW-RG --name Srv-Jump
Skapa ett nätverkskort för Srv-Work med specifika DNS-server-IP-adresser och ingen offentlig IP-adress att testa med.
az network nic create \
-g Test-FW-RG \
-n Srv-Work-NIC \
--vnet-name Test-FW-VN \
--subnet Workload-SN \
--public-ip-address "" \
--dns-servers 209.244.0.3 209.244.0.4
Skapa nu den virtuella arbetsbelastningsdatorn. När du uppmanas till det skriver du ett lösenord för den virtuella datorn.
az vm create \
--resource-group Test-FW-RG \
--name Srv-Work \
--location eastus \
--image win2016datacenter \
--nics Srv-Work-NIC \
--admin-username azureadmin
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.
az network firewall create \
--name Test-FW01 \
--resource-group Test-FW-RG \
--location eastus
az network public-ip create \
--name fw-pip \
--resource-group Test-FW-RG \
--location eastus \
--allocation-method static \
--sku standard
az network firewall ip-config create \
--firewall-name Test-FW01 \
--name FW-config \
--public-ip-address fw-pip \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN
az network firewall update \
--name Test-FW01 \
--resource-group Test-FW-RG
az network public-ip show \
--name fw-pip \
--resource-group Test-FW-RG
fwprivaddr="$(az network firewall ip-config list -g Test-FW-RG -f Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"
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 routningstabell med BGP-vägspridning inaktiverad
az network route-table create \
--name Firewall-rt-table \
--resource-group Test-FW-RG \
--location eastus \
--disable-bgp-route-propagation true
Skapa vägen.
az network route-table route create \
--resource-group Test-FW-RG \
--name DG-Route \
--route-table-name Firewall-rt-table \
--address-prefix 0.0.0.0/0 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address $fwprivaddr
Associera routningstabellen till undernätet
az network vnet subnet update \
-n Workload-SN \
-g Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefixes 10.0.2.0/24 \
--route-table Firewall-rt-table
Konfigurera en programregel
Programregeln tillåter utgående åtkomst till www.google.com.
az network firewall application-rule create \
--collection-name App-Coll01 \
--firewall-name Test-FW01 \
--name Allow-Google \
--protocols Http=80 Https=443 \
--resource-group Test-FW-RG \
--target-fqdns www.google.com \
--source-addresses 10.0.2.0/24 \
--priority 200 \
--action Allow
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).
az network firewall network-rule create \
--collection-name Net-Coll01 \
--destination-addresses 209.244.0.3 209.244.0.4 \
--destination-ports 53 \
--firewall-name Test-FW01 \
--name Allow-DNS \
--protocols UDP \
--resource-group Test-FW-RG \
--priority 200 \
--source-addresses 10.0.2.0/24 \
--action Allow
testa brandväggen.
Testa nu brandväggen för att bekräfta att den fungerar som förväntat.
Observera den privata IP-adressen för den virtuella Srv-Work-datorn :
az vm list-ip-addresses \ -g Test-FW-RG \ -n Srv-Work
Anslut ett fjärrskrivbord till en virtuell Srv-Jump-dator och logga in. Därifrån öppnar du en fjärrskrivbordsanslutning till den privata IP-adressen för Srv-Work och loggar 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:
az group delete \
-n Test-FW-RG