Prístup k VPN pre servisný účet: certifikát alebo zdieľané prihlásenie
Porovnajte certifikát stroja s uloženým heslom pre VPN prístup bez obsluhy a skutočný limit oprávnení vložte do politiky, ktorá sa spúšťa po prihlásení.
Dve riešenia pokrývajú takmer každé VPN nastavenie bez obsluhy: zdieľané ľudské prihlásenie uložené v skripte alebo certifikát stroja viazaný na hostiteľa. Zlyhávajú na rôznych miestach a to je dôležitejšie ako rýchlosť nastavenia. Uložené heslo sa pokazí, keď ho vlastník zmení alebo odíde; certifikát sa pokazí, keď vyprší alebo keď sa hostiteľ prestavia bez kľúča. Tri podmienky rozhodujú, ktorú cenu unesiete, a ani jedno riešenie nič neobmedzuje, kým to neurobí autorizačná politika.
Začnite úlohou, nie účtom
Úloha určuje hranicu: ktoré ciele, ktoré služby, v akých hodinách, ako dlho môže relácia trvať. Trasa tunela je len polovica tej hranice. Brána rozhoduje, či je relácia povolená; zdroj za ňou rozhoduje, čo relácia môže robiť. Najprv napíšte zoznam, s menovaným vlastníkom, pretože obe riešenia identity ho musia splniť.
Kým to zapisujete, držte autentifikáciu a autorizáciu oddelene. Autentifikácia odpovedá, kto sa pripája; autorizácia odpovedá, kam sa relácia môže dostať potom. RADIUS prenáša druhú časť ako atribúty, napríklad Filter-Id, Framed-IP-Address, Session-Timeout a Class, a brána ich pripojí, keď prihlásenie uspeje. Riešenie, ktoré vymení prihlásenie a autorizáciu nechá tak, nič neobmedzilo.
Zdieľané ľudské prihlásenie: heslom sa stáva hranica
Opätovné použitie ľudského účtu je najrýchlejšia cesta a tá, ktorá starne najhoršie. Prihlasovacím údajom je heslo, takže skončí v skripte, v súbore prostredia a v konfigurácii plánovača, a každá kópia potrebuje rotáciu. Keď ho vlastník zmení v piatok, úloha pri ďalšom spustení zlyhá a nikto sa nepozerá.
MFA je miesto, kde sa toto riešenie zvyčajne zrúti. Skript nevie odpovedať na push požiadavku, takže účet sa vylúči z politiky, a to je presne ten účet, ktorý by si útočník vybral. Výnimky, obchádzanie dôveryhodných miest a oslobodenia pre jednotlivé účty sa množia a žiadne z nich nie je viditeľné pre ďalšieho, kto číta nastavenia nájomcu.
Priradenie je druhá cena. Každá relácia v denníku brány nesie rovnaké používateľské meno, takže nočnú synchronizáciu nemožno odlíšiť od práce človeka, ktorý ju napísal, a odvolanie úlohy znamená odvolanie toho človeka.
Certifikát stroja: identita viazaná na hostiteľa
Certifikát mení otázku z toho, čo účet vie, na to, čím hostiteľ je. Pri EAP-TLS klient predloží certifikát a preukáže vlastníctvo zodpovedajúceho súkromného kľúča; server politiky priradí subjekt alebo počítačový účet ku skupine a použije politiku tej skupiny. Žiadna výzva, žiadne zdieľané tajomstvo v textovom súbore.
Hranica, ktorú vytvára, je užšia, než ľudia čakajú. Certifikát autentifikuje hostiteľa, nie úlohu, a ktokoľvek s právami root alebo lokálneho administrátora môže ten kľúč na tom hostiteľovi použiť. Kľúč držte tam, kde ho platforma chráni: neexportovateľný v úložisku certifikátov Windows, s podporou TPM tam, kde to profil dovoľuje, alebo súbor 0600 vo vlastníctve root v Linuxe. Kompromitácia hostiteľa je kompromitácia prihlasovacích údajov.
Vypršanie platnosti je opakujúca sa porucha. Certifikát, ktorý vyprší v nedeľu, zastaví úlohu v nedeľu, a brána zvyčajne nahlási všeobecnú chybu autentifikácie namiesto uvedenia dátumu. Dátumy kontrolujte z hostiteľa úlohy ako súčasť runbooku:
openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts
Odvolanie potrebuje cestu, ktorú brána kontroluje. OpenVPN číta CRL cez možnosť crl-verify a strongSwan závisí od CRL alebo OCSP podľa toho, ako je zostavený profil pripojenia. Ak nie je pripojené ani jedno, odstránenie hostiteľa znamená čakať na vypršanie certifikátu.
Tri podmienky, ktoré rozhodujú medzi nimi
Porovnávajte s platformou, ktorú máte, nie s referenčným riešením.
Prvá podmienka: dokáže brána autorizovať identitu stroja? Ak iba priraďuje používateľské meno RADIUS k používateľovi adresára, certifikát autentifikuje hostiteľa a potom sa zasekne na autorizácii. Druhá podmienka: potrebuje úloha prístup k zdrojom, ktorý nesie iba používateľský účet, napríklad mapovaný zdieľaný priečinok alebo licenciu na miesto? Potom identita stroja nenahradí, a úprimná odpoveď je vyhradený používateľský účet s ohraničenou politikou. Tretia podmienka: kto môže rotovať prihlasovací údaj bez človeka v slučke? Automatická registrácia robí certifikáty lacnými na udržiavanie; heslo, ktoré pozná jedna osoba, nie.
| Constraint | Machine certificate | Dedicated user account with stored secret |
|---|---|---|
| Unattended login | Private key proof, no prompt | Only if the account is exempted from MFA |
| Resource expects a user identity | Works only when the resource accepts computer accounts | Matches the access a person would have |
| Rotation | Re-enrollment, often automated | Secret change plus redeploy of every copy |
| Revocation speed | Tied to CRL or OCSP refresh | Disable the account, immediate |
Čítajte tabuľku ako zoznam cien, nie ako rebríček. Stĺpec s uloženým tajomstvom vyhráva v rýchlosti odvolania a v kompatibilite so zdrojmi, ktoré rozumejú iba používateľským účtom; stĺpec s certifikátom vyhráva v rotácii a v tom, že neoslabuje MFA, aby skript fungoval.
Vložte limit do politiky, po autentifikácii
Nech vyberiete akúkoľvek identitu, limit oprávnení patrí do politiky, ktorá sa spúšťa po autentifikácii. V NPS sa sieťové politiky vyhodnocujú v poradí a prvá politika, ktorá zodpovedá všetkým podmienkam, použije svoje nastavenia, takže široká politika umiestnená nad úzkou určí výsledok bez ohľadu na to, čo klient predloží. Microsoft dokumentuje model podmienok a nastavení vo svojom prehľade politík NPS.
Dajte úlohe vlastnú skupinu alebo podmienku politiky založenú na niečom, čo nesie identita stroja: šablóna certifikátu, identifikátor volajúcej stanice alebo adresa z vyhradeného fondu. Potom ohraničte reláciu atribútmi: Filter-Id pre rolu, na ktorú ho brána mapuje, krátky Session-Timeout, aby zaseknutá úloha prešla autentifikáciou znova namiesto držania relácie celé dni, a Framed-IP-Address z fondu, ktorý na druhej strane filtrujete firewallom. Autorizácia aplikácie zostáva oddelená: tunel k serveru databázy nie je povolenie čítať tabuľku v ňom.
Overte odmietnutia, potom naplánujte odstránenie
Prístup, ktorý funguje, nič nedokazuje o najmenších oprávneniach. Namiesto toho testujte odmietnutia: pripojte sa s identitou úlohy a siahnite po cieli mimo zoznamu, otvorte druhú súbežnú reláciu, ak má brána povoľovať len jednu, a zopakujte prihlásenie po odvolaní prihlasovacieho údaja.
Potom potvrďte tú istú reláciu na dvoch miestach. Denník brány ukazuje identitu, ktorá sa autentifikovala; denník servera politiky ukazuje, ktorá politika sa zhodovala a aké atribúty vrátila. Na OpenVPN server zaznamenáva common name certifikátu a ipsec statusall na strongSwane vypíše vytvorený tunel s používanou identitou. Ak sa dva denníky nezhodujú v identite, politika sa zhoduje s niečím iným, než predpokladáte.
Odstránenie patrí do návrhu, nie do upratovacej fázy. Zapíšte všetko, čo treba vymazať (certifikát alebo účet, členstvo v skupine, sieťová politika, záznam vo fonde, pravidlo firewallu na cieli) a prejdite to raz, kým sa úloha dá ľahko obnoviť.
Ak začínate dnes, pracujte v tomto poradí: napíšte zoznam zdrojov, vyberte identitu podľa troch podmienok, vložte limit do politiky a pred nasadením úlohy si precvičte jedno odmietnutie.