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

Diagram över 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 eller Azure PowerShell.

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

Förutsättningar

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

  1. Observera den privata IP-adressen för den virtuella Srv-Work-datorn :

    az vm list-ip-addresses \
    -g Test-FW-RG \
    -n Srv-Work
    
  2. 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.

  3. Ö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.

  4. 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:

az group delete \
  -n Test-FW-RG

Nästa steg