Dajte používateľom VPN prístup k jednej službe, nie k podsieti
Úzka trasa nie je autorizačná politika. Rozhodnite, kde sa nachádza vynucovanie, aký zdroj služba vidí a ako zostávajú roly aplikácie oddelené.
Dodávateľ potrebuje jednu internú webovú aplikáciu a nič iné, a ľahká odpoveď je dať mu tunel do podsiete servera. Funguje to do dňa, keď ju naskenuje. Užší návrh si vyžaduje viac premýšľania, pretože dosiahnuteľnosť, smerovanie a povolenie aplikácie sú tri oddelené kontroly, ktoré sa musia zhodovať.
Napíšte požiadavku ako službu, nie ako podsieť
Začnite cieľovým hostiteľom, protokolom a portom, potom pridajte skupinu používateľov alebo zariadení, ktorá sa k nemu má dostať. Zahrňte privátnu zónu DNS len vtedy, ak aplikácia prekladá názov, a poskytovateľa identity len vtedy, ak ho prihlasovací tok potrebuje. Všetko ostatné je závislosť, ktorú ste zatiaľ neodôvodnili.
Podsieť je implementačný detail sieťového tímu, zatiaľ čo služba je to, čo si vyžiadal biznis, a jednotka, ktorú možno preskúmať a vyradiť.
Ak zoznam závislostí prekročí tri položky, aplikácia pravdepodobne potrebuje vlastnú dizajnovú diskusiu.
Smerujte úzko, ale vynucujte inde
Úzka trasa alebo selektor hovorí tunelu, ktoré pakety má niesť; nie je to autorizačná politika. Filter brány, firewall cieľového hostiteľa a vlastný model povolení aplikácie sú miesta, kde sa rozhoduje o prístupe. Trasa pokrývajúca jednu adresu je dobrý začiatok a nie je to kontrola, ktorá zastaví odhodlaného používateľa. Práve toto oddelenie vám umožní zmeniť filter bez prepracovania tunela.
Naopak, široká trasa s prísnym filtrom môže byť legitímna, ale len ak všetci zúčastnení vedia, ktorá z nich vykonáva vynucovanie.
Vynucovací bod zdokumentujte výslovne, inak ho ďalšia zmena omylom presunie.
Skontrolujte zdroj, ktorý služba skutočne vidí
Cieľ vidí buď adresu z fondu klienta, alebo adresu brány, podľa toho, či prekladáte. Pravidlá firewallu hostiteľa a záznamy musia zodpovedať skutočnému zdroju. Ak niekoľko používateľov zdieľa preložený zdroj, žiadne pravidlo pre jednotlivého používateľa na tomto hostiteľovi ich nemôže rozlíšiť, a to je obmedzenie návrhu, nie chyba.
Preklad vyberajte zámerne: zjednodušuje smerovanie a ničí identitu zdroja, čo je dôležité pre audit a pravidlá pre jednotlivých používateľov.
Zapíšte, ktorú z dvoch možností ste vybrali, vedľa pravidla, ktoré od nej závisí.
Autorizácia aplikácie nie je voliteľná
Dosiahnutie portu neudeľuje rolu. Aplikácia stále potrebuje vlastné prihlásenie a vlastné povolenia, pretože sieťová vrstva nedokáže vyjadriť, ktoré záznamy môže používateľ upravovať. Služba, ktorá dôveruje každej požiadavke z internej podsiete, mení úzky tunel na plný prístup pre jeden kompromitovaný údaj. Tunel rozhoduje, kto smie otvoriť socket, a aplikácia rozhoduje, čo s ním možno robiť.
Tu sa úzky návrh vypláca dvakrát, pretože menej dosiahnuteľných hostiteľov znamená menej miest, kde možno zneužiť chybu na úrovni aplikácie.
Držte sieťové pravidlo a rolu aplikácie v oddelených systémoch a vyraďujte ich oddelene.
Dokážte povolenú aj zamietnutú cestu
Pripojte sa ako autorizovaný používateľ a vykonajte jednu neškodnú reprezentatívnu operáciu, potom skúste cieľ, ktorý má byť nedosiahnuteľný. Návrh, ktorý testuje len prvú polovicu, nie je otestovaný, a práve zamietnutý test dokazuje návrh. Testujte čerstvú reláciu po každej zmene pravidla a pozrite sa na spätnú cestu, ak požiadavky prichádzajú, ale odpovede nie.
Nevypínajte filtre preposielania, aby prešiel akceptačný test, pretože to mení vec, ktorá sa testuje.
Keď používateľ službu už nepotrebuje, vyraďte vzdialenú identitu a rolu aplikácie v ich príslušných systémoch a zaznamenajte obe. Príručka preposielania strongSwan pokrýva stranu brány na tejto ceste.