Dejte uživatelům VPN přístup k jedné službě, ne k podsíti
Úzká trasa není autorizační politika. Rozhodněte, kde se vynucení odehrává, jaký zdroj služba vidí a jak zůstávají role aplikace oddělené.
Dodavateli stačí jedna interní webová aplikace a nic jiného, a snadná odpověď je dát mu tunel do podsítě serveru. Funguje to do dne, kdy ji oskenuje. Užší návrh vyžaduje víc přemýšlení, protože dosažitelnost, směrování a oprávnění aplikace jsou tři oddělené kontroly, které se musí shodnout.
Zapište požadavek jako službu, ne jako podsíť
Začněte cílovým hostitelem, protokolem a portem, pak přidejte skupinu uživatelů nebo zařízení, která se k němu má dostat. Privátní zónu DNS zahrňte jen tehdy, pokud aplikace překládá název, a poskytovatele identity jen tehdy, pokud ho přihlašovací tok potřebuje. Vše ostatní je závislost, kterou jste zatím neodůvodnili.
Podsíť je implementační detail síťového týmu, zatímco služba je to, co si vyžádal byznys, a jednotka, kterou lze zkontrolovat a vyřadit.
Pokud seznam závislostí přesáhne tři položky, aplikace pravděpodobně potřebuje vlastní návrhovou debatu.
Směrujte úzce, ale vynucujte jinde
Úzká trasa nebo selektor říká tunelu, které pakety má nést; není to autorizační politika. Filtr brány, firewall cílového hostitele a vlastní model oprávnění aplikace jsou místa, kde se rozhoduje o přístupu. Trasa pokrývající jednu adresu je dobrý začátek a není to kontrola, která zastaví odhodlaného uživatele. Právě toto oddělení vám umožní změnit filtr, aniž byste tunel přepracovali.
Naopak široká trasa s přísným filtrem může být legitimní, ale jen pokud všichni zúčastnění vědí, který z nich vynucení provádí.
Vynucovací bod zdokumentujte výslovně, jinak ho příští změna omylem přesune.
Zkontrolujte zdroj, který služba skutečně vidí
Cíl vidí buď adresu z poolu klienta, nebo adresu brány, podle toho, zda překládáte. Pravidla firewallu hostitele a protokoly musí odpovídat skutečnému zdroji. Pokud několik uživatelů sdílí přeložený zdroj, žádné pravidlo pro jednotlivého uživatele na tomto hostiteli je nemůže rozlišit, a to je návrhové omezení, ne chyba.
Vyberte překlad záměrně: zjednodušuje směrování a ničí identitu zdroje, což je důležité pro audit a pravidla pro jednotlivé uživatele.
Zapište, kterou ze dvou možností jste zvolili, vedle pravidla, které na ní závisí.
Autorizace aplikace není volitelná
Dosažení portu nepřiděluje roli. Aplikace stále potřebuje vlastní přihlášení a vlastní oprávnění, protože síťová vrstva nedokáže vyjádřit, které záznamy smí uživatel upravovat. Služba, která důvěřuje každému požadavku z interní podsítě, mění úzký tunel v plný přístup pro jeden kompromitovaný údaj. Tunel rozhoduje, kdo smí otevřít socket, a aplikace rozhoduje, co s ním smí dělat.
Tady se úzký návrh vyplácí dvakrát, protože méně dosažitelných hostitelů znamená méně míst, kde lze zneužít chybu na úrovni aplikace.
Držte síťové pravidlo a roli aplikace v oddělených systémech a vyřazujte je odděleně.
Dokažte povolenou i zamítnutou cestu
Připojte se jako autorizovaný uživatel a proveďte jednu neškodnou reprezentativní operaci, pak zkuste cíl, který má být nedosažitelný. Návrh, který testuje jen první polovinu, není otestovaný, a právě zamítnutý test dokazuje návrh. Testujte čerstvou relaci po každé změně pravidla a podívejte se na zpáteční cestu, pokud požadavky dorazí, ale odpovědi ne.
Nevypínejte filtry předávání, aby prošel akceptační test, protože to mění věc, která se testuje.
Když uživatel službu už nepotřebuje, vyřaďte vzdálenou identitu a roli aplikace v jejich příslušných systémech a obojí zaznamenejte. Průvodce předáváním strongSwan pokrývá stranu brány na této cestě.