← Cloudflare Network Firewall / cloudflare-network-firewall / tutorials
GraphQL Analytics
Pomocí GraphQL Analytics API zkontrolujte data o síťovém provozu Cloudflare Network Firewall (dříve Magic Firewall) souvisejícím s pravidly, která odpovídají vašemu provozu. Patří sem jak pravidla, která jste nakonfigurovali na dashboardu Network Firewall, tak pravidla spravovaná Cloudflare jako součást Spravovaná pravidla Network Firewall a Network Firewall IDS funkce.
Než začnete, musíte mít API token. Další nápovědu k začátkům práce s GraphQL Analytics najdete v GraphQL Analytics API.
Získat ID účtu Cloudflare
Chcete-li sestavit GraphQL dotaz Network Firewall pro objekt, budete potřebovat Cloudflare Account ID
Získejte ID účtu Cloudflare
- Přihlaste se do Cloudflare dashboard ↗, a vyberte svůj účet.
- Adresa URL v panelu adresy prohlížeče by měla zobrazovat
https://dash.cloudflare.com/následovaný hexadecimálním řetězcem. Tento hexadecimální řetězec je vaše Cloudflare Account ID.
Získat ID pravidla brány firewall
Chcete-li sestavit dotazy pro shromažďování analytických dat pro konkrétní pravidlo, potřebujete ID pravidla pro každé pravidlo firewallu.
- V dashboardu Cloudflare přejděte na Zásady brány firewall ↗ stránce.
- V Vlastní zásady kartě v seznamu najděte pravidlo, jehož ID potřebujete, a vyberte tři tečky > Úprava.
- Najděte ID a vyberte tlačítko kopírovat.
- Vyberte Zrušit a vrátit se na Zásady brány firewall stránce.
Prozkoumejte schéma GraphQL na příkladu dotazu Cloudflare Network Firewall
V této části spustíte testovací dotaz, který načte pětiminutový počet všech nakonfigurovaných pravidel Network Firewall v pětiminutových intervalech. Kód níže můžete zkopírovat a vložit do GraphiQL.
Další informace o schématu Analytics najdete v Prozkoumejte schéma Analytics pomocí GraphiQL.
query MagicFirewallExample($accountTag: string!, $start: Time, $end: Time) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
magicFirewallSamplesAdaptiveGroups(
filter: { datetime_geq: $start, datetime_leq: $end }
limit: 2
orderBy: [datetimeFiveMinute_DESC]
) {
sum {
bits
packets
}
dimensions {
datetimeFiveMinute
ruleId
}
}
}
}
}Příklady dotazů pro Cloudflare Network Firewall
Získat statistiku pro konkrétní pravidlo
Pomocí níže uvedeného příkladu zobrazte celkový počet paketů a bitů pro deset nejpodezřelejších škodlivých datových toků za poslední hodinu. Po obdržení výsledků je můžete seřadit podle rychlosti paketů s pětiminutovým průměrem.
U každého streamu zobrazte:
- Zdrojové a cílové IP adresy
- Ingress datacentra Cloudflare, která ho přijala
- Celkový objem provozu v bitech a paketech přijatých během dané hodiny
- Akce provedené pravidlem firewallu
query MagicFirewallObtainRules(
$accountId: string!
$ruleId: string
$start: Time
$end: Time
) {
viewer {
accounts(filter: { accountTag: $accountId }) {
magicFirewallNetworkAnalyticsAdaptiveGroups(
filter: { ruleId: $ruleId, datetime_geq: $start, datetime_leq: $end }
limit: 10
orderBy: [avg_packetRateFiveMinutes_DESC]
) {
sum {
bits
packets
}
dimensions {
coloCity
ipDestinationAddress
ipSourceAddress
outcome
}
}
}
}
}Získat statistiku IDS
Pomocí níže uvedeného příkladu zobrazte celkový počet paketů a bitů pro 10 největších datových toků, které Network Firewall IDS zaznamenal za poslední hodinu.
Nastavením verdict na drop a outcome jako pass, filtrujeme provoz, který byl označen jako detekce (tedy verdikt byl drop), ale nebyl zahozen (například výsledek byl pass). Je to proto, že Network Firewall IDS v současnosti pouze detekuje škodlivý provoz, ale provoz nezahazuje.
U každého streamu zobrazte:
- Zdrojové a cílové IP adresy.
- Ingress datacentra Cloudflare, která ho přijala.
- Celkový objem provozu v bitech a paketech přijatých během dané hodiny.
query MagicFirewallObtainIDS($accountTag: string!, $start: Time, $end: Time) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
magicIDPSNetworkAnalyticsAdaptiveGroups(
filter: {
datetime_geq: $start
datetime_leq: $end
verdict: drop
outcome: pass
}
limit: 10
orderBy: [avg_packetRateFiveMinutes_DESC]
) {
sum {
bits
packets
}
dimensions {
coloCity
ipDestinationAddress
ipSourceAddress
}
}
}
}
}Případně lze pro kontrolu veškerého analyzovaného provozu, rozděleného na škodlivý provoz a ostatní provoz, použít níže uvedený příklad. Odpověď bude obsahovat dva záznamy pro každou pětiminutovou časovou značku. verdict bude nastaveno na drop na škodlivý provoz a verdict bude nastaveno na pass pro provoz, který neodpovídal žádnému z pravidel IDS.
query MagicFirewallTraffic($accountTag: string!, $start: Time, $end: Time) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
magicIDPSNetworkAnalyticsAdaptiveGroups(
filter: { datetime_geq: $start, datetime_leq: $end }
limit: 10
orderBy: [avg_packetRateFiveMinutes_DESC]
) {
sum {
bits
packets
}
dimensions {
coloCity
ipDestinationAddress
ipSourceAddress
verdict
}
}
}
}
}