Povolení firewallu webových aplikací pomocí Azure CLI

Provoz ve službě Application Gateway můžete omezit pomocí firewallu webových aplikací (WAF). WAF používá k ochraně aplikace pravidla OWASP. Tato pravidla zahrnují ochranu před útoky, jako je injektáž SQL, skriptování mezi weby a krádeže relací.

V tomto článku získáte informace o těchto tématech:

  • Nastavit síť
  • Vytvořit aplikační bránu se zapnutým Firewallem webových aplikací
  • Vytvoření škálovací sady virtuálních počítačů
  • Vytvořit účet úložiště a nakonfigurovat diagnostiku

Web Application Firewall example

Pokud chcete, můžete tento postup dokončit pomocí Azure PowerShellu.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Předpoklady

  • Tento článek vyžaduje verzi 2.0.4 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

Vytvoření skupiny zdrojů

Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. K vytvoření skupiny prostředků Azure pojmenované myResourceGroupAG použijte příkaz az group create.

az group create --name myResourceGroupAG --location eastus

Vytvoření síťových prostředků

Virtuální síť a podsítě umožňují síťové připojení k aplikační bráně a přidruženým prostředkům. Vytvořte virtuální síť s názvem myVNet a podsíť s názvem myAGSubnet. pak vytvořte veřejnou IP adresu s názvem 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

Vytvoření aplikační brány pomocí zásad WAF

K vytvoření aplikační brány s názvem myAppGateway použijte příkaz az network application-gateway create. Při vytváření aplikační brány pomocí Azure CLI zadáte konfigurační údaje, jako je kapacita, skladová položka nebo nastavení HTTP. Aplikační brána je přiřazená k podsítě myAGSubnet a 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

Vytvoření aplikační brány může trvat několik minut. Po vytvoření aplikační brány se zobrazí tyto její nové funkce:

  • appGatewayBackendPool – aplikační brána musí mít aspoň jeden back-endový fond adres.
  • appGatewayBackendHttpSettings – určuje, že se ke komunikaci používá port 80 a protokol HTTP.
  • appGatewayHttpListener – výchozí naslouchací proces přidružený k appGatewayBackendPool.
  • appGatewayFrontendIP – přiřadí adresu myAGPublicIPAddress naslouchacímu procesu appGatewayHttpListener.
  • rule1 – výchozí pravidlo směrování přidružené k naslouchacímu procesu appGatewayHttpListener.

Vytvoření škálovací sady virtuálních počítačů

V tomto příkladu vytvoříte škálovací sadu virtuálních počítačů, která v aplikační bráně poskytuje dva servery back-endového fondu. Virtuální počítače jsou ve škálovací sadě přidruženy k podsíti myBackendSubnet. K vytvoření škálovací sady použijte příkaz az vmss create.

Před spuštěním tohoto příkazu nahraďte <uživatelské jméno> a <heslo> hodnotami.

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

Instalace serveru NGINX

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" }'

Vytvořit účet úložiště a nakonfigurovat diagnostiku

V tomto článku služba Application Gateway používá účet úložiště k ukládání dat pro účely detekce a prevence. K zaznamenání dat můžete použít také protokoly služby Azure Monitor nebo centrum událostí.

Vytvoření účtu úložiště

K vytvoření účtu úložiště s názvem myagstore1 použijte příkaz az storage account create.

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

Konfigurace diagnostiky

Nakonfigurujte diagnostiku, aby se data zaznamenávala do protokolů ApplicationGatewayAccessLog, ApplicationGatewayPerformanceLog a ApplicationGatewayFirewallLog. Nahraďte <subscriptionId> identifikátorem předplatného a nakonfigurujte diagnostiku pomocí příkazu 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

Otestování aplikační brány

K získání veřejné IP adresy aplikační brány použijte příkaz az network public-ip show. Zkopírujte veřejnou IP adresu a pak ji vložte do adresního řádku svého prohlížeče.

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

Test base URL in application gateway

Vyčištění prostředků

Až nebudete skupinu prostředků, aplikační bránu a další související prostředky potřebovat, odeberte je.

az group delete --name myResourceGroupAG 

Další kroky

Přizpůsobení pravidel firewallu webových aplikací