Umístění dvou klientských skupin do různých podsítí vypadá jako izolace, a není. Adresy popisují, odkud paket zdánlivě přichází, zatímco povolení je rozhodnutí toho, kdo ho předává. Na tuto otázku odpovídá konfigurace, ne maska, takže rozhodněte, která komponenta předává provoz mezi partnery, než napíšete jakékoli pravidlo.

Podsíť je označení, ne pravidlo

Přidělení jednoho poolu na skupinu vám dá čitelné adresy a nic víc. Klient, který přijme další trasu, získal dosažitelnost, a dosažitelnost není oprávnění. Povolení mluvit spočívá v rozhodnutí o předávání, které může žít v démonu nebo v jádru podle toho, jak je server nakonfigurován.

Vlastnictví adresy je to, co dělá prefix použitelným jako selektor skupiny. Každá ověřená identita musí odpovídat předvídatelné adrese nebo rozsahu a toto mapování selže, jakmile několik zařízení sdílí jeden údaj a jedno přidělení. Vyřešte identitu a souběžnost dřív, než se spolehnete na prefix zdroje, protože politika, která hádá, který stroj volá, oprávní ten špatný v nejhorší okamžik.

Zvolte cestu, která nese provoz mezi partnery

Když démon předává pakety partnerů uvnitř svého procesu, tyto pakety nikdy nedosáhnou háku předávání hostitele, takže je pravidlo jádra nemůže vidět. Vypněte toto vnitřní předávání a jádro se stane bodem předávání, kde platí běžná pravidla předávání.

# peer forwarding inside the daemon: enforce with per-group policy instead of FORWARD rules
client-to-client
# kernel forwarding path: remove the line above, then filter in the forward chain

Odlehčené datové kanály a servery spravované produktem zveřejňují vlastní modely prosazení, takže ověřte, který z nich používáte, místo abyste předpokládali chování komunity. Selhání, kterému stojí za to se vyhnout, je pravidlo, které vypadá správně při kontrole a nikdy se za běhu nevyhodnotí.

Napište matici dřív než pravidla

Krátká matice se kontroluje snáz než sada pravidel a je to smlouva, kterou musí implementace splnit: partneři stejné skupiny povoleni, partneři napříč skupinami zakázáni, obě skupiny smějí k jedné pojmenované sdílené službě, vše ostatní zakázáno. Napište tyto čtyři řádky, než otevřete editor firewallu. Recenzent, který nečte syntaxi pravidel, přesto matici zkontroluje. Implementace pak musí jen odpovídat řádkům.

SourceDestinationDecision
Group A addressAnother Group A addressAllow
Group A addressA Group B addressDeny
Either groupThe shared internal serviceAllow
Either groupAnything not listedDeny

Při psaní držte tři třídy cílů oddělené. Služba na hostiteli VPN je lokální vstup, jiný klient je tranzit mezi partnery a stroj za bránou je jiná cesta předávání. Jedno velkorysé pravidlo může omylem povolit všechny tři, a tak se skupinová politika mění v plochou síť s kroky navíc. Napište třídu vedle každého řádku, aby záměr přežil další úpravu.

Umístěte pravidla tam, kde přežijí

Přidávejte rozhodnutí na stejné místo, kde se udržuje zbytek firewallu, před každé povolovací pravidlo, které by je jinak pohltilo. Pořadí pravidel je součást politiky a správné pravidlo za širokým povolením neprosadí nic. Poznamenejte si čísla pravidel před změnou a po ní. Politika, která existuje v editoru, ale ne v běžící sadě pravidel, je plán, ne kontrola.

Rozhodněte, co se stane s toky, které už existují, když se politika změní, protože relace otevřená před změnou může běžet dál. Pokud odcházející člen musí ztratit přístup okamžitě, sada pravidel potřebuje způsob, jak tento stav ukončit, místo aby čekala, až se spojení samo zavře.

Uchovejte pravidla mechanismem, který vlastní zbytek firewallu, a matici zaznamenejte vedle nich. Nezaznamenaná politika se při dalším incidentu znovu odvozuje z paměti, obvykle někým ve spěchu.

Dokažte to z obou stran

Otestujte dosažitelnost v rámci skupiny, selhání mezi skupinami a sdílenou službu z jednoho klienta v každé skupině. Jediný test z jednoho klienta dokáže polovinu matice a polovina, kterou vynechá, je obvykle ta špatná. Zopakujte směr zakázání dvakrát, protože uložená relace může skrýt chybu prosazení. Zaznamenejte, kterou dvojici jste testovali, aby ji příští člověk neopakoval.

Zopakujte kontrolu na IPv6, pokud ho tunel přenáší, a ponechte běžné ověřování aplikací. Prefix zdroje není účet, takže projití síťové politiky neznamená, že by služba měla volajícímu věřit.

Související články