INTEGRITY Dokumentace

Povolení Splunk

HTTP Event Collector (HEC) ↗ je spolehlivá metoda pro příjem dat ze Splunk Enterprise nebo Splunk Cloud Platform. Cloudflare Logpush podporuje odesílání protokolů přímo do Splunk HEC prostřednictvím dashboardu Cloudflare nebo přes API.

Správa přes dashboard Cloudflare

  1. V dashboardu Cloudflare přejděte na Logpush stránku na úrovni účtu nebo domény (známé také jako zóna).

    Pro účet: Přejděte na Logpush ↗

    Pro doménu (známou také jako zóna): Přejděte na Logpush ↗

  2. Podle vaší volby máte přístup k datové sady v rozsahu účtu a datové sady s rozsahem zóny, v uvedeném pořadí.

  3. Vyberte Vytvoření úlohy Logpush.

  1. V Vyberte cíl, vyberte Splunk.

  2. Zadejte nebo vyberte následující informace o cíli:

    • Splunk HEC URL
    • ID kanálu - Jde o náhodné GUID, které můžete vygenerovat pomocí guidgenerator.com ↗.
    • Auth Token - Token Event Collector s předponou ve tvaru slova Splunk. Například: Splunk 1234EXAMPLEKEY.
    • Typ zdroje - Například cloudflare:json. Pokud používáte Cloudflare App for Splunk ↗, nahlédněte do odpovídajícího typu zdroje pro příslušné datasety v Podrobnosti sekce. Například u protokolů požadavků Zero Trust Access je typ zdroje cloudflare:access.
    • Použití možnosti insecure skip verify (nedoporučuje se).

Jakmile zadáte podrobnosti cíle, vyberte Pokračovat.

  1. Vyberte datovou sadu, kterou chcete odesílat do úložné služby.

  2. V dalším kroku musíte nakonfigurovat úlohu Logpush:

    • Zadejte Název úlohy.
    • V části Pokud se protokoly shodují, můžete vybrat, které události chcete do protokolů zahrnout nebo z nich odstranit. Více informací najdete v Filtry s dalšími informacemi. Tato možnost není dostupná u všech datových sad.
    • V Odešlete následující pole, můžete se rozhodnout, zda chcete do cílového úložiště odesílat všechny protokoly, nebo si vybrat, které protokoly chcete odesílat.
  3. V Advanced Options, můžete:

    • Zvolte formát polí s časovým razítkem ve svých protokolech (RFC3339 (výchozí), Unix, nebo UnixNano).
    • Vyberte míra vzorkování pro vaše protokoly, nebo odesílejte náhodně vzorkované procento protokolů.
    • Povolte maskování pro CVE-2021-44228. Tato možnost nahradí každý výskyt ${ hodnotou x{.
  4. Vyberte Odeslat jakmile dokončíte konfiguraci úlohy Logpush.

Správa přes API

Chcete-li nastavit úlohu Logpush pro Splunk:

  1. Vytvořte úlohu s příslušnou URL adresou koncového bodu a autentizačními parametry.
  2. Povolte úlohu, aby mohla začít odesílat protokoly.

Zajistěte, že Log Share oprávnění povolena, než se pokusíte přečíst nebo nakonfigurovat úlohu Logpush. Další informace najdete na Sekce Role.

1. Vytvořte úlohu

Chcete-li vytvořit úlohu, proveďte POST požadavek na koncový bod úloh Logpush s následujícími poli:

"splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>&sourcetype=<SOURCE_TYPE>&header_Authorization=<SPLUNK_AUTH_TOKEN>"

Příklad požadavku pomocí cURL:

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Vytvořit úlohu Logpush
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "<DOMAIN_NAME>",
		"destination_conf": "splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>&sourcetype=<SOURCE_TYPE>&header_Authorization=<SPLUNK_AUTH_TOKEN>",
		"output_options": {
				"field_names": [
						"ClientIP",
						"ClientRequestHost",
						"ClientRequestMethod",
						"ClientRequestURI",
						"EdgeEndTimestamp",
						"EdgeResponseBytes",
						"EdgeResponseStatus",
						"EdgeStartTimestamp",
						"RayID"
				],
				"timestamp_format": "rfc3339"
		},
		"dataset": "http_requests",
		"enabled": true
	}'

Odpověď:

{
  "errors": [],
  "messages": [],
  "result": {
    "id": <JOB_ID>,
    "dataset": "http_requests",
    "kind": "",
    "enabled": true,
    "name": "<DOMAIN_NAME>",
    "output_options": {
      "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp","EdgeResponseBytes", "EdgeResponseStatus", "EdgeStartTimestamp", "RayID"],
      "timestamp_format": "rfc3339"
    },
    "destination_conf": "splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>&sourcetype=<SOURCE_TYPE>&header_Authorization=<SPLUNK_AUTH_TOKEN>",
    "last_complete": null,
    "last_error": null,
    "error_message": null
  },
  "success": true
}

Viz Spravovat Logpush pomocí cURL k aktualizaci úlohy (včetně jejího zapnutí a vypnutí).

Viz Logpush (FAQ) s informacemi o řešení potíží.

3. Vytvořte vlastní pravidlo WAF pro koncový bod Splunk HEC (volitelné)

Pokud je název hostitele cíle Logpush proxyován přes Cloudflare a máte zapnutý Cloudflare Web Application Firewall (WAF), může být požadavek Cloudflare na Splunk HTTP Event Collector (HEC) vyzván k ověření nebo zablokován. Aby k tomu nedocházelo, musíte vytvořit vlastní pravidlo která umožňuje Cloudflare obejít HEC endpoint.

  1. V dashboardu Cloudflare přejděte na Bezpečnostní pravidla stránce.

    Přejděte na Bezpečnostní pravidla ↗
  2. Vyberte Vytvořit pravidlo > Custom rules.

  3. Zadejte popisný název pravidla (například Splunk).

  4. V části Když příchozí požadavky odpovídají, použijte Pole, Operátor, a Hodnota a vytvořte pravidlo. Po dokončení každého řádku vyberte And a vytvořte další řádek pravidel. Hodnoty, které máte zadat, najdete v tabulce níže:

    Pole Operátor Hodnota
    Request Method equals POST
    Hostname equals Název hostitele koncového bodu Splunk. Například: splunk.cf-analytics.com
    URI Path equals /services/collector/raw
    Řetězec dotazu URI contains channel
    AS Num is in 13335, 132892, 202623
    User Agent equals Go-http-client/2.0
  5. Po zadání hodnot podle tabulky by se v poli Expression Preview mělo zobrazit vámi zadané znění pro dané pravidlo. Následující příklad odpovídá názvu hostitele splunk.cf-analytics.com.

    (http.request.method eq "POST" and http.host eq "splunk.cf-analytics.com" and http.request.uri.path eq "/services/collector/raw" and http.request.uri.query contains "channel" and ip.geoip.asnum in {13335 132892 202623} and http.user_agent eq "Go-http-client/2.0")
  6. V části Poté > Zvolte akci rozbalovací nabídce vyberte Přeskočit.

  7. V části Komponenty WAF k přeskočení, vyberte Všechna spravovaná pravidla.

  8. Vyberte Nasadit.

WAF by nyní měl ignorovat požadavky, které Cloudflare zasílá do Splunk HEC.

Řešení problémů s cíli Splunk

Ověřování chyb cíle

Pokud při nastavování úlohy pro Splunk obdržíte chybu ověření, zkontrolujte následující:

Pochopení insecure-skip-verify

insecure-skip-verify parametr, pokud je nastaven na true, vytváří nezabezpečené spojení se Splunk. To odpovídá použití -k možnost s curl a je nedoporučuje se.

Proč tento parametr existuje: Certifikáty vygenerované Splunkem nebo certifikáty třetích stran by měly mít Obecný název odpovídalo názvu domény serveru Splunk. Pokud se neshodují (zejména u výchozích certifikátů, které Splunk generuje při spuštění), odesílání selže, dokud certifikáty neopravíte. Tento parametr slouží pro vzácné případy, kdy nemáte možnost k certifikátům přistupovat nebo je upravovat, například u instancí Splunk Cloud, které neumožňují měnit konfiguraci serveru.

Ověřování HEC před nastavením

Před vytvořením úlohy Logpush ověřte, že váš Splunk HEC funguje správně, a to publikováním testovacích událostí prostřednictvím curl bez -k příznakem a s insecure-skip-verify=false:

curl "https://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=false&sourcetype=<SOURCE_TYPE>" \
--header "Authorization: Splunk <SPLUNK_AUTH_TOKEN>" \
--data '{"BotScore":99,"BotScoreSrc":"Machine Learning","CacheCacheStatus":"miss","CacheResponseBytes":2478}'

Očekávaná odpověď:

{"text":"Success","code":0}

Požadavky na síťové porty

Cloudflare očekává, že síťový port HEC bude nakonfigurován na :443 nebo :8088. Jiné porty nejsou podporovány.

Integrace Cloudflare Splunk App

Logpush se integruje s Cloudflare App for Splunk ↗. Pokud protokoly přijímáte pomocí cloudflare:json typu zdroje můžete použít Cloudflare Splunk App k analýze a vizualizaci svých protokolů.

Podrobné pokyny k nastavení najdete v Integrace Splunk Analytics.