Share via


Web Application Firewall inschakelen met behulp van Azure CLI

U kunt verkeer op een toepassingsgateway beperken met een WAF (Web Application Firewall). De WAF gebruikt OWASP-regels om uw toepassing te beveiligen. Deze regels omvatten bescherming tegen aanvallen als SQL-injectie, XSS-aanvallen (cross-site scripting) en sessiekapingen.

In dit artikel leert u het volgende:

  • Het netwerk instellen
  • Een toepassingsgateway maken met WAF ingeschakeld
  • Een virtuele-machineschaalset maken
  • Een opslagaccount maken en diagnostische gegevens configureren

Web Application Firewall example

U kunt deze procedure desgewenst voltooien met behulp van 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.0.4 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Een brongroep maken

Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Gebruik de opdracht az group create om een Azure-resourcegroep met de naam myResourceGroupAG te maken.

az group create --name myResourceGroupAG --location eastus

Netwerkbronnen maken

Deze virtuele netwerken en subnetten worden gebruikt om de netwerkverbinding naar de toepassingsgateway en de bijbehorende bronnen te leveren. Maak een virtueel netwerk met de naam myVNet en een subnet met de naam myAGSubnet. Maak vervolgens een openbaar IP-adres met de naam myAGPublicIPAddress.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myBackendSubnet \
  --subnet-prefix 10.0.1.0/24

az network vnet subnet create \
  --name myAGSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --address-prefix 10.0.2.0/24

az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

Een toepassingsgateway maken met een WAF-beleid

U kunt az network application-gateway create gebruiken om de toepassingsgateway myAppGateway te maken. Als u met de Azure CLI een toepassingsgateway maakt, geeft u configuratiegegevens op, zoals capaciteit, SKU en HTTP-instellingen. De toepassingsgateway wordt toegewezen aan myAGSubnet en myAGPublicIPAddress.

az network application-gateway waf-policy create \
  --name waf-pol \
  --resource-group myResourceGroupAG \
  --type OWASP \
  --version 3.2

az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --capacity 2 \
  --sku WAF_v2 \
  --http-settings-cookie-based-affinity Disabled \
  --frontend-port 80 \
  --http-settings-port 80 \
  --http-settings-protocol Http \
  --public-ip-address myAGPublicIPAddress \
  --waf-policy waf-pol \
  --priority 1

Het kan enkele minuten duren voordat de toepassingsgateway is gemaakt. Nadat de toepassingsgateway is gemaakt, kunt u de volgende nieuwe functies ervan zien:

  • appGatewayBackendPool - Een toepassingsgateway moet minimaal één back-endadresgroep hebben.
  • appGatewayBackendHttpSettings: hiermee wordt aangegeven dat voor de communicatie poort 80 en een HTTP-protocol worden gebruikt.
  • appGatewayHttpListener: de standaard-listener die aan appGatewayBackendPool is gekoppeld.
  • appGatewayFrontendIP: hiermee wordt myAGPublicIPAddress aan appGatewayHttpListener toegewezen.
  • rule1 - De standaardrouteringsregel die aan appGatewayHttpListener is gekoppeld.

Een virtuele-machineschaalset maken

In dit voorbeeld maakt u een virtuele-machineschaalset die twee servers biedt voor de back-endpool in de toepassingsgateway. De virtuele machines in de schaalset worden gekoppeld aan het subnet myBackendSubnet. U kunt az vmss create gebruiken om de schaalset te maken.

Vervang <de gebruikersnaam> en <het wachtwoord> door uw waarden voordat u dit uitvoert.

az vmss create \
  --name myvmss \
  --resource-group myResourceGroupAG \
  --image Ubuntu2204 \
  --admin-username <username> \
  --admin-password <password> \
  --instance-count 2 \
  --vnet-name myVNet \
  --subnet myBackendSubnet \
  --vm-sku Standard_DS2 \
  --upgrade-policy-mode Automatic \
  --app-gateway myAppGateway \
  --backend-pool-name appGatewayBackendPool

NGINX installeren

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroupAG \
  --vmss-name myvmss \
  --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],"commandToExecute": "./install_nginx.sh" }'

Een opslagaccount maken en diagnostische gegevens configureren

In dit artikel gebruikt de toepassingsgateway een opslagaccount voor het opslaan van gegevens voor detectie- en preventiedoeleinden. U kunt ook Azure Monitor-logboeken of Event Hub gebruiken om gegevens vast te leggen.

Een opslagaccount maken

Maak een opslagaccount met de naam myagstore1 met az storage account create.

az storage account create \
  --name myagstore1 \
  --resource-group myResourceGroupAG \
  --location eastus \
  --sku Standard_LRS \
  --encryption-services blob

Diagnostische gegevens configureren

Configureer diagnostische gegevens om gegevens vast te leggen in de logboeken ApplicationGatewayAccessLog, ApplicationGatewayPerformanceLog en ApplicationGatewayFirewallLog. Vervang <subscriptionId> door uw abonnements-id en configureer vervolgens de diagnostische gegevens met az monitor diagnostic-settings create.

appgwid=$(az network application-gateway show --name myAppGateway --resource-group myResourceGroupAG --query id -o tsv)

storeid=$(az storage account show --name myagstore1 --resource-group myResourceGroupAG --query id -o tsv)

az monitor diagnostic-settings create --name appgwdiag --resource $appgwid \
  --logs '[ { "category": "ApplicationGatewayAccessLog", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "ApplicationGatewayPerformanceLog", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "ApplicationGatewayFirewallLog", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } } ]' \
  --storage-account $storeid

De toepassingsgateway testen

Gebruik az network public-ip show om het openbare IP-adres van de toepassingsgateway op te halen. Kopieer het openbare IP-adres en plak het in de adresbalk van de browser.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Test base URL in application gateway

Resources opschonen

U kunt de resourcegroep, de toepassingsgateway en alle gerelateerde resources verwijderen als u deze niet meer nodig hebt.

az group delete --name myResourceGroupAG 

Volgende stappen

Regels voor Web Application Firewall aanpassen