← Referenční architektury / reference-architecture / design-guides
Bezpečně doručujte aplikace pomocí Cloudflare
Přehled a výhody Cloudflare
Cloudflare poskytuje kompletní sadu služeb v oblasti výkonu aplikací, zabezpečení, spolehlivosti, vývoje a Zero Trust. Globální síť Cloudflare je od přibližně 95 % populace připojené k internetu vzdálena zhruba 50 ms a skládá se ze služeb, které běží na každém serveru v každém datovém centru. Globální rozsah Cloudflare zároveň umožňuje mít k dispozici robustní zdroj threat intelligence, který se neustále vrací zpět do bezpečnostních produktů Cloudflare a dále zlepšuje modely strojového učení a služby.

Dalším rozlišujícím prvkem je to, že Cloudflare není jednoúčelovým produktem, na rozdíl od některých dodavatelů, kteří nabízejí jen zabezpečení API, služby zero trust nebo konkrétní výkonnostní či bezpečnostní služby. Od přístupu založeného na jednoúčelových produktech zákazníci ustupují kvůli provozní a administrativní složitosti a kvůli neefektivitě plynoucí z toho, že nelze využít inovace a integrace napříč produkty ani škálu sítě a zdrojů napříč všemi službami.

Klienti si navíc nechtějí zavírat dveře k jinému poskytovateli cloudu, mnoho poskytovatelů výkonnostních a bezpečnostních řešení ale klienty na svou platformu váže tím, že služby optimalizuje pouze pro svůj vlastní cloud, čímž provozně komplikuje přijetí multi-cloud strategie.
Cloudflare nezáleží na tom, kde workloady běží ani jakého poskytovatele cloudu zákazník používá. Zákazníci mají k dispozici stejný jednotný dashboard a stejnou provozní jednoduchost bez ohledu na to, zda workloady běží v konkrétním cloudu, nebo on-premise. Na rozdíl od mnoha dodavatelů tak využití meziproduktových inovací a integrací nezávisí na tom, jaký cloud zákazník pro workloady používá.
Tento dokument ukazuje, jak snadné je využívat služby Cloudflare společně bez ohledu na to, kde pracovní zátěž běží. V příkladu uvedeném v tomto dokumentu bude aplikační pracovní zátěž využívat Cloudflare DNS, CDN, WAF a Access a zároveň se pomocí Cloudflare Tunnel bezpečně připojovat k síti Cloudflare. Jen málokterý dodavatel dokáže nabídnout tak komplexní úroveň zabezpečení provozně jednoduchým a konzistentním způsobem.
Další podrobnosti a referenční architektury pro konkrétní služby najdete v naší dokumenty referenční architektury.
Zavedení a ochrana aplikace pomocí Cloudflare
Cloudoví poskytovatelé zabezpečení a výkonu, jako je Cloudflare, fungují jako reverzní proxy. Reverzní proxy je server, který stojí před webovými servery a předává jim klientské požadavky. Reverzní proxy se obvykle nasazují proto, aby zvýšily zabezpečení, výkon a spolehlivost.
Běžný tok provozu bez reverzní proxy vypadá tak, že klient odešle DNS dotaz, obdrží IP adresu origin serveru a komunikuje přímo s origin server(y) ↗.
Po zavedení reverzní proxy klient stále odesílá požadavek na vyhledání DNS svému resolveru, což je první krok při vyhledávání DNS. V některých případech poskytuje služby DNS i dodavatel reverzní proxy, jak znázorňuje obrázek 3 níže. Klient ale nyní komunikuje s reverzní proxy a ta komunikuje s původním serverem (servery). Díky tomuto toku provozu, kdy veškerý provoz prochází přes reverzní proxy, lze pro aplikace snadno zavést další služby zabezpečení, výkonu a spolehlivosti.

V tomto příkladu máme web běžící u jednoho z velkých poskytovatelů cloudu a chceme použít Cloudflare DNS, CDN, WAF a Access. Pro účely demonstrace začneme právě s těmito službami, zákazníci je pak mohou dále rozšířit o další služby Cloudflare podle potřeby. Cloudflare přináší výhodu v podobě oddělení všech služeb od poskytovatele cloudu, takže pokud později budeme chtít poskytovatele cloudu změnit nebo chránit další aplikace běžící v jiných cloudech, dashboard i provoz zůstávají konzistentní.
Zákazníci mohou snadno a bezpečně připojit svou webovou aplikaci k síti Cloudflare a využívat služby pro výkon a zabezpečení aplikací. K dispozici je několik možností připojení vhodných pro různé případy použití.
Možnosti konektivity
Veřejné připojení přes internet
V nejzákladnějším scénáři směruje proxy Cloudflare provoz požadavků k origin serveru přes internet. V tomto nastavení jsou klient i origin server koncové body přímo připojené k internetu přes svého poskytovatele internetových služeb. Požadavek je od klienta směrován přes internet k proxy Cloudflare (na základě konfigurace DNS) a teprve poté jej proxy přesměruje přes internet na origin server zákazníka.
Diagram níže popisuje výchozí připojení k originům, jak požadavky procházejí sítí Cloudflare. Když se požadavek na origin přeloží na IP adresu hostovanou Cloudflare, zpracuje ho síť Cloudflare a přepošle na originový server přes veřejný internet.

Origin je připojen přímo k internetu a provoz se k němu směruje podle IP adresy, kterou přeloží Cloudflare DNS. Záznam DNS A spojuje doménové jméno s IP adresou origin serveru (serverů) nebo obvykle s load balancerem, za kterým origin servery stojí.
V tomto modelu vrátí Cloudflare DNS při dotazu na záznam A anycast IP adresu Cloudflare, takže veškerý provoz je směrován přes Cloudflare. Pokud však nejsou přijata další opatření, může být origin server dosažitelný přímo a obejít Cloudflare, pokud někdo zná IP adresu origin serverů.
V tomto modelu navíc musí klient otevřít pravidla firewallu pro origin server(y) nebo webový server(y) tak, aby byly dostupné na příslušných portech http/https. Klienti se ale mohou rozhodnout využít Dedicated CDN Egress IPs, která přiděluje IP adresy specifické pro daného zákazníka, jež Cloudflare používá pro zpětné připojení k vašim origin serverům. Doporučujeme do allowlistu zařadit provoz pouze z těchto sítí, abyste zabránili přímému přístupu.
Kromě blokování IP adres na firewallu na straně originu důrazně doporučujeme i další ověřování provozu prostřednictvím buď nastavení SSL "Full (Strict)" nebo autentizace mTLS k zajištění toho, aby veškerý provoz pocházel z požadavků procházejících zónami nakonfigurovanými zákazníkem.
Cloudflare také podporuje Bring Your Own IP (BYOIP). Po nakonfigurování BYOIP bude globální síť Cloudflare oznamovat vlastní IP prefixy zákazníka a tyto prefixy pak lze používat s příslušnými službami Cloudflare na vrstvě 7. Díky tomu mohou zákazníci směrovat provoz přes Cloudflare formou proxy a přitom si v DNS překladu ponechat vracenou vlastní IP adresu zákazníka. Toho lze přínosné ↗ pro případy, kdy jsou prefixy IP adres zákazníka již na seznamu povolených (allow list) a aktualizace pravidel firewallu není žádoucí nebo představuje administrativní překážku.
Privátní připojení přes internet: tunel
Při připojování originů přes internet se pro vyšší zabezpečení doporučuje použít privátní tunel či spojení vedené přes internet.
Tradiční nastavení VPN není optimální, protože provoz backhauluje do centralizované lokality VPN brány, která se pak znovu připojuje k origin serveru, což negativně ovlivňuje průchodnost a latenci v celé trase. Cloudflare nabízí Cloudflare Tunnel softwaru, který vytváří šifrovaný tunel mezi vaším origin serverem (servery) a sítí Cloudflare. Jelikož Cloudflare využívá na své globální síti anycast, origin server (servery) se stejně jako klienti připojí k nejbližšímu datovému centru Cloudflare, čímž se optimalizuje latence a propustnost v celé trase.
Když spustíte tunel, lehký démon ve vaší infrastruktuře, cloudflared, naváže mezi původním serverem a sítí Cloudflare čtyři výhradně odchozí připojení. Tato čtyři připojení směřují na čtyři různé servery rozmístěné alespoň ve dvou různých datacentrech, což zajišťuje vysokou odolnost. Pro zvýšení odolnosti mezi vašimi původními servery a sítí Cloudflare můžete nainstalovat i víc instancí cloudflared.
Cloudflared vytváří šifrovaný tunel mezi vaším origin webovým serverem (servery) a nejbližším datovým centrem (centry) Cloudflare, aniž by bylo nutné otevírat jakékoli veřejné příchozí porty. Díky tomu je implementace jednoduchá a rychlá, protože nejsou nutné žádné změny zabezpečení na firewallu. Toto řešení také snižuje riziko chybné konfigurace firewallu, která by mohla vaši firmu vystavit útokům.
Zabezpečení firewallu se posiluje uzamčením všech portů a protokolů originového serveru prostřednictvím vašeho firewallu. Jakmile je zavedený Cloudflare Tunnel a uplatněno příslušné zabezpečení, veškeré požadavky na portech HTTP/S se zahazují, včetně objemových útoků DDoS. Pokusy o únik dat, jako je odposlech dat při přenosu nebo útoky hrubou silou na přihlašování, jsou zcela blokovány.

Výše uvedený diagram popisuje model připojení prostřednictvím Cloudflare Tunnel. Tato možnost umožňuje bezpečně připojit vaše zdroje ke Cloudflare bez veřejně směrovatelné IP adresy. Cloudflare Tunnel dokáže bezpečně připojit ke Cloudflare webové servery HTTP, servery SSH, vzdálené plochy a další protokoly.
Přímé připojení: Cloudflare Network Interconnect (CNI)
Většina dodavatelů také nabízí možnost přímého připojení ke své síti. Přímá připojení přinášejí oproti využívání veřejného internetu výhody v podobě vyšší bezpečnosti, spolehlivosti a výkonu. Realizují se v peeringových centrech, internetových výměnných uzlech (Internet exchange, IX), kde se mohou vzájemně propojovat poskytovatelé internetových služeb (ISP) a internetové sítě, nebo prostřednictvím partnerů dodavatele.

Výše uvedený diagram popisuje připojení k originu prostřednictvím Cloudflare Network Interconnect (CNI) ↗ což vám umožňuje připojit vaši síťovou infrastrukturu přímo ke Cloudflare a komunikovat pouze prostřednictvím těchto přímých spojení. CNI umožňuje zákazníkům propojit pobočky a centrálu přímo se Cloudflare. Se Cloudflare se lze propojit jedním ze tří způsobů: prostřednictvím privátního síťového propojení (private network interconnect, PNI), dostupného na Peeringová zařízení Cloudflare ↗, prostřednictvím IX na kterékoli z mnoho globálních výměnných uzlů, kterých se Cloudflare účastní ↗, nebo prostřednictvím jednoho z partnerů Cloudflare partneři propojovacích platforem ↗.
Globální síť Cloudflare umožňuje snadné připojení k síti bez ohledu na to, kde se nachází vaše infrastruktura a zaměstnanci.
Směrování k origin serveru
Bez ohledu na to, jaký model připojení se použije, provede se nejprve překlad DNS, který poskytne Cloudflare informaci o tom, kam provoz směrovat. Cloudflare dokáže pro danou zónu fungovat jako autoritativní poskytovatel DNS, sekundární poskytovatel DNS nebo podporovat nastavení mimo DNS Cloudflare (CNAME). Aby bylo možné uplatnit výkonnostní a bezpečnostní služby Cloudflare, musí být provoz směrován do sítě Cloudflare.
Příklad: zabezpečení vaší aplikace pomocí Cloudflare Tunnel a Access
Zabezpečení konektivity pomocí Cloudflare Tunnel
Ačkoli existuje více způsobů, jak zapojit aplikaci do používání služeb Cloudflare, běžným přístupem je použít Cloudflare DNS jako primární autoritativní DNS. Další výhodou pro zákazníky je, že Cloudflare je dlouhodobě hodnocen jako celosvětově nejrychlejší dostupný autoritativní poskytovatel DNS ↗.
V tomto příkladu bezpečně propojíme náš origin server s Cloudflare pomocí Cloudflare Tunnel. DNS můžete nakonfigurovat v dashboardu a zadat web, který chcete onboardovat. Obdržíte dvojici nameserverů Cloudflare, které nastavíte u registrátora domény. Po dokončení se Cloudflare stane primárním autoritativním poskytovatelem DNS.
Pokud je Cloudflare nastaven jen pro směrování přes internet, konfigurace DNS by vypadala přibližně takto: záznam A směřuje na IP adresu origin serveru nebo příslušného load balanceru. Protože Cloudflare funguje jako reverzní proxy, stav se zobrazuje jako Proxied." I v tomto případě Cloudflare nadále funguje jako reverzní proxy, takže lze využívat všechny služby Cloudflare, jako CDN, WAF a Access.

Cloudflare Tunnel lze rovněž použít přes internet, což zvyšuje zabezpečení a odstraňuje potřebu otevírat jakákoli příchozí pravidla firewallu směrem k origin serveru (serverům). Místo záznamu A v konfiguraci DNS pak budeme mít záznam CNAME směřující na nasazený tunel. Tunel nasadíme z origin serveru do sítě Cloudflare a DNS se nakonfiguruje automaticky. Vytvoří se záznam CNAME směřující na tunel, čímž se veškerý provoz směřující k origin serveru (serverům) vynutí přes Cloudflare Tunnel.
Chcete-li vytvářet tunely a spravovat je, musíte na svém původním serveru nainstalovat cloudflared a provést ověření. Právě cloudflared propojuje váš server s globální sítí Cloudflare.
Tunel lze vytvořit dvěma způsoby: prostřednictvím dashboardu nebo prostřednictvím příkazové řádky. Doporučujeme začít s dashboardem, protože vám umožní spravovat tunel z libovolného počítače.
Vzdáleně řízený tunel ke svému provozu potřebuje pouze token tunelu. Kdokoli, kdo k tomuto tokenu získá přístup, bude moci tunel provozovat. Token tunelu můžete získat z dashboardu nebo přes API, jak je znázorněno níže. Příkaz uvedený v dashboardu nainstaluje a nakonfiguruje cloudflared tak, aby běžel jako služba s využitím autentizačního tokenu.
V dashboardu Cloudflare přejděte na Zero Trust > Networks > Connectors. Klikněte na tlačítko "Create a tunnel", pojmenujte tunel a uložte jej.

Dále se zobrazí obrazovka, na které vyberete operační systém (OS) svého origin serveru. Poté se vám zobrazí příkaz CLI, který na origin serveru spustíte a který automaticky stáhne a nainstaluje software Cloudflare Tunnel.

Níže byl spuštěn příkaz CLI ke stažení a instalaci softwaru Cloudflare Tunnel.

Konektor se nyní automaticky zobrazí jako připojený.

V dashboardu nyní můžete pokračovat dalším krokem, kterým je vytvoření tunelu a jeho namapování na službu na origin serveru, jak je znázorněno níže. V tomto případě bude veškerý provoz HTTPS odesílán přes tunel na origin server.

V dashboardu nyní uvidíte, že tunel byl vytvořen a má stav Healthy.

Pokud se dále podíváme na konfiguraci DNS, vidíme, že byl automaticky vytvořen záznam DNS směřující na ID tunelu. Při vytvoření tunelu Cloudflare vygeneruje subdoménu cfargotunnel.com s UUID vytvořeného tunelu. Na rozdíl od veřejně směrovatelných IP adres bude subdoména proxovat provoz pouze pro DNS záznam ve stejném účtu Cloudflare. Jiný uživatel nemůže vytvořit DNS záznam v jiném účtu nebo systému, aby přes tento tunel proxoval provoz.

Nyní máme zabezpečený přístup k aplikaci. Uživatelé se k aplikaci mohou dostat pouze přes tunel připojený k síti Cloudflare. Jelikož Tunnel využívá odchozí spojení ke Cloudflare a veškerý zpětný provoz z odchozího spojení je automaticky povolen, není třeba žádné pravidlo firewallu pro příchozí provoz, což snižuje režii a zjednodušuje provoz.
Pokud byste tunel nasazovali přes CLI, po instalaci tunelu byste rovněž museli ověřit cloudflared na origin serveru. Server s globální sítí Cloudflare propojuje cloudflared. Toto ověření lze provést pomocí cloudflared tunnel login příkaz, jak je uvedeno níže.

Budete vyzváni k výběru zóny, do které chcete tunel přidat, jak je znázorněno níže.

Dále tunel pro danou zónu autorizujete.

Nakonec byste měli obdržet potvrzení, že byl nainstalován certifikát, který vašemu originu umožňuje vytvořit tunel v příslušné zóně.

Zabezpečení aplikace pomocí Cloudflare Access
Aktuální nastavení popsané dříve v tomto dokumentu je znázorněno níže, kde jsou originové servery připojeny k síti Cloudflare přes Tunnel. Nyní můžeme začít využívat služby Cloudflare.

V současné době je origin server přístupný pouze přes Cloudflare Tunnel. Protože se používá veřejný název hostitele, je přístup k origin serveru veřejný. Aplikace je chráněná za Cloudflare a zabezpečená proti DDoS a dalším typům útoků. Pro vyšší zabezpečení lze pomocí Cloudflare Access umístit před tunelovanou aplikaci vrstvu ověřování a řízení přístupu. Access vyžaduje ověření ještě předtím, než se požadavky na origin server vůbec zpracují. V zásadě lze využít i řadu dalších atributů identity, zařízení a sítě, takže zákazníci mohou definovat přístup nejen na základě ověření. Mohou tak například určit, ze které sítě požadavek pochází, nebo ověřit, že zařízení uživatele používá nejnovější operační systém.
Níže vidíte, že byla vytvořena aplikace pro cftestsite3.com.

V konfiguraci zásady níže vidíte, že vyžaduje, aby uživatelé byli členy skupiny Access „Secure Employees“.

Podíváme-li se blíže na skupinu Access „Secure Employees“, níže je vidět, že její členové pocházejí ze skupiny „Employees“ u firemního poskytovatele identity (IdP) Okta. Skupina Access dále vynucuje vícefaktorové ověřování (MFA).

U aplikace „Image and Video Gallery“ mohou zákazníci v sekci „Authentication“ také ručně vybrat poskytovatele identity, které mohou uživatelé použít pro připojení k této aplikaci.

Nyní máme zabezpečený přístup k origin serveru (serverům) prostřednictvím Tunnel a zároveň ověřovací a přístupové politiky k aplikaci prostřednictvím Access. Když se uživatelé pokusí přistoupit na web, zobrazí se jim stránka Cloudflare Access s výzvou k autentizaci pomocí nakonfigurovaného IdP; tuto stránku lze podle přání zákazníka přizpůsobit, jak je znázorněno níže.

Používání dalších služeb Cloudflare (CDN, WAF, Security Analytics atd.)
V aktuálním nastavení jsou origin servery bezpečně připojeny k síti Cloudflare prostřednictvím Cloudflare Tunnel a Cloudflare Access pomocí zásad, které vynucují ověřování a další bezpečnostní požadavky.
Protože je Cloudflare již nastaven a funguje jako reverzní proxy pro daný web, veškerý provoz je směrován přes Cloudflare, takže lze snadno využít všechny služby Cloudflare, včetně CDN, Security Analytics, WAF, API Shield, Bot Management, zabezpečení na straně klienta a dalších.
Když klient odešle požadavek na vyhledání DNS pro příslušný web, v tomto případě „cftestsite3.com“, Cloudflare vrátí adresu anycast IP, takže veškerý provoz směřuje do nejbližšího datacentra, kde se na požadavek uplatní všechny služby ještě předtím, než je přesměrován přes Cloudflare Tunnel na původní server (servery).
Cloudflare CDN využívá globální anycastovou edge síť Cloudflare. Kromě využití anycastu pro výkon a odolnost sítě Cloudflare CDN využívá také Argo Tiered Cache k dosažení optimalizovaných výsledků při současné úspoře nákladů pro zákazníky. Zákazníci mohou také povolit Argo Smart Routing k nalezení nejrychlejší síťové cesty pro směrování požadavků na origin server. Jak je vidět níže, Cloudflare CDN nyní ukládá obsah do mezipaměti globálně a lze uplatnit podrobné zásady CDN, které ovlivňují výchozí chování.

Existují různé dostupné topologie a konfigurace ukládání do mezipaměti. Níže vidíte nakonfigurované Cache Rule, které ukládá požadavky na danou doménu do mezipaměti a přepisuje TTL origin serveru.

Cloudflare Cache Reserve je také aktivováno kliknutím na tlačítko "Enable storage sync" v části "Caching > Cache Reserve" v dashboardu. Cache Reserve využívá trvalé objektové úložiště Cloudflare R2 k odstranění nákladů na odchozí přenos dat u jiných veřejných cloudových poskytovatelů. Zvyšuje poměr zásahů v mezipaměti tím, že zákazníkům umožňuje trvale ukládat data do mezipaměti jediným kliknutím.

Jak je vidět níže, Cloudflare Security Analytics navíc spojuje všechny detekční schopnosti Cloudflare a poskytuje globální přehled a důležité poznatky o veškerém provozu směřujícím na daný web. Protože provoz je směrován přes síť Cloudflare, má Cloudflare přehled o hrozbách a poznatcích, které klientům zpřístupňuje v dashboardu, logách a reportech.

Pravidla Cloudflare WAF lze uplatnit tak, aby prosazovala zásady přímo v provozu. Níže je nastavena zásada firewallu, která zaznamenává veškerý provoz s bot score < 30 a WAF attack score < 50. Bot score < 30 označuje veškerý provoz klasifikovaný jako automatizovaný nebo pravděpodobně automatizovaný a WAF attack score < 50 označuje veškerý provoz klasifikovaný jako škodlivý nebo pravděpodobně škodlivý.

Cloudflare WAF umožňuje granulární zásady, které mohou využívat řadu různých kritérií požadavků včetně informací v hlavičkách. Zákazníci mohou přistoupit řada akcí včetně protokolování, blokování a výzvy k ověření.

Zákazníci mohou pomocí WAF vytvářet a používat custom rules, rate limiting rules a managed rules. Stručný popis každé z nich najdete níže.
- WAF Custom Rules: umožňuje vytvářet vlastní pravidla na základě různých atributů požadavku a informací v hlavičkách a blokovat tak libovolnou hrozbu
- WAF Rate Limiting Rules: zabraňuje zneužití, útokům DDoS a pokusům o prolomení hrubou silou a poskytuje kontroly zaměřené na API.
- WAF Managed Rules
- Cloudflare Managed Ruleset: poskytuje pokročilou ochranu před zero-day zranitelnostmi
- Cloudflare OWASP Core Ruleset: blokování běžných zranitelností webových aplikací, z nichž některé jsou součástí žebříčku OWASP top 10
- Cloudflare Leaked Credential Check: kontroluje databázi vyzrazených přihlašovacích údajů pro oblíbené aplikace typu CMS (systémy pro správu obsahu)
Stejná metodika platí pro všechny ostatní produkty Cloudflare Application Performance and Security (API Shield, Bot Management a další): jakmile je provoz nakonfigurován tak, aby procházel sítí Cloudflare, mohou zákazníci začít využívat služby Cloudflare. Obrázek 31 zobrazuje Cloudflare Bot Analytics, které provoz kategorizuje podle bot score, zobrazuje rozložení bot score a další statistiky týkající se botů. Veškerá data o požadavcích se zachytávají inline a stejně inline probíhá i vynucování na základě definovaných zásad.

Souhrn
Cloudflare nabízí komplexní služby pro výkon a zabezpečení aplikací. Zákazníci mohou snadno provést onboarding a začít využívat všechny služby pro výkon a zabezpečení tím, že nasměrují provoz na své origin servery přes síť Cloudflare. Cloudflare navíc nabízí několik možností konektivity, včetně Cloudflare Tunnel pro zabezpečené připojení origin serverů k síti Cloudflare.