Blog

Infrastruktura 9 min čtení

Nastavení Cloudflare pro firemní weby: rychlost a bezpečnost, krok za krokem

Umístění firemního webu za Cloudflare zabere celé odpoledne a odstraní celé kategorie problémů: pomalé stránky pro vzdálené návštěvníky, záplavy provozu, roboti, kteří vám zatloukají přihlášení. Představuje také nové způsoby, jak věci rozbít, pokud se to dělá nedbale. Tato příručka popisuje pořadí nastavení, důležitá nastavení a chyby, se kterými se setkáváme nejčastěji.

Ilustrace článku: Nastavení Cloudflare pro firemní weby: rychlost a bezpečnost, krok za krokem

Ve zkratce

  • Cloudflare za vás udělá tři úkoly: DNS, globální mezipaměť (CDN) a vrstvu zabezpečení před vaším serverem (ochrana DDoS, pravidla brány firewall, filtrování botů).
  • Používejte režim SSL Plný (přísný), nikdy flexibilní. Poté uzamkněte svůj server, aby přijímal webový provoz pouze z Cloudflare, jinak ho útočníci mohou jednoduše obejít.
  • Agresivně ukládejte statické soubory do mezipaměti, nikdy do mezipaměti neukládejte soukromé nebo administrátorské stránky a při nasazení automaticky vymažte mezipaměť.
  • Přidejte několik cílených pravidel: rychlostní limit přihlášení a placení a osvobození platebních webhooků od výzev.
  • E-mailové záznamy musí zůstat pouze DNS a vaše protokoly potřebují obnovit skutečnou IP adresu návštěvníka. Tyto dva detaily způsobují většinu lístků „po Cloudflare to prasklo“.

Cloudflare sedí mezi vašimi návštěvníky a vaším serverem. Návštěvníci se připojují k nedalekému datovému centru Cloudflare, které přímo obsluhuje soubory uložené v mezipaměti, filtruje nepřátelský provoz a přeposílá zbytek na váš server. Pro firmu to znamená rychlejší stránky pro zákazníky daleko od místa vašeho hostování, ochranu před jednoduchými záplavami z důvodu odmítnutí služby a místo pro prosazování bezpečnostních pravidel bez změny kódu aplikace. Mnoho plánů začíná zdarma a placené plány přidávají funkce, takže si před rozhodnutím zkontrolujte aktuální srovnání plánu.

Nenahrazuje opravený software a zabezpečený kód. Náš kontrolní seznam zabezpečení PHP stále platí. Představte si Cloudflare jako silné vstupní dveře, nikoli náhradu za zamykání místností uvnitř.

Než začnete

  • Udělejte si inventuru svého DNS. Exportujte nebo udělejte snímek obrazovky u vašeho aktuálního poskytovatele DNS, včetně pošty (MX, SPF, DKIM, DMARC) a ověřovacích záznamů. Zmeškaný záznam je klasický způsob, jak prolomit e-mail během migrace.
  • Zjistěte, kdo vlastní účet registrátora domény, a ujistěte se, že se jedná o firemní účet s vícefaktorovým ověřením. Změníte tam jmenné servery.
  • Pokud je to možné, snižte TTL vašich klíčových záznamů den předem, aby se změny šířily rychleji.
  • Vyberte si klidný čas a řekněte to týmu. Naplánujte návrat: staré jmenné servery, zapsané.

Krok 1: Přidejte web a zkontrolujte DNS

Přidejte svou doménu na hlavní panel Cloudflare. Skenuje existující záznamy. Porovnejte je se svým inventářem a opravte mezery. Pro každý záznam si vyberte ze dvou režimů:

  • Proxed (oranžový cloud): provoz prochází Cloudflare. Použijte pro vaše webové stránky a názvy hostitelů webových aplikací.
  • Pouze DNS (šedý cloud): Cloudflare pouze odpovídá na dotaz DNS. Použijte pro poštovní servery, názvy hostitelů SSH nebo FTP a vše, co není provoz HTTP nebo HTTPS.

Poté aktualizujte jmenné servery u svého registrátora. Jakmile se web zobrazí jako aktivní, zkontrolujte svůj web a odešlete zkušební e-mail.

Krok 2: Nastavte správně šifrování

Toto je nastavení, které rozbije nejvíce webů. Cloudflare má několik režimů SSL/TLS:

  • Flexibilní: šifruje návštěvníka Cloudflare, ale odesílá provoz na váš server nešifrovaný. Vypadá to, že to funguje, ale druhá větev je otevřená a často způsobuje smyčky přesměrování. Vyhněte se tomu.
  • Full: zašifruje obě větve, ale neověří certifikát vašeho serveru.
  • Úplný (striktní): zašifruje obě větve a ověří certifikát na vašem serveru. Toto je ten, který se má použít.

Nejprve si na svůj server nainstalujte platný certifikát. Funguje certifikát Cloudflare Origin CA nebo bezplatný certifikát Let's Encrypt. Poté přepněte na Full (strict), zapněte Always Use HTTPS, nastavte minimální verzi TLS 1.2 a povolte HSTS až poté, co vše funguje přes HTTPS, protože HSTS říká prohlížečům, aby odmítaly prostý HTTP na dlouhou dobu.

Krok 3: Znemožněte obejít Cloudflare

Pokud útočníci znají skutečnou IP adresu vašeho serveru, mohou na něj posílat provoz a přeskočit každou ochranu, kterou jste nakonfigurovali. Opravte to dvěma způsoby:

  • Povolte webový provoz na váš server pouze z publikovaných rozsahů IP adres Cloudflare.
  • Obnovte skutečnou IP adresu návštěvníka na svém webovém serveru, protože jinak se zdá, že každý požadavek ve vašich protokolech, limitech sazeb a analýzách pochází z Cloudflare.
#!/usr/bin/env bash
# /opt/cf/update_cloudflare_ips.sh - run weekly from cron
set -euo pipefail
IPS="$(curl -fsS https://www.cloudflare.com/ips-v4) $(curl -fsS https://www.cloudflare.com/ips-v6)"

# 1) real visitor IP for Nginx
OUT=/etc/nginx/conf.d/cloudflare_real_ip.conf
{
  for r in $IPS; do echo "set_real_ip_from $r;"; done
  echo "real_ip_header CF-Connecting-IP;"
} > "$OUT.tmp" && mv "$OUT.tmp" "$OUT"
nginx -t && nginx -s reload

# 2) firewall: allow HTTPS only from Cloudflare (remove any generic "allow 443" rule first)
for r in $IPS; do ufw allow proto tcp from "$r" to any port 443 comment 'cloudflare'; done

Jeden důležitý detail pro uživatele Docker: porty publikované Docker obcházejí pravidla ufw. Spojte kontejnery s localhostem za reverzní proxy nebo omezte přístup v řetězci brány firewall Docker DOCKER-USER společnosti Docker. Pro silnější izolaci umožňuje Cloudflare Tunnel vašemu serveru vytvořit pouze odchozí připojení, takže nepotřebuje vůbec žádné otevřené příchozí webové porty. U platebních webhooků a dalších integrací server-to-server se ujistěte, že pravidla IP stále umožňují těmto požadavkům projít, pokud nejdou přes Cloudflare.

Krok 4: Pravidla ukládání do mezipaměti

Ve výchozím nastavení Cloudflare ukládá do mezipaměti statické soubory, jako jsou obrázky, CSS a JavaScript, ale ne HTML. Rozumná politika pro typický PHP web:

  • Statická aktiva: mezipaměť po dlouhou dobu (měsíc nebo déle). Použijte názvy souborů s verzí nebo řetězec dotazu, jako je app.css?v=123, aby bylo nové nasazení okamžitě vyzvednuto.
  • Veřejné HTML stránky (marketingové stránky, blog): lze ukládat do mezipaměti minuty až hodiny pomocí pravidla mezipaměti. Pečlivě testujte.
  • Nikdy do mezipaměti: správce, účet, košík, pokladna, koncové body API a jakákoli stránka, která závisí na přihlašovacím cookie. Vytvořte pravidlo obcházení pro tyto cesty a pro požadavky přenášející váš soubor cookie relace.

Po každém nasazení se automaticky vyčistí, takže zákazníci nikdy neuvidí zastaralé soubory. Vytvořte token rozhraní API pouze s oprávněním „Cache Purge“ pro tuto zónu a zavolejte jej ze skriptu nasazení:

# purge selected files after a deployment
curl -sS -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/purge_cache" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"files":["https://example.com/css/app.css","https://example.com/js/app.js"]}'

Rychlejší stránky také pomáhají vyhledávání a konverzím. Podívejte se na naši příručku Core Web Vitals pro weby PHP, kde najdete, co opravit na straně serveru, jakmile bude CDN zavedeno.

Krok 5: Firewall, roboti a omezení rychlosti

  • Zapněte spravovaná pravidla WAF dostupná ve vašem plánu. Blokují běžné vzory útoků dříve, než se dostanou do vašeho kódu.
  • Povolte ochranu botů vhodnou pro váš plán a sledujte analýzy, než cokoli zpřísníte.
  • Citlivé koncové body hodnotit limit: přihlášení, resetování hesla, registrace a placení. Útoky hrubou silou a testováním karet se zaměřují právě na ně.
  • Výjimka z provozu důvěryhodných strojů: webhooky poskytovatelů plateb, monitorovací služby a vaše vlastní integrace nesmí být zasaženy výzvami prohlížeče, protože stránka s výzvou vrácená webhooku vypadá jako selhání.
# Custom rule 1: block probes for secrets and repositories (action: Block)
(http.request.uri.path contains "/.env" or http.request.uri.path contains "/.git" or http.request.uri.path contains "wp-config")

# Custom rule 2: let payment webhooks through (action: Skip, security features)
(http.request.uri.path in {"/webhooks/stripe" "/webhooks/paypal"})

# Rate limiting rule: at most 10 login attempts per minute per IP
(http.request.uri.path eq "/login" and http.request.method eq "POST")  =>  10 requests / 1 minute / IP

Syntaxe pravidla a dostupná pole se liší podle plánu, takže je považujte za šablony a nejprve je otestujte v režimu „log“. Udržujte také ochranu na úrovni aplikace: kontroly podpisu webhooku, jako v našem průvodci webhooky Stripe, nikdy nezávisí pouze na pravidlech sítě.

Krok 6: Ověřte nastavení

# is traffic going through Cloudflare?
curl -sI https://example.com | grep -iE "^(server|cf-cache-status|cf-ray)"

# does the origin refuse direct access? (replace with your server IP; expect a timeout or refusal)
curl -sI --max-time 8 https://203.0.113.10 -H "Host: example.com" -k

# are the nameservers and mail records right?
dig NS example.com +short
dig MX example.com +short
dig TXT example.com +short

Dvakrát zkontrolujte statický soubor: druhá odpověď by měla ukazovat cf-cache-status: HIT. Zkontrolujte přihlašovací, pokladní a administrátorské toky pomocí skutečného prohlížeče a odešlete a přijměte testovací e-mail.

Časté chyby

  • Flexibilní SSL a následné smyčky přesměrování.
  • Zprostředkování názvu hostitele pošty (musí to být pouze DNS) nebo zapomenutí záznamu pošty během přesunu.
  • Ukládání soukromých stránek do mezipaměti, aby jeden zákazník viděl stránku účtu jiného zákazníka. Vždy obcházet mezipaměť pro přihlášený provoz.
  • Ponechání odhaleného původu: skutečná IP je viditelná ve starých záznamech DNS, hlavičkách e-mailů nebo protokolech certifikátů. Omezte firewall a zvažte změnu IP, pokud unikla.
  • Neobnovování skutečné IP, což porušuje limity rychlosti, protokoly a kontroly podvodů.
  • Náročné webhooky a rozhraní API, které způsobují tiché selhání plateb a integrací.
  • Omezení velikosti požadavků: žádosti zadané pomocí proxy mají maximální velikost těla v závislosti na plánu. Zkontrolujte aktuální limit, pokud vaše aplikace přijímá velká nahrávání.
  • Zapomínání na sledování. Přidejte upozornění na vypršení platnosti certifikátu a domény a udržujte kontroly dostupnosti, jak je popsáno v našem průvodci zálohováním a monitorováním.

Jednostránkový kontrolní seznam

  1. Inventář DNS exportován, účet registrátora zabezpečen.
  2. Stránky přidány, záznamy zkontrolovány, proxy pouze pro názvy webových hostitelů.
  3. Nainstalovaný původní certifikát, režim SSL plný (přísný), Vždy používat HTTPS zapnuto.
  4. Firewall omezen na rozsahy Cloudflare, skutečná IP adresa návštěvníka byla obnovena.
  5. Mezipaměť pravidel pro statická aktiva, vynechání soukromých cest, vyčištění ve skriptu nasazení.
  6. Spravované WAF zapnuto, limity sazeb pro přihlášení a placení, webhooky vyjmuty.
  7. Spuštěny ověřovací příkazy, nakonfigurované výstrahy, dokumentováno vrácení zpět.

Jak můžeme pomoci

Nakonfigurujeme Cloudflare, hostingové a implementační kanály pro PHP aplikace a propojíme je s platebními, CRM a messagingovými systémy. Přečtěte si o naší integrační službě nebo si zarezervujte krátký hovor a my zkontrolujeme vaše nastavení DNS, SSL a ukládání do mezipaměti podle tohoto kontrolního seznamu.

Časté otázky

Vyplatí se Cloudflare pro web malé firmy?

U většiny veřejných webů ano. Rychlejší doručování statických souborů, ochrana DDoS, bezplatné spravované DNS a snadné HTTPS jsou cenné i na bezplatném plánu. Placené plány přidávají silnější firewall, bot a výkonové funkce. Podívejte se na porovnání aktuálního plánu, co potřebujete.

Jaký režim SSL bych měl použít?

Plný (přísný). Šifruje provoz mezi návštěvníkem a Cloudflare a mezi Cloudflare a vaším serverem a ověřuje certifikát vašeho serveru. Vyhněte se flexibilnímu, který ponechává připojení k vašemu serveru nešifrované a často způsobuje smyčky přesměrování.

Mohou útočníci obejít Cloudflare ?

Ano, pokud najdou skutečnou IP vašeho serveru a ten přijímá provoz odkudkoli. Omezte svůj firewall na publikované rozsahy IP adres Cloudflare nebo použijte Cloudflare Tunnel a změňte IP, pokud unikla.

Proč můj e-mail přestal fungovat po přesunutí DNS do Cloudflare ?

Obvykle při migraci chyběl záznam pošty nebo byl název hostitele pošty nastaven na proxy. Musí být přítomny e-mailové záznamy jako MX, SPF, DKIM a DMARC a název hostitele poštovního serveru musí být pouze DNS.

Mám ukládat stránky HTML do mezipaměti na Cloudflare ?

Můžete pro veřejné stránky, jako je marketing a obsah blogu, pomocí pravidel mezipaměti a rozumného vypršení platnosti. Nikdy neukládejte do mezipaměti správce, účet, košík, pokladnu ani žádnou personalizovanou stránku a vymažte mezipaměť při každém nasazení.

Volání bezplatného zjišťování

Přineste chaotický stack nebo zaseknutou integraci - Integrono namapuje nejchytřejší první krok.

Dostanete seniorský pohled na rozpočtové pasti, závislosti a na to, zda koupit, slepit nebo postavit - než začne placená práce. CEO zůstává v okruhu.