Share via


Azure Firewall implementeren en configureren met behulp van Azure CLI

Het beheren van toegang tot uitgaande netwerken is een belangrijk onderdeel van een algemeen netwerkbeveiligingsabonnement. U kunt bijvoorbeeld de toegang tot websites beperken. U kunt ook de toegang tot uitgaande IP-adressen en poorten beperken.

Een van de manieren waarop u de toegang tot uitgaande netwerken kunt beheren vanaf een Azure-subnet is met Azure Firewall. Met Azure Firewall kunt u het volgende configureren:

  • Toepassingsregels die volledig gekwalificeerde domeinnamen (FQDN's) definiëren waartoe toegang kan worden verkregen via een subnet. De FQDN kan ook SQL-exemplaren bevatten.
  • Netwerkregels die een bronadres, protocol, doelpoort en doeladres definiëren.

Netwerkverkeer is onderhevig aan de geconfigureerde firewallregels wanneer u het routeert naar de firewall als standaardgateway van het subnet.

Voor dit artikel maakt u een vereenvoudigd VNet met drie subnetten voor eenvoudige implementatie. Voor productie-implementaties wordt een hub-en-spoke-model aanbevolen. De firewall bevindt zich in een eigen VNet. De werkbelastingservers bevinden zich in gepeerde VNets in dezelfde regio met een of meer subnetten.

  • AzureFirewallSubnet – De firewall bevindt zich in dit subnet.
  • Workload-SN – De workloadserver bevindt zich in dit subnet. Het netwerkverkeer van dit subnet gaat via de firewall.
  • Jump-SN – De "jumpserver" bevindt zich in dit subnet. De jumpserver heeft een openbaar IP-adres waarmee u verbinding kunt maken via een extern bureaublad. Van daaruit kunt u vervolgens (via een ander extern bureaublad) verbinding maken met de workloadserver.

Diagram van de netwerkinfrastructuur.

In dit artikel leert u het volgende:

  • Een testnetwerkomgeving instellen
  • Een firewall implementeren
  • Een standaardroute maken
  • Een toepassingsregel configureren om toegang tot www.google.com toe te staan
  • Een netwerkregel configureren om toegang tot externe DNS-servers toe te staan
  • De firewall testen

Als u wilt, kunt u deze procedure voltooien met behulp van Azure Portal of Azure PowerShell.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

  • Voor dit artikel is versie 2.55.0 of hoger van de Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Het netwerk instellen

Maak eerst een resourcegroep met de resources die nodig zijn om de firewall te implementeren. Maak vervolgens een VNet, subnetten en testservers.

Een brongroep maken

De resourcegroep bevat alle resources voor de implementatie.

az group create --name Test-FW-RG --location eastus

Een VNet maken

Dit virtuele netwerk heeft drie subnetten.

Notitie

De grootte van het subnet AzureFirewallSubnet is /26. Zie Veelgestelde vragen over Azure Firewall voor meer informatie over de grootte van het subnet.

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

Virtuele machines maken

Maak nu de virtuele jump- en workloadmachines en plaats ze in de toepasselijke subnetten. Wanneer u hierom wordt gevraagd, typt u een wachtwoord voor de virtuele machine.

Maak de virtuele Srv-Jump-machine.

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

Maak een NIC voor Srv-Work met specifieke IP-adressen van DE DNS-server en geen openbaar IP-adres om mee te testen.

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

Maak nu de virtuele workloadmachine. Wanneer u hierom wordt gevraagd, typt u een wachtwoord voor de virtuele machine.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Work \
    --location eastus \
    --image win2016datacenter \
    --nics Srv-Work-NIC \
    --admin-username azureadmin

Notitie

Azure biedt een standaard ip-adres voor uitgaande toegang voor VM's waaraan geen openbaar IP-adres is toegewezen of zich in de back-endpool van een interne Azure-load balancer bevinden. Het standaard ip-mechanisme voor uitgaande toegang biedt een uitgaand IP-adres dat niet kan worden geconfigureerd.

Het standaard IP-adres voor uitgaande toegang is uitgeschakeld wanneer een van de volgende gebeurtenissen plaatsvindt:

  • Er wordt een openbaar IP-adres toegewezen aan de VIRTUELE machine.
  • De VIRTUELE machine wordt in de back-endpool van een standaard load balancer geplaatst, met of zonder uitgaande regels.
  • Er wordt een Azure NAT Gateway-resource toegewezen aan het subnet van de VIRTUELE machine.

Virtuele machines die u maakt met behulp van virtuele-machineschaalsets in de flexibele indelingsmodus, hebben geen standaardtoegang voor uitgaand verkeer.

Zie Voor meer informatie over uitgaande verbindingen in Azure standaard uitgaande toegang in Azure en SNAT (Source Network Address Translation) gebruiken voor uitgaande verbindingen.

De firewall implementeren

Implementeer nu de firewall in het virtuele netwerk.

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

Noteer het privé-IP-adres. U zult het later gebruiken wanneer u de standaardroute maakt.

Een standaardroute maken

Een routetabel maken, waarbij BGP-routedoorgifte is uitgeschakeld

az network route-table create \
    --name Firewall-rt-table \
    --resource-group Test-FW-RG \
    --location eastus \
    --disable-bgp-route-propagation true

Maak de route.

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

De routetabel koppelen aan het subnet

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

Een toepassingsregel configureren

Met de toepassingsregel is uitgaande toegang tot www.google.com toegestaan.

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 bevat een ingebouwde regelverzameling voor infrastructuur-FQDN’s die standaard zijn toegestaan. Deze FQDN’s zijn specifiek voor het platform en kunnen niet voor andere doeleinden worden gebruikt. Zie FQDN's voor infrastructuur voor meer informatie.

Een netwerkregel configureren

De netwerkregel staat uitgaande toegang toe tot twee IP-adressen op poort 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

De firewall testen

Test nu de firewall om te controleren of deze werkt zoals verwacht.

  1. Noteer het privé-IP-adres voor de virtuele Srv-Work-machine :

    az vm list-ip-addresses \
    -g Test-FW-RG \
    -n Srv-Work
    
  2. Verbind een extern bureaublad met de virtuele machine Srv-Jump en meld u aan. Open daar een externe bureaubladverbinding met het privé-IP-adres van Srv-Work en meld u aan.

  3. Open in SRV-Work een PowerShell-venster en voer de volgende opdrachten uit:

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

    Beide opdrachten moeten antwoorden retourneren, zodat u kunt zien dat uw DNS-query's via de firewall worden uitgevoerd.

  4. Voer de volgende opdrachten uit:

    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
    

    De www.google.com aanvragen moeten slagen en de www.microsoft.com aanvragen moeten mislukken. Dit laat zien dat uw firewallregels werken zoals verwacht.

Nu u hebt geverifieerd dat de firewallregels werken:

  • Kunt u DNS-namen omzetten met behulp van de geconfigureerde externe DNS-server.
  • Kunt u bladeren naar de enige toegestane FQDN, maar niet naar andere.

Resources opschonen

U kunt uw firewallresources behouden voor de volgende zelfstudie, of als u deze niet meer nodig hebt, verwijdert u de resourcegroep Test-FW-RG om alle firewallgerelateerde resources te verwijderen:

az group delete \
  -n Test-FW-RG

Volgende stappen