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.
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
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- 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.
Noteer het privé-IP-adres voor de virtuele Srv-Work-machine :
az vm list-ip-addresses \ -g Test-FW-RG \ -n Srv-Work
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.
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.
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 dewww.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