markdown
Firewall-a-zony.md
markdown
# Firewall a zóny Firewall rozhoduje, který provoz smí projít. Zní to jednoduše a v principu to jednoduché je — komplikované je to jen tím, že každý výrobce tomu říká jinak. ## Stavovost Moderní firewall si pamatuje, jaká spojení jsou otevřená. Když povolíš odchozí požadavek, odpověď na něj se propustí automaticky. To vysvětluje, proč doma vystačíš s velmi malou sadou pravidel. Nemusíš psát „povol odpovědi z webserverů" — firewall ví, že jsi si o ně řekl. Stavy, které se v pravidlech objevují: - **NEW** — první paket nového spojení- **ESTABLISHED** — patří k už otevřenému spojení- **RELATED** — souvisí s otevřeným spojením (třeba datové spojení FTP)- **INVALID** — nedává smysl, obvykle se zahazuje Základní kostra každého firewallu je pak: povol ESTABLISHED a RELATED, zahoď INVALID, a pak řeš NEW podle svých pravidel. Souvislosti s TCP jsou v [porty a spojení](Porty-a-spojeni). ## Směr, ne jen adresa Pravidlo musí vždycky říct, kterým směrem provoz teče. Nejčastější kategorie: | Směr | Co to je | Výchozí nastavení ||---|---|---|| Internet → dovnitř | někdo zvenku se hlásí k tobě | zakázat || Dovnitř → internet | tvoje zařízení jde ven | povolit || VLAN → VLAN | mezi tvými sítěmi | zakázat, povolovat výjimky || → do routeru samotného | správa, DNS, DHCP | opatrně | Ta poslední kategorie se přehlíží. Provoz **na** router (jeho webové rozhraní, SSH, DNS) je něco jiného než provoz **přes** router. V iptables je to rozdíl mezi řetězcem INPUT a FORWARD, v UniFi mezi „Local" a „LAN In". Když si chceš zakázat správu routeru z IoT sítě, potřebuješ pravidlo té první kategorie. Zakázání provozu mezi VLANami na to nestačí. ## Pořadí rozhoduje Pravidla se vyhodnocují **shora dolů a první shoda vyhrává**. Zbytek se už nečte. To znamená, že tohle pořadí je nefunkční: ```1. zakázat IoT → všude2. povolit IoT → DNS server``` Druhé pravidlo se nikdy nepoužije. Musí být první. Praktické doporučení: výjimky nahoru, obecné zákazy dolů, a na konci výchozí politika. ## Zóny Novější systémy včetně UniFi 9 opustily seznam pravidel ve prospěch **zón**. Sítě zařadíš do skupin a pak popisuješ vztahy mezi skupinami, ne mezi jednotlivými sítěmi. Typické zóny: `Internal` (hlavní síť), `IoT`, `Guest`, `Cameras`, `VPN`, `External` (internet), `Gateway` (router sám). Výhoda je v tom, že matice zón se čte na jeden pohled, zatímco třicet řádků pravidel ne. Když přidáš novou síť, zařadíš ji do zóny a pravidla platí automaticky. Pokud přecházíš ze starého rozhraní, počítej s tím, že se logika pravidel převede, ale ne vždy elegantně. Vyplatí se to po migraci projít ručně. ## Návrh pro domácnost Výchozí bod, který se dá použít skoro všude: ```1. Povol ESTABLISHED + RELATED (odpovědi na vlastní požadavky)2. Zahoď INVALID3. Povol Hlavní → kamkoliv4. Povol Hlavní → správa zařízení5. Zakaž IoT → jakákoliv vnitřní síť6. Zakaž Kamery → internet7. Zakaž Hosté → jakákoliv vnitřní síť8. Zakaž cokoliv → webové rozhraní routeru, kromě Hlavní9. Výchozí: zakázat mezi sítěmi, povolit ven``` Kamery bez přístupu na internet je bod, který stojí za zmínku. Většina levných kamer volá domů. Když jim to zakážeš, přestane fungovat výrobcova aplikace, ale kamera i nadále nahrává na tvůj NVR. To je obvykle přesně to, co chceš. ## Logování Zapni logování na zahazovacích pravidlech, aspoň dočasně. Bez toho hádáš. Zároveň to nenech zapnuté napořád na pravidlu, které zahazuje provoz z internetu — zaplníš si úložiště za pár dní. Internet je hlučný a někdo ti klepe na dveře každou minutu. ## Jak si to ověřit Konfigurace, kterou jsi neověřil, je jen názor. **Zevnitř:** zkus se z IoT VLANy dostat na NAS. Nemělo by to jít. ```nmap -Pn 192.168.10.20``` **Zvenku:** z mobilu na datech zkus, co je vidět. ```nmap -Pn tvoje.verejna.adresa``` Test z domácí sítě na vlastní veřejnou adresu je nespolehlivý, protože ne každý router umí hairpin NAT. Viz [NAT](NAT-a-port-forwarding). **Nezapomeň na IPv6.** Ve starším rozhraní UniFi jsou pravidla pro IPv4 a IPv6 v oddělených záložkách a je snadné zajistit síť jen napůl. Prověř obojí. ## Co firewall neumí Nevidí do šifrovaného provozu. Když je něco v HTTPS, firewall vidí cílovou adresu a port, ne obsah. Filtrování podle obsahu vyžaduje buď [reverse proxy](Vzdaleny-pristup), nebo rozbalování TLS, což doma dělat nechceš. Nechrání proti tomu, co si sám pustíš dovnitř. Malware ve stažené příloze si spojení ven naváže sám a firewall mu ochotně pomůže, protože odchozí provoz je povolený. Nezastaví provoz, který k němu nedorazí. Dvě zařízení ve stejné VLANě spolu mluví přímo přes switch. Proto [VLANy](VLANy).