Pristup VPN-u sa servisnog računa: certifikat ili zajednička prijava
Uporedite certifikat mašine sa sačuvanom lozinkom za VPN pristup bez nadzora i postavite stvarnu granicu dozvola u politiku koja se izvršava nakon prijave.
Dva dizajna pokrivaju skoro svaku VPN postavku bez nadzora: zajednička ljudska prijava držana u skripti ili certifikat mašine vezan za host. Oni padaju na različitim mjestima, što je važnije od brzine postavke. Sačuvana lozinka se kvari kada je vlasnik promijeni ili ode; certifikat se kvari kada istekne ili kada se host ponovo izgradi bez ključa. Tri uslova odlučuju koji trošak možete podnijeti, a nijedan dizajn ništa ne ograničava dok to ne učini politika autorizacije.
Pođite od zadatka, ne od računa
Zadatak definiše granicu: koja odredišta, koje usluge, koji sati, koliko dugo sesija može trajati. Ruta tunela je samo polovina te granice. Gejtvej odlučuje da li je sesija dozvoljena; resurs iza njega odlučuje šta sesija može raditi. Prvo napišite listu, sa imenovanim vlasnikom, jer oba dizajna identiteta moraju je zadovoljiti.
Držite autentifikaciju i autorizaciju odvojeno dok to zapisujete. Autentifikacija odgovara ko se povezuje; autorizacija odgovara do čega sesija može stići poslije. RADIUS nosi drugi dio kao atribute kao što su Filter-Id, Framed-IP-Address, Session-Timeout i Class, a gejtvej ih priključi kada prijava uspije. Dizajn koji zamijeni prijavu i ostavi autorizaciju netaknutom nije ništa ograničio.
Zajednička ljudska prijava: lozinka postaje granica
Ponovno korištenje ljudskog računa je najbrži put i onaj koji najgore stari. Akreditiv je lozinka, pa završi u skripti, datoteci okruženja i konfiguraciji planera, a svaka kopija zahtijeva rotaciju. Kada je vlasnik promijeni u petak, zadatak padne pri sljedećem pokretanju i niko ne gleda.
MFA je mjesto gdje se ovaj dizajn obično ruši. Skripta ne može odgovoriti na push upit, pa se račun izuzima iz politike, a to je tačno račun koji bi napadač izabrao. Izuzeci, zaobilaženja pouzdane lokacije i oslobađanja po računu se množe, i nijedno nije vidljivo sljedećoj osobi koja čita postavke zakupca.
Pripisivanje je drugi trošak. Svaka sesija u dnevniku gejtveja nosi isto korisničko ime, pa se noćna sinhronizacija ne može razlikovati od rada osobe koja ju je napisala, i opoziv zadatka znači opoziv te osobe.
Certifikat mašine: identitet vezan za host
Certifikat mijenja pitanje sa onoga što račun zna na ono što host jeste. Sa EAP-TLS klijent predstavlja certifikat i dokazuje posjedovanje odgovarajućeg privatnog ključa; server politike mapira subjekt ili računarski račun u grupu i primjenjuje politiku za tu grupu. Bez upita, bez zajedničke tajne koja sjedi u tekstualnoj datoteci.
Granica koju stvara uža je nego što ljudi očekuju. Certifikat autentifikuje host, a ne zadatak, i svako sa root ili lokalnim administratorskim pravima može koristiti taj ključ na tom hostu. Držite ključ tamo gdje ga platforma štiti: neizvoziv u Windows spremištu certifikata, podržan TPM-om gdje profil dozvoljava, ili datoteka 0600 u vlasništvu roota na Linuxu. Kompromitovanje hosta je kompromitovanje akreditiva.
Istek je ponavljajući kvar. Certifikat koji istekne u nedjelju zaustavlja zadatak u nedjelju, a gejtvej obično prijavi generičku grešku autentifikacije umjesto da navede datum. Provjerite datume sa hosta zadatka kao dio runbooka:
openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts
Opoziv zahtijeva put koji gejtvej provjerava. OpenVPN čita CRL kroz opciju crl-verify, a strongSwan zavisi od CRL ili OCSP prema tome kako je profil veze izgrađen. Ako nijedno nije povezano, uklanjanje hosta znači čekanje da certifikat istekne.
Tri uslova koji odlučuju između njih
Uporedite sa platformom koju imate, a ne sa referentnim dizajnom.
Prvi uslov: može li gejtvej autorizovati identitet mašine? Ako samo mapira RADIUS korisničko ime na korisnika imenika, certifikat autentifikuje host i onda se zaustavi na autorizaciji. Drugi uslov: treba li zadatku pristup resursu koji nosi samo korisnički račun, kao dijeljeni resurs ili licenca po sjedištu? Tada identitet mašine ne može zamijeniti i iskren odgovor je namjenski korisnički račun sa ograničenom politikom. Treći uslov: ko može rotirati akreditiv bez osobe u petlji? Automatski upis čini certifikate jeftinim za održavanje; lozinka koju zna jedna osoba ne.
| 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 |
Čitajte tabelu kao listu troškova, a ne kao rangiranje. Kolona sa sačuvanom tajnom pobjeđuje u brzini opoziva i u kompatibilnosti sa resursima koji razumiju samo korisničke račune; kolona sa certifikatom pobjeđuje u rotaciji i u tome što ne slabi MFA da bi skripta radila.
Postavite granicu u politiku, nakon autentifikacije
Kakav god identitet izabrali, granica dozvola pripada politici koja se izvršava nakon autentifikacije. U NPS-u se mrežne politike ocjenjuju po redu i prva politika koja zadovolji svaki uslov primjenjuje svoje postavke, pa široka politika postavljena iznad uske odlučuje o rezultatu bez obzira šta klijent predstavi. Microsoft dokumentuje model uslova i postavki u svom pregledu NPS politika.
Dajte zadatku vlastitu grupu ili uslov politike, zasnovan na nečemu što nosi identitet mašine: šablon certifikata, identifikator stanice koja poziva ili adresa iz namjenskog pula. Zatim ograničite sesiju atributima: Filter-Id za ulogu u koju je vaš gejtvej mapira, kratak Session-Timeout da se zaglavljeni zadatak ponovo autentifikuje umjesto da drži sesiju danima, i Framed-IP-Address iz pula na koji na drugoj strani primjenjujete firewall. Autorizacija aplikacije ostaje odvojena: tunel do servera baze podataka nije dozvola da se čita tabela u njoj.
Provjerite odbijanja, zatim planirajte uklanjanje
Pristup koji radi ne dokazuje ništa o najmanjim privilegijama. Umjesto toga testirajte odbijanja: povežite se sa identitetom zadatka i posegnite za odredištem izvan liste, otvorite drugu paralelnu sesiju ako gejtvej treba da dozvoli samo jednu, i ponovite prijavu nakon opoziva akreditiva.
Zatim potvrdite istu sesiju na dva mjesta. Dnevnik gejtveja pokazuje identitet koji se autentifikovao; dnevnik servera politike pokazuje koja politika se poklopila i koje atribute je vratila. Na OpenVPN-u server bilježi uobičajeno ime certifikata, a ipsec statusall na strongSwan-u ispisuje uspostavljeni tunel sa identitetom koji se koristi. Ako se dva dnevnika ne slažu o identitetu, politika se poklapa sa nečim drugim nego što pretpostavljate.
Uklanjanje pripada dizajnu, a ne sprintu čišćenja. Zapišite sve što treba izbrisati (certifikat ili račun, članstvo u grupi, mrežna politika, unos u pulu, firewall pravilo na cilju) i izvršite to jednom dok je zadatak lako ponovo izgraditi.
Ako počinjete danas, radite ovim redom: napišite listu resursa, izaberite identitet sa tri uslova, postavite granicu u politiku i vježbajte jedno odbijanje prije nego zadatak krene u pogon.