Dva návrhy pokrývají téměř každé nastavení VPN bez dozoru: sdílené lidské přihlášení držené ve skriptu, nebo certifikát stroje vázaný na hostitele. Selhávají na různých místech, což je důležitější než rychlost nastavení. Uložené heslo se rozbije, když je jeho vlastník změní nebo odejde; certifikát se rozbije, když vyprší nebo když je hostitel přestavěn bez klíče. Tři podmínky rozhodují, jakou cenu unesete, a ani jeden návrh nic neomezuje, dokud to neudělá autorizační zásada.

Začněte od úkolu, ne od účtu

Úkol definuje hranici: které cíle, které služby, které hodiny, jak dlouho může relace běžet. Trasa tunelu je jen polovina této hranice. Brána rozhoduje, zda je relace povolena; prostředek za ní rozhoduje, co relace může dělat. Nejprve napište seznam, s pojmenovaným vlastníkem, protože oba návrhy identity jej musí splnit.

Při zapisování držte autentizaci a autorizaci oddělené. Autentizace odpovídá, kdo se připojuje; autorizace odpovídá, kam se relace poté může dostat. RADIUS nese druhou část jako atributy, například Filter-Id, Framed-IP-Address, Session-Timeout a Class, a brána je připojí, jakmile přihlášení uspěje. Návrh, který vymění přihlášení a autorizaci nechá nedotčenou, nic neomezil.

Sdílené lidské přihlášení: heslo se stává hranicí

Opětovné použití lidského účtu je nejrychlejší cesta a ta, která nejhůř stárne. Přihlašovací údaj je heslo, takže skončí ve skriptu, v souboru prostředí a v konfiguraci plánovače a každá kopie potřebuje rotaci. Když jej vlastník v pátek změní, úloha při příštím spuštění selže a nikdo se nedívá.

MFA je místo, kde se tento návrh obvykle hroutí. Skript neumí odpovědět na push výzvu, takže se účet vyjme ze zásady, a to je právě účet, který by si útočník vybral. Výjimky, obcházení důvěryhodné polohy a osvobození pro jednotlivé účty se množí a žádné není viditelné pro dalšího člověka, který čte nastavení tenanta.

Přisouzení je další cena. Každá relace v protokolu brány nese stejné uživatelské jméno, takže noční synchronizaci nelze rozeznat od práce člověka, který ji napsal, a odebrání úlohy znamená odebrání toho člověka.

Certifikát stroje: identita vázaná na hostitele

Certifikát mění otázku z toho, co účet zná, na to, co je hostitel. S EAP-TLS klient předloží certifikát a prokáže držení odpovídajícího soukromého klíče; server zásad namapuje subjekt nebo počítačový účet na skupinu a použije zásadu pro tuto skupinu. Žádná výzva, žádné sdílené tajemství ležící v textovém souboru.

Hranice, kterou vytváří, je užší, než lidé čekají. Certifikát autentizuje hostitele, ne úlohu, a kdokoli s právy root nebo místního správce může tento klíč na tomto hostiteli použít. Držte klíč tam, kde jej platforma chrání: neexportovatelný v úložišti certifikátů Windows, s podporou TPM, kde to profil dovolí, nebo soubor 0600 vlastněný rootem v Linuxu. Kompromitace hostitele je kompromitace přihlašovacího údaje.

Vypršení platnosti je opakovaná porucha. Certifikát, který vyprší v neděli, zastaví úlohu v neděli a brána obvykle hlásí obecné selhání autentizace, místo aby uvedla datum. Ověřujte data z hostitele úlohy jako součást runbooku:

openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts

Odvolání potřebuje cestu, kterou brána kontroluje. OpenVPN čte CRL přes volbu crl-verify a strongSwan závisí na CRL nebo OCSP podle toho, jak je profil připojení postaven. Pokud není zapojeno ani jedno, odstranění hostitele znamená čekat, až certifikát vyprší.

Tři podmínky, které rozhodují mezi nimi

Srovnávejte s platformou, kterou máte, ne s referenčním návrhem.

První podmínka: dokáže brána autorizovat identitu stroje? Pokud pouze mapuje uživatelské jméno RADIUS na uživatele v adresáři, certifikát autentizuje hostitele a pak se zasekne na autorizaci. Druhá podmínka: potřebuje úloha přístup k prostředku, který nese jen uživatelský účet, jako namapovaná sdílená složka nebo licence na sedadlo? Pak identita stroje nemůže nahradit a poctivá odpověď je vyhrazený uživatelský účet s omezenou zásadou. Třetí podmínka: kdo může rotovat přihlašovací údaj bez člověka ve smyčce? Automatický zápis dělá certifikáty levnými na udržování; heslo, které zná jeden člověk, ne.

ConstraintMachine certificateDedicated user account with stored secret
Unattended loginPrivate key proof, no promptOnly if the account is exempted from MFA
Resource expects a user identityWorks only when the resource accepts computer accountsMatches the access a person would have
RotationRe-enrollment, often automatedSecret change plus redeploy of every copy
Revocation speedTied to CRL or OCSP refreshDisable the account, immediate

Čtěte tabulku jako seznam nákladů, ne jako žebříček. Sloupec s uloženým tajemstvím vítězí v rychlosti odvolání a ve slučitelnosti s prostředky, které rozumí jen uživatelským účtům; sloupec s certifikátem vítězí v rotaci a v tom, že neoslabuje MFA, aby skript fungoval.

Vložte limit do zásady, po autentizaci

Ať zvolíte jakoukoli identitu, limit oprávnění patří do zásady, která běží po autentizaci. V NPS se síťové zásady vyhodnocují v pořadí a první zásada, která odpovídá každé podmínce, použije svá nastavení, takže široká zásada umístěná nad úzkou rozhoduje o výsledku bez ohledu na to, co klient předloží. Microsoft dokumentuje model podmínek a nastavení ve svém přehledu zásad NPS.

Dejte úloze vlastní skupinu nebo podmínku zásady založenou na něčem, co identita stroje nese: šablona certifikátu, identifikátor volající stanice nebo adresa z vyhrazeného poolu. Poté ohraničte relaci atributy: Filter-Id pro roli, na kterou ji vaše brána mapuje, krátký Session-Timeout, aby se zaseknutá úloha znovu autentizovala místo držení relace celé dny, a Framed-IP-Address z poolu, který na druhé straně filtrujete firewallem. Autorizace aplikace zůstává oddělená: tunel k databázovému serveru není oprávnění číst tabulku uvnitř.

Ověřte odmítnutí, pak naplánujte odstranění

Přístup, který funguje, nic nedokazuje o nejmenším oprávnění. Otestujte místo toho odmítnutí: připojte se s identitou úlohy a zkuste dosáhnout cíle mimo seznam, otevřete druhou souběžnou relaci, pokud má brána povolit jen jednu, a zopakujte přihlášení po odvolání přihlašovacího údaje.

Poté potvrďte stejnou relaci na dvou místech. Protokol brány ukazuje identitu, která se autentizovala; protokol serveru zásad ukazuje, která zásada odpovídala a které atributy vrátila. Na OpenVPN server zaznamenává běžný název certifikátu a ipsec statusall na strongSwan vypisuje navázaný tunel s používanou identitou. Pokud se oba protokoly o identitě neshodují, zásada odpovídá něčemu jinému, než předpokládáte.

Odstranění patří do návrhu, ne do úklidového sprintu. Zapište vše, co je třeba smazat (certifikát nebo účet, členství ve skupině, síťová zásada, položka poolu, pravidlo firewallu na cíli), a proveďte to jednou, dokud je úloha snadno znovu postavitelná.

Pokud začínáte dnes, pracujte v tomto pořadí: napište seznam prostředků, vyberte identitu podle tří podmínek, vložte limit do zásady a procvičte jedno odmítnutí, než úloha půjde do provozu.

Související články