Jak navrhnout FW pravidla v Azure s NSG a ASG

Pokud z nějakého důvodu nemůžete použít platformní službu (PaaS), možná stojíte před úkolem jak nastavit firewall pravidla pro aplikaci ve VM, která má dvojici webových serverů přístupných z venku a dvě databázové VM. Jak to udělat? Mikrosegmentace per VM? Nebo pravidla na subnet? A co aplikační objekty s ASG? Podívejme se dnes na čtyři způsoby jak to navrhnout a výhody či nevýhody každého z nich.

Možnosti filtrování komunikace v IaaS v Azure

Doporučuji maximálně využívat nativních prostředků Azure softwarově definované sítě. Je to totiž distribuované řešení (neřešíte sizing, neomezuje vás rychlostně) a je zdarma. Základním kamenem je Network Security Group, což je stavový L4 firewall implementovaný přímo v SDN fabric (tedy nejde o virtuální krabičku, ale skutečně vlastnost síťového stacku). V pravidelech používáte cílové a zdrojové IP rozsahy případně servisní tagy (o tom jindy – v zásadě objekty představující nějaký výčet IP adres, například public IP svět mimo Azure označovaný jako Internet nebo naopak právě používané public IP pro některé platformní služby, například Azure SQL) a TCP/UDP porty. Tuto NSG můžete aplikovat přímo na jedno konkrétní VM (čistokrevná mikrosegmentace). Neznamená to dovnitř VM (s firewallem vevnitř to nemá nic společného), ale na její virtuální síťvou kartu – implementaci filtrování provádí hostitel. Druhou možností je aplikovat NSG na subnet VNETu a pravidla se pak aplikují na všechny současné i budoucí VM v subnetu.

Co když chcete víc, třeba L7 pravidla, WAFku, IPS a tak podobně? Azure nabízí například Application Gateway (L7 brána/proxy + WAFka) nebo můžete použít virtuální síťovou appliance třetí strany – Azure podporuje mimo jiné Cisco, Fortinet, Check Point, Palo Alto, F5, Imperva, Barracuda a další. Můžete tak použít systém co znáte, mít jednotnou správu pravidel apod. Na druhou stranu nepřehánějte to. Každá virtuální krabička nese náklady za VM v Azure (nebo poplatek za Application Gateway pokud použijete Microsoft řešení) a ještě víc za licence výrobci zařízení. Filtrovat takhle provoz mezi VM mi nedává sebemenší smysl z pohledu požadovaného výkonu, flexibility a cenovky. Potřebujete enterprise firewall na north-south traffic, tedy vystavení služeb do Internetu? Dobré využití. Potřebujete firewall na oddělení/propojení dvou projektů, které pro vás spravují různé firmy a komunikaci mezi nimi potřebujete hlídat enterprise firewallem? Také dobrý nápad. Chcete oddělit webovou vrstvu od DB? Výrazně doporučuji NSG.

Vyzkoušejme čtyři odlišné designy řešení

Vytvoříme si následující infrastrukturu. Dva webové servery, které mají do Internetu vystavit port 80 a dva DB servery, které mají mít otevřený port 1433, ale jen pro webové servery, ne pro ostatní VM ve VNETu nebo z Internetu. Napadají mě čtyři scénáře: per-VM pravidla, per-subnet pravidla, kombinace obojího a použití aplikačních objektů (ASG).

V následujících příkladech nebudu řešit pravidla pro správu (SSH, RDP) ani load balancer. Ty tam pravděpodobně budete mít, ale chceme si to pro pochopení principů co nejvíc zjednodušit.

Pokračovat ve čtení