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


Az Azure Web Application Firewall erőforrásnaplói

Naplókkal figyelheti Web Application Firewall erőforrásokat. Mentheti a teljesítményt, a hozzáférést és más adatokat, vagy felhasználhatja őket egy erőforrásból monitorozás céljából.

Megjegyzés

Javasoljuk, hogy az Azure-ral való interakcióhoz az Azure Az PowerShell-modult használja. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Diagnosztikai naplók

Az Azure-ban különböző típusú naplókat használhat az alkalmazásátjárók kezeléséhez és hibaelhárításához. Ezen naplók egy része a portálról érhető el. Minden napló kinyerhető az Azure Blob Storage-ból, és különböző eszközökben tekinthetők meg, például az Azure Monitor-naplókban, az Excelben és a Power BI-ban. A naplók különböző típusairól az alábbi listában tudhat meg többet:

  • Tevékenységnapló: Az Azure-tevékenységnaplók segítségével megtekintheti az Azure-előfizetésbe küldött összes műveletet és azok állapotát. A tevékenységnaplók bejegyzéseit alapértelmezés szerint gyűjti a rendszer, ezeket az Azure Portalon tekintheti meg.
  • Hozzáférési erőforrásnapló: Ezzel a naplóval megtekintheti Application Gateway hozzáférési mintákat, és elemezheti a fontos információkat. Ez magában foglalja a hívó IP-címét, a kért URL-címet, a válasz késését, a visszatérési kódot, valamint a bájtok be- és kimenő értékét. Ez a napló minden egyes kérelemhez külön rekordokat tartalmaz, és a kérést a kérést feldolgozó egyedi Application Gateway társítja. Az egyedi Application Gateway példányokat a tulajdonság instanceId azonosítója azonosíthatja.
  • Teljesítményerőforrás-napló: Ezzel a naplóval megtekintheti Application Gateway példányok teljesítményét. Ez a napló rögzíti az egyes példányok teljesítményadatait, beleértve a kiszolgált kérések teljes számát, a bájtokban megadott átviteli sebességet, a kiszolgált kérelmek teljes számát, a sikertelen kérelmek számát, valamint a háttérpéldányok kifogástalan és nem kifogástalan állapotát. A rendszer 60 másodpercenként gyűjt teljesítménynaplót. A teljesítménynapló csak a v1 termékváltozathoz érhető el. A v2 termékváltozat esetében használja a Metrikákat a teljesítményadatokhoz.
  • Tűzfalerőforrás-napló: Ezzel a naplóval megtekintheti a webalkalmazási tűzfallal konfigurált application gateway észlelési vagy megelőzési módjával naplózott kéréseket.

Megjegyzés

A naplók csak az Azure Resource Manager üzembehelyezési modellben üzembe helyezett erőforrásokhoz érhetők el. A klasszikus üzemi modell erőforrásaihoz nem használhat naplókat. A két modell jobb megismeréséhez tekintse meg a Resource Manager üzembe helyezés és a klasszikus üzembe helyezés ismertetése című cikket.

A naplók tárolásához három lehetőség közül választhat:

  • Storage-fiók: A Storage-fiókok akkor a legmegfelelőbbek a naplók tárolására, ha a naplókat hosszabb ideig tárolják, és szükség esetén áttekintik őket.
  • Eseményközpontok: Az eseményközpontok kiváló lehetőséget kínálnak az egyéb biztonsági információ- és eseménykezelési (SIEM) eszközökkel való integrációra az erőforrásokra vonatkozó riasztások lekéréséhez.
  • Azure Monitor-naplók: Az Azure Monitor-naplók az alkalmazás általános valós idejű monitorozásához vagy trendek megtekintéséhez használhatók.

Naplózás engedélyezése a PowerShell-lel

A tevékenységnaplózás automatikusan engedélyezve van minden Resource Manager-erőforráshoz. A naplókon keresztül elérhető adatok gyűjtésének megkezdéséhez engedélyeznie kell a hozzáférést és a teljesítménynaplózást. A naplózás engedélyezéséhez kövesse az alábbi lépéseket:

  1. Jegyezze fel azon Storage-fiók erőforrás-azonosítóját, ahol a naplóadatokat tárolja. Ez az érték a következő formát követi: /előfizetések/<előfizetésazonosító>/erőforráscsoportok/<erőforráscsoport neve>/szolgáltatások/Microsoft.Storage/storage-fiókok/<storage-fiók neve>. Az előfizetés bármilyen tárfiókját használhatja. Ezeket az információkat az Azure Portalon találhatja meg.

    Portál: tárfiók erőforrás-azonosítója

  2. Jegyezze fel az Application Gateway erőforrás-azonosítóját, amelyhez engedélyezve van a naplózás. Ez az érték a következő formában jelenik meg: /subscriptions/subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name>.< Ezeket az információkat a portálon találhatja meg.

    Portál: az Application Gateway erőforrás-azonosítója

  3. Engedélyezze az erőforrás-naplózást a következő PowerShell-parancsmag használatával:

    Set-AzDiagnosticSetting  -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name> -Enabled $true     
    

Tipp

A tevékenységnaplókhoz nincs szükség külön tárfiókra. A Storage hozzáférés- és teljesítménynaplózásra való használata szolgáltatási díjjal jár.

Naplózás engedélyezése az Azure Portalon

  1. A Azure Portal keresse meg az erőforrást, és válassza a Diagnosztikai beállítások lehetőséget.

    A Application Gateway esetében három napló érhető el:

    • Hozzáférési napló
    • Teljesítménynapló
    • Tűzfalnapló
  2. Válassza a Diagnosztikai beállítások megadása lehetőséget.

  3. A Diagnosztikai beállítás lapon megadhatja az erőforrásnaplók beállításait. Ebben a példában a Log Analytics tárolja a naplókat. Az erőforrásnaplók mentéséhez eseményközpontot, tárfiókot vagy partnermegoldást is használhat.

    Képernyőkép a diagnosztikai beállításokról.

  4. Írja be a beállítások nevét, erősítse meg a beállításokat, és válassza a Mentés lehetőséget.

Tevékenységnapló

Az Azure alapértelmezés szerint létrehozza a tevékenységnaplót. A naplók 90 napig megmaradnak az Azure eseménynapló-tárolójában. Ezekről a naplókról az Események és tevékenységnaplók megtekintése című cikkből tudhat meg többet.

Hozzáférési napló

A hozzáférési napló csak akkor jön létre, ha minden Application Gateway példányon engedélyezte, az előző lépésekben leírtak szerint. Az adatok a naplózás engedélyezésekor megadott tárfiókban lesznek tárolva. A Application Gateway minden hozzáférése JSON formátumban van naplózva, ahogy az a v1 esetében az alábbi példában látható:

Érték Leírás
instanceId Application Gateway kérést kézbesítő példány.
clientIP A kérés eredeti IP-címe.
clientPort A kérés eredeti portja.
httpMethod A kérés által használt HTTP-metódus.
requestUri A fogadott kérelem URI-ja.
RequestQuery Kiszolgáló által átirányított: A kérést küldő háttérkészletpéldány.
X-AzureApplicationGateway-LOG-ID: A kéréshez használt korrelációs azonosító. A háttérkiszolgálók forgalmi problémáinak elhárítására használható.
SERVER-STATUS: A háttérrendszerből Application Gateway HTTP-válaszkód.
Useragent Felhasználói ügynök a HTTP-kérelem fejlécéből.
httpStatus HTTP-állapotkód visszaadva az ügyfélnek Application Gateway.
httpVersion A kérés HTTP-verziója.
receivedBytes A fogadott csomag mérete bájtban.
sentBytes Az elküldött csomag mérete bájtban.
timeTaken A kérés feldolgozásához és a válasz elküldéséhez szükséges idő (ezredmásodpercben). Ezt a függvény attól az időponttól számítja ki, amikor Application Gateway megkapja egy HTTP-kérés első bájtját, és a válaszküldési művelet befejeződésének időpontjáig. Fontos megjegyezni, hogy a Time-Taken mező általában azt az időt tartalmazza, amikor a kérés- és válaszcsomagok a hálózaton keresztül haladnak.
sslEnabled Azt jelzi, hogy a háttérkészletekkel folytatott kommunikáció TLS/SSL protokollt használt-e. Az érvényes értékek be- és ki vannak kapcsolva.
gazda Az a gazdagépnév, amellyel a kérést a háttérkiszolgálóra küldték. Ha a háttérbeli gazdagépnév felül van bírálva, ez a név ezt fogja tükrözni.
originalHost Az a gazdagépnév, amellyel a kérést a Application Gateway megkapta az ügyféltől.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayAccess",
    "timestamp": "2017-04-26T19:27:38Z",
    "category": "ApplicationGatewayAccessLog",
    "properties": {
        "instanceId": "ApplicationGatewayRole_IN_0",
        "clientIP": "191.96.249.97",
        "clientPort": 46886,
        "httpMethod": "GET",
        "requestUri": "/phpmyadmin/scripts/setup.php",
        "requestQuery": "X-AzureApplicationGateway-CACHE-HIT=0&SERVER-ROUTED=10.4.0.4&X-AzureApplicationGateway-LOG-ID=874f1f0f-6807-41c9-b7bc-f3cfa74aa0b1&SERVER-STATUS=404",
        "userAgent": "-",
        "httpStatus": 404,
        "httpVersion": "HTTP/1.0",
        "receivedBytes": 65,
        "sentBytes": 553,
        "timeTaken": 205,
        "sslEnabled": "off",
        "host": "www.contoso.com",
        "originalHost": "www.contoso.com"
    }
}

A Application Gateway és a WAF v2 esetében a naplók egy kicsit több információt tartalmaznak:

Érték Leírás
instanceId Application Gateway példány, amely kiszolgálta a kérést.
clientIP A kérés eredeti IP-címe.
clientPort A kérés eredeti portja.
httpMethod A kérelem által használt HTTP-metódus.
requestUri A kapott kérelem URI-ja.
Useragent Felhasználói ügynök a HTTP-kérelem fejlécéből.
httpStatus HTTP-állapotkód Application Gateway az ügyfélnek.
httpVersion A kérés HTTP-verziója.
receivedBytes A fogadott csomag mérete bájtban.
sentBytes Az elküldött csomag mérete bájtban.
timeTaken A kérés feldolgozásához és a válasz elküldéséhez szükséges időtartam (ezredmásodpercben). Ez attól az időtartamtól számítható ki, amikor Application Gateway megkapja egy HTTP-kérés első bájtját a válaszküldési művelet befejezésének időpontjáig. Fontos megjegyezni, hogy a Time-Taken mező általában azt az időt tartalmazza, amikor a kérés- és válaszcsomagok a hálózaton keresztül haladnak.
sslEnabled Azt jelzi, hogy a háttérkészletekkel folytatott kommunikáció TLS-t használt-e. Az érvényes értékek be- és ki vannak kapcsolva.
sslCipher Titkosítási csomag használata TLS-kommunikációhoz (ha a TLS engedélyezve van).
sslProtocol TLS protokoll használata (ha a TLS engedélyezve van).
serverRouted Az a háttérkiszolgáló, amelybe az Application Gateway átirányítja a kérést.
serverStatus A háttérkiszolgáló HTTP-állapotkódja.
serverResponseLatency A háttérkiszolgáló válaszának késése.
gazda A kérelem gazdagépfejlécében felsorolt cím.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayAccess",
    "time": "2017-04-26T19:27:38Z",
    "category": "ApplicationGatewayAccessLog",
    "properties": {
        "instanceId": "appgw_1",
        "clientIP": "191.96.249.97",
        "clientPort": 46886,
        "httpMethod": "GET",
        "requestUri": "/phpmyadmin/scripts/setup.php",
        "userAgent": "-",
        "httpStatus": 404,
        "httpVersion": "HTTP/1.0",
        "receivedBytes": 65,
        "sentBytes": 553,
        "timeTaken": 205,
        "sslEnabled": "off",
        "sslCipher": "",
        "sslProtocol": "",
        "serverRouted": "104.41.114.59:80",
        "serverStatus": "200",
        "serverResponseLatency": "0.023",
        "host": "www.contoso.com",
    }
}

Teljesítménynapló

A teljesítménynapló csak akkor jön létre, ha engedélyezte azt az egyes Application Gateway példányokon, az előző lépésekben leírtak szerint. Az adatokat a naplózás engedélyezésekor megadott tárfiók tárolja. A teljesítménynapló adatai 1 perces időközönként jönnek létre. Csak az 1-s verziós termékváltozathoz érhető el. A v2 termékváltozathoz használja a Metrikákat a teljesítményadatokhoz. A rendszer a következő adatokat naplózza:

Érték Leírás
instanceId Application Gateway példány, amelyhez teljesítményadatok jönnek létre. Többpéldányos application gateway esetén példányonként egy sor van.
healthyHostCount A háttérkészlet kifogástalan állapotú gazdagépeinek száma.
unHealthyHostCount A háttérkészlet nem megfelelő állapotú gazdagépeinek száma.
requestCount A kézbesített kérések száma.
késés A példánytól a kéréseket kiszolgáló háttérrendszerig érkező kérések átlagos késése (ezredmásodpercben).
failedRequestCount Sikertelen kérések száma.
korlátozások Az utolsó napló óta eltelt átlagos átviteli sebesség másodpercenként bájtban mérve.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayPerformance",
    "time": "2016-04-09T00:00:00Z",
    "category": "ApplicationGatewayPerformanceLog",
    "properties":
    {
        "instanceId":"ApplicationGatewayRole_IN_1",
        "healthyHostCount":"4",
        "unHealthyHostCount":"0",
        "requestCount":"185",
        "latency":"0",
        "failedRequestCount":"0",
        "throughput":"119427"
    }
}

Megjegyzés

A késés attól az időponttól számítható ki, amikor a HTTP-kérés első bájtja a HTTP-válasz utolsó bájtjának elküldésének időpontjáig érkezik. Ez a Application Gateway feldolgozási idő és a háttérrendszer hálózati költségeinek összege, valamint a kérés feldolgozásához szükséges idő.

Tűzfalnapló

A tűzfalnapló csak akkor jön létre, ha engedélyezte azt az egyes application gatewayekhez, az előző lépésekben leírtak szerint. Ez a napló azt is megköveteli, hogy a webalkalmazás tűzfala egy application gatewayen legyen konfigurálva. Az adatok a naplózás engedélyezésekor megadott célhelyen lesznek tárolva. A rendszer a következő adatokat naplózza:

Érték Leírás
instanceId Application Gateway példány, amelyhez tűzfaladatok jönnek létre. Többpéldányos application gateway esetén példányonként egy sor van.
clientIp A kérés eredeti IP-címe.
clientPort A kérés eredeti portja.
requestUri A kapott kérelem URL-címe.
ruleSetType Szabálykészlet típusa. A rendelkezésre álló érték az OWASP.
ruleSetVersion Szabálykészlet használt verziója. A rendelkezésre álló értékek a 2.2.9 és a 3.0.
ruleId Az eseményindító esemény szabályazonosítója.
message Felhasználóbarát üzenet az eseményindító eseményhez. További részleteket a részletek szakaszban talál.
action Házirend mód:Észlelés észlelve – Észlelési
- módban ez az egyetlen művelet a WAF esetében. A rendszer megfelelt egy adott szabály összes feltételének, és a kérést naplózták, majd átadták a háttérrendszernek.

Házirend mód: Megelőzés
- engedélyezve – Minden feltétel megfelelt egy adott szabálynak, és a kérés át lett adva a háttérrendszernek.
- Letiltva – Az összes feltétel megfelelt egy adott szabálynak, és a kérés le lett tiltva.
- Megfeleltetve – Egy vagy több feltétel megfelelt egy adott szabálynak, de a kérelem letiltására vagy átadására vonatkozó döntéshez további értékelésre van szükség, és a végső anomáliadetektálási szabály alapján lesz kiértékelve.
hely Az a webhely, amelyhez a naplót létrehozták. Jelenleg csak a Globális lista jelenik meg, mert a szabályok globálisak.
részletek Az eseményindító esemény részletei.
details.message A szabály leírása.
details.data A kérelemben található, a szabálynak megfelelő adatok.
details.file A szabályt tartalmazó konfigurációs fájl.
details.line Az eseményt kiváltó konfigurációs fájlban lévő sor száma.
gazdaeszköznév A Application Gateway állomásneve vagy IP-címe.
transactionId Egy adott tranzakció egyedi azonosítója, amely segít több szabálysértés csoportosításában, amelyek ugyanabban a kérelemben történtek.
policyId A Application Gateway, figyelőhöz vagy elérési úthoz társított tűzfalszabályzat egyedi azonosítója.
policyScope A szabályzat helye – az értékek lehetnek "Globális", "Figyelő" vagy "Hely".
policyScopeName Annak az objektumnak a neve, amelyre a szabályzat vonatkozik.
{
  "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
  "operationName": "ApplicationGatewayFirewall",
  "time": "2017-03-20T15:52:09.1494499Z",
  "category": "ApplicationGatewayFirewallLog",
  "properties": {
      "instanceId": "ApplicationGatewayRole_IN_0",
      "clientIp": "52.161.109.147",
      "clientPort": "0",
      "requestUri": "/",
      "ruleSetType": "OWASP",
      "ruleSetVersion": "3.0",
      "ruleId": "920350",
      "ruleGroup": "920-PROTOCOL-ENFORCEMENT",
      "message": "Host header is a numeric IP address",
      "action": "Matched",
      "site": "Global",
      "details": {
        "message": "Warning. Pattern match \"^[\\\\d.:]+$\" at REQUEST_HEADERS:Host ....",
        "data": "127.0.0.1",
        "file": "rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
        "line": "791"
      },
      "hostname": "127.0.0.1",
      "transactionId": "16861477007022634343",
      "policyId": "/subscriptions/1496a758-b2ff-43ef-b738-8e9eb5161a86/resourceGroups/drewRG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/perListener",
      "policyScope": "Listener",
      "policyScopeName": "httpListener1"
    }
  }
}

A tevékenységnapló megtekintése és elemzése

A tevékenységnaplók adatainak megtekintéséhez és elemzéséhez használja az alábbi módszerek bármelyikét:

  • Azure-eszközök: Információkat kérhet le a tevékenységnaplóból az Azure PowerShell-lel, az Azure CLI-vel, az Azure REST API-val vagy az Azure Portallal. Az egyes módszerek részletes útmutatóit a Resource Managerrel végzett tevékenységművelet című cikkben találja.
  • Power BI: Ha még nem rendelkezik Power BI-fiókkal, ingyenesen kipróbálhatja. A Power BI-sablonalkalmazások használatával elemezheti az adatokat.

A hozzáférési, teljesítmény- és tűzfalnaplók megtekintése és elemzése

Az Azure Monitor-naplók összegyűjthetik a számláló- és eseménynaplófájlokat a Blob Storage-fiókból. A Log Analytics vizualizációkat és hatékony keresési lehetőségeket is tartalmaz a naplók elemzéséhez.

A Storage-fiókjához is csatlakozhat, és lekérheti a hozzáférés- és teljesítménynaplók JSON-naplóbejegyzéseit. A letöltött JSON-fájlokat átalakíthatja CSV-fájlokká, és ezeket megtekintheti az Excelben, Power BI-ban vagy bármely más adatvizualizációs eszközben.

Tipp

Ha ismeri a Visual Studiót, illetve C#-állandók és -változók módosításának alapfogalmait, használja a GitHubról elérhető naplókonvertáló eszközöket.

Hozzáférési naplók elemzése a GoAccess használatával

Közzétettünk egy Resource Manager sablont, amely telepíti és futtatja a népszerű GoAccess-naplóelemzőt Application Gateway Access-naplókhoz. A GoAccess értékes HTTP-forgalomstatisztikákat biztosít, például egyedi látogatókat, kért fájlokat, gazdagépeket, operációs rendszereket, böngészőket, HTTP-állapotkódokat és egyebeket. További részletekért tekintse meg a GitHub Resource Manager sablonmappájának Readme fájlját.

Következő lépések