← Cloudflare Logs / logs / logpush / logpush-job / enable-destinations
Vyhrazená výstupní IP adresa pro Logpush
Tento návod se zabývá Dedicated CDN Egress IPs a konfiguraci Logpush a pokyny k testování pro povolení doručování protokolů s pevnou vyhrazenou výstupní IP adresou.
Předpoklady
Chcete-li používat Logpush s vyhrazenou odchozí IP adresou, budete potřebovat Smart Shield Advanced s Dedicated CDN Egress IPs (dříve známé jako Aegis). Upozorňujeme, že fond Dedicated CDN Egress IPs je přiřazen k zóně, nikoli k účtu. Aby bylo možné používat Logpush s vyhrazenými IP adresami, musí být provoz směrován do jedné zóny.
Obecný postup spočívá v tom, že úloha Logpush odesílá data Logpush přes zónu Cloudflare s povolenými Dedicated CDN Egress IPs do požadovaného cíle. Váš cíl pak bude potřebovat zařadit na seznam povolených adres (allowlist) pouze přidělené vyhrazené egress IP adresy vaší proxy zóny.
Jako předpoklad musíte vytvořit vyhrazenou zónu nebo použít zónu existující. Pokud použijete existující zónu, mějte na paměti, že její odchozí provoz bude omezen na Dedicated CDN Egress IPs. Ujistěte se, že to neovlivní žádné služby, které danou zónu využívají.
Doporučujeme jako proxy použít samostatnou vyhrazenou zónu, abyste neovlivnili produkční systémy. Pokud se rozhodnete vytvořit novou zónu, postupujte podle kroky k registraci nové domény u Cloudflare.
Následující příklad ukazuje, jak nastavit Logpush a Dedicated CDN Egress IPs pro proxování cíle HTTPS. Proxování by ale mělo fungovat pro jakýkoli podporovaný cíl Logpush, protože všechny cíle interně používají protokol HTTP.
1. Zřiďte vyhrazený egress IP Pool
-
Obraťte se na svůj tým Cloudflare account a zakupte si Dedicated CDN Egress IPs pro vaši zónu.
-
(Volitelné, ale doporučené) Vyžádejte si dvě IP adresy, jednu v PDX-B a jednu v SJC-A, aby bylo zajištěno pokrytí napříč regiony.
-
Po zřízení potvrďte Pool ID.
2. Nakonfigurujte zónu
- Zaregistrujte nebo použijte existující zónu pro fond vyhrazených egress IP adres.
- Obraťte se na svůj account tým a vyžádejte si ID vašeho vyhrazeného fondu egress IP adres.
- Vytvořte
PATCHpožadavek na Upravit nastavení zóny koncový bod:
- Zadejte
aegisjako ID nastavení v URL adrese. - V těle požadavku nastavte
enablednatruea použijte ID z předchozího kroku jakopool_id.
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Zone Settings Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/settings/aegis" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"id": "aegis",
"value": {
"enabled": true,
"pool_id": "<YOUR_EGRESS_POOL_ID>"
}
}'3. Nastavení proxy zóny
- Ve své zóně přidejte DNS záznam (CNAME nebo A/AAAA) s Cíl jako cílový koncový bod HTTP.
- V případě potřeby nakonfigurujte origin rules k zadání vlastního portu. To se hodí, pokud váš cíl přijímá provoz pouze na nestandardním portu, například
12345. Můžete nakonfigurovatlogpush.yourdestinationendpoint.com(bez uvedení portu, protože Cloudflare ve výchozím nastavení proxíruje provoz jen na portech HTTP/HTTPS) pro proxy nayourdestinationendpoint.com:12345.
4. Nakonfigurujte Logpush
- Vytvořte úlohu Logpush s následujícími údaji:
- Cíl: HTTP
- Koncový bod: Použijte nastavenou doménu/cestu (dashboard Cloudflare cíl automaticky ověří). Použijte název serveru uvedený v Název sekce v záznamu DNS. V tomto případě
logpush.yourdestionationendpoint.com.
- Konfigurace: Vyberte datovou sadu, název úlohy, filtry a pole. Podrobnosti najdete v Dokumentace Logpush pro další podrobnosti.
- Zkontrolujte cíl a ověřte, zda jsou protokoly doručovány.
5. Zabezpečte koncový bod proxy zóny
Název hostitele proxy zóny je veřejně přeložitelný, provoz ale prochází edge sítí Cloudflare, kde můžete uplatnit bezpečnostní kontroly. K ochraně koncového bodu použijte následující osvědčené postupy.
Přidejte tajnou hlavičku s ověřením ve WAF
Přidejte do úlohy Logpush tajný token jako hlavičku HTTP a poté vytvořte pravidlo WAF, které bude blokovat požadavky bez tohoto tokenu. Pro většinu nasazení se doporučuje právě tento postup.
Nakonfigurujte Logpush s tajnou hlavičkou
Jakýkoli parametr URL začínající na header_ se stane hlavičkou HTTP v požadavku. Při vytváření nebo aktualizaci úlohy Logpush přidejte tajnou hlavičku do cílové URL adresy:
https://logpush.yourdestinationendpoint.com?header_X-Logpush-Secret=YOUR_RANDOM_SECRET_TOKENVygenerujte silný náhodný token pomocí openssl rand -hex 32.
Vytvoření vlastního pravidla WAF
V proxy zóně přejděte na Security > WAF > Custom rules a vytvořte pravidlo, které blokuje požadavky bez správné tajné hlavičky.
- Výraz:
(http.host eq "logpush.yourdestinationendpoint.com" and all(http.request.headers["x-logpush-secret"][*] ne "YOUR_RANDOM_SECRET_TOKEN")) - Akce: Block
Přidejte filtrování podle ASN
Pro důkladnější zabezpečení přidejte pravidlo, které povolí provoz pouze z ASN Cloudflare. Provoz Logpush pochází ze sítě Cloudflare (ASN 13335, 132892 nebo 202623).
- Výraz:
(http.host eq "logpush.yourdestinationendpoint.com" and not ip.geoip.asnum in {13335 132892 202623}) - Akce: Block
Používejte Access Service Tokens pro prostředí s vysokými nároky na zabezpečení
Pro silnější autentizaci použijte Cloudflare Access Service Tokens pro autentizaci mezi stroji. Vytvořte Service Token v dashboardu Zero Trust a poté nakonfigurujte Logpush s hlavičkami Access:
https://logpush.yourdestinationendpoint.com?header_CF-Access-Client-Id=YOUR_CLIENT_ID&header_CF-Access-Client-Secret=YOUR_CLIENT_SECRETOvěřte svou bezpečnostní konfiguraci
Otestujte, že vaše pravidla WAF blokují neautorizované požadavky:
$ curl https://logpush.yourdestinationendpoint.com
# Expected: error code: 1020
$ curl -H "X-Logpush-Secret: wrong-token" https://logpush.yourdestinationendpoint.com
# Expected: error code: 1020V Cloudflare Analytics zkontrolujte proxy zónu a ověřte, že přes ni prochází provoz Logpush, a sledujte události WAF, abyste měli jistotu, že neoprávněné požadavky jsou blokovány.