Megosztás a következőn keresztül:


Webalkalmazási tűzfal engedélyezése az Azure CLI használatával

Az alkalmazásátjárók forgalmát webalkalmazási tűzfallal (WAF) korlátozhatja. A WAF OWASP-szabályokkal védi az alkalmazást. Ezek a szabályok olyan támadások ellen nyújtanak védelmet, mint az SQL-injektálás, a Cross-Site Scripting támadások és a munkamenet-eltérítések.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • A hálózat beállítása
  • Alkalmazásátjáró létrehozása engedélyezett WAF-fel
  • Virtuálisgép-méretezési csoport létrehozása
  • Tárfiók létrehozása és diagnosztika konfigurálása

A webalkalmazási tűzfal példájának diagramja.

Tetszés szerint az Azure PowerShell használatával végezheti el ezt az eljárást.

Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.

Előfeltételek

  • Ez a cikk az Azure CLI 2.0.4-es vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Erőforráscsoport létrehozása

Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Hozzon létre egy myResourceGroupAG nevű Azure-erőforráscsoportot az az group create paranccsal.

az group create --name myResourceGroupAG --location eastus

Hálózati erőforrások létrehozása

A virtuális hálózat és annak alhálózatai biztosítják az alkalmazásátjáró és az ahhoz tartozó erőforrások hálózati kapcsolatát. Hozzon létre egy myVNet nevű virtuális hálózatot és egy myAGSubnet nevű alhálózatot. ezután hozzon létre egy myAGPublicIPAddress nevű nyilvános IP-címet.

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

Application Gateway létrehozása WAF-szabályzattal

Az az network application-gateway create paranccsal létrehozhatja a myAppGateway nevű alkalmazásátjárót. Amikor az Azure CLI-vel hoz létre egy Application Gatewayt, meg kell adnia bizonyos konfigurációs adatokat, például a kapacitást, az SKU-t, valamint a HTTP-beállításokat. Az application gateway a myAGSubnethez és a myAGPublicIPAddresshez van rendelve.

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

Az alkalmazásátjáró létrehozása néhány percig is eltarthat. Az alkalmazásátjáró létrehozása után a következő új funkcióit láthatja:

  • appGatewayBackendPool – Az Application Gatewayeknek legalább egy háttércímkészlettel kell rendelkezniük.
  • appGatewayBackendHttpSettings – Meghatározza, hogy a kommunikációhoz a rendszer a 80-as portot és egy HTTP-protokollt használ.
  • appGatewayHttpListener – Az appGatewayBackendPool készlethez társított alapértelmezett figyelő.
  • appGatewayFrontendIP – Hozzárendeli a myAGPublicIPAddress IP-címet az appGatewayHttpListener figyelőhöz.
  • rule1 – Az appGatewayHttpListener figyelőhöz rendelt alapértelmezett útválasztási szabály.

Virtuálisgép-méretezési csoport létrehozása

Ebben a példában egy olyan virtuálisgép-méretezési csoportot hoz létre, amely két kiszolgálót biztosít a háttérkészlet számára az alkalmazásátjáróban. A méretezési csoportban lévő virtuális gépek a myBackendSubnet alhálózathoz vannak rendelve. A méretezési csoportot az az vmss create paranccsal hozhatja létre.

A futtatás előtt cserélje le <a felhasználónevet> és <a jelszót> az értékekre.

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

Az NGINX telepítése

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

Tárfiók létrehozása és diagnosztika konfigurálása

Ebben a cikkben az Application Gateway egy tárfiókkal tárolja az adatokat észlelési és megelőzési célokra. Az adatok rögzítéséhez az Azure Monitor-naplókat vagy az Event Hubot is használhatja.

Tárfiók létrehozása

Hozzon létre egy myagstore1 nevű tárfiókot az az storage account create paranccsal.

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

Diagnosztika konfigurálása

Konfigurálja a diagnosztikát az adatok az ApplicationGatewayAccessLog, az ApplicationGatewayPerformanceLog és az ApplicationGatewayFirewallLog naplóba rögzítéséhez. Cserélje le <subscriptionId> az előfizetés azonosítóját, majd konfigurálja a diagnosztikát az az monitor diagnosztikai beállítások létrehozásával.

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

Az alkalmazásátjáró tesztelése

Az alkalmazásátjáró nyilvános IP-címének lekéréséhez használja az az network public-ip show parancsot. Másolja a nyilvános IP-címet, majd illessze be a böngésző címsorába.

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

Az alap URL-cím tesztelése az alkalmazásátjáróban

Az erőforrások eltávolítása

Ha már nincs rá szükség, távolítsa el az erőforráscsoportot, az alkalmazásátjárót és az összes kapcsolódó erőforrást.

az group delete --name myResourceGroupAG 

Következő lépések

Webalkalmazási tűzfalszabályok testreszabása