VPN pristup za servisni račun: sertifikat ili zajednička prijava
Uporedite sertifikat mašine sa sačuvanom lozinkom za VPN pristup bez nadzora i stavite stvarnu granicu dozvola u politiku koja se izvršava posle prijave.
Dva rešenja pokrivaju skoro svako VPN podešavanje bez nadzora: zajednička ljudska prijava sačuvana u skripti ili sertifikat mašine vezan za host. Oni padaju na različitim mestima, a to je važnije od brzine podešavanja. Sačuvana lozinka puca kada je vlasnik promeni ili ode; sertifikat puca kada istekne ili kada se host ponovo izgradi bez ključa. Tri uslova odlučuju koji trošak možete da nosite, i nijedno rešenje ništa ne ograničava dok to ne uradi politika autorizacije.
Pođite od zadatka, ne od računa
Zadatak definiše granicu: koja odredišta, koje usluge, u kojim satima, koliko dugo sesija može da traje. Ruta tunela je samo polovina te granice. Gejtvej odlučuje da li je sesija dozvoljena; resurs iza njega odlučuje šta sesija može da radi. Prvo napišite listu, sa imenovanim vlasnikom, jer oba rešenja identiteta moraju da je zadovolje.
Držite autentifikaciju i autorizaciju odvojeno dok to zapisujete. Autentifikacija odgovara ko se povezuje; autorizacija odgovara do čega sesija može da stigne posle toga. RADIUS nosi drugi deo kao atribute kao što su Filter-Id, Framed-IP-Address, Session-Timeout i Class, a gejtvej ih prikači kada prijava uspe. Rešenje koje zameni prijavu i ostavi autorizaciju netaknutom nije ništa ograničilo.
Zajednička ljudska prijava: lozinka postaje granica
Ponovno korišćenje ljudskog računa je najbrži put i onaj koji najgore stari. Akreditiv je lozinka, pa završi u skripti, u datoteci okruženja i u konfiguraciji planera, i svaka kopija zahteva rotaciju. Kada je vlasnik promeni u petak, zadatak padne pri sledećem pokretanju i niko ne gleda.
MFA je mesto gde ovo rešenje obično pada. Skripta ne može da odgovori na push zahtev, pa se račun izuzme iz politike, a to je tačno račun koji bi napadač izabrao. Izuzeci, zaobilaženja za pouzdane lokacije i oslobađanja po računu se množe, i nijedno nije vidljivo sledećoj osobi koja čita podešavanja 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, a opozivanje zadatka znači opozivanje te osobe.
Sertifikat mašine: identitet vezan za host
Sertifikat menja pitanje sa onoga što račun zna na ono što host jeste. Sa EAP-TLS klijent predstavlja sertifikat i dokazuje posedovanje odgovarajućeg privatnog ključa; server politike mapira subjekat ili računar računa na grupu i primenjuje politiku te grupe. Bez upita, bez zajedničke tajne koja stoji u tekstualnoj datoteci.
Granica koju stvara uža je nego što ljudi očekuju. Sertifikat autentifikuje host, ne zadatak, i svako sa root ili lokalnim administratorskim pravima može da koristi taj ključ na tom hostu. Držite ključ tamo gde ga platforma štiti: neizvoziv u Windows prodavnici sertifikata, sa TPM podrškom gde profil dozvoljava, ili datoteka 0600 u vlasništvu root-a na Linuxu. Kompromitovanje hosta je kompromitovanje akreditiva.
Isticanje je povratni otkaz. Sertifikat koji istekne u nedelju zaustavlja zadatak u nedelju, a gejtvej obično prijavi opštu grešku autentifikacije umesto da navede datum. Proverite datume sa hosta zadatka kao deo runbook-a:
openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts
Opoziv zahteva putanju koju gejtvej proverava. OpenVPN čita CRL kroz opciju crl-verify, a strongSwan zavisi od CRL ili OCSP u zavisnosti od toga kako je profil veze izgrađen. Ako nijedno nije povezano, uklanjanje hosta znači čekanje da sertifikat istekne.
Tri uslova koja odlučuju između njih
Uporedite sa platformom koju imate, ne sa referentnim rešenjem.
Prvi uslov: može li gejtvej da autorizuje identitet mašine? Ako samo mapira RADIUS korisničko ime na korisnika imenika, sertifikat autentifikuje host i zatim se zaglavi na autorizaciji. Drugi uslov: da li zadatku treba pristup resursima koji nosi samo korisnički račun, kao što je mapirani deljeni resurs ili licenca po mestu? Tada identitet mašine ne može da zameni, i iskren odgovor je namenski korisnički račun sa ograničenom politikom. Treći uslov: ko može da rotira akreditiv bez osobe u petlji? Automatska registracija čini sertifikate 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, ne kao rangiranje. Kolona sa sačuvanom tajnom pobeđuje u brzini opoziva i u kompatibilnosti sa resursima koji razumeju samo korisničke račune; kolona sa sertifikatom pobeđuje u rotaciji i u tome što ne slabi MFA da bi skripta radila.
Stavite granicu u politiku, posle autentifikacije
Kakav god identitet izabrali, granica dozvola pripada politici koja se izvršava posle autentifikacije. U NPS-u se mrežne politike ocenjuju po redu, i prva politika koja se poklapa sa svim uslovima primenjuje svoja podešavanja, pa široka politika postavljena iznad uske odlučuje rezultat, bez obzira šta klijent predstavi. Microsoft dokumentuje model uslova i podešavanja u svom pregledu NPS politika.
Dajte zadatku sopstvenu grupu ili uslov politike, zasnovan na nečemu što nosi identitet mašine: šablon sertifikata, identifikator stanice koja poziva ili adresa iz namenskog pula. Zatim ograničite sesiju atributima: Filter-Id za ulogu u koju ga gejtvej mapira, kratak Session-Timeout da se zaglavljeni zadatak ponovo autentifikuje umesto da drži sesiju danima, i Framed-IP-Address iz pula koji filterišete firewall-om na drugoj strani. Autorizacija aplikacije ostaje odvojena: tunel do servera baze podataka nije dozvola da se čita tabela u njoj.
Proverite odbijanja, pa planirajte uklanjanje
Pristup koji radi ne dokazuje ništa o najmanjim ovlašćenjima. Umesto toga testirajte odbijanja: povežite se sa identitetom zadatka i posegnite za odredištem van liste, otvorite drugu istovremenu sesiju ako gejtvej treba da dozvoli samo jednu, i ponovite prijavu posle opoziva akreditiva.
Zatim potvrdite istu sesiju na dva mesta. Dnevnik gejtveja pokazuje identitet koji se autentifikovao; dnevnik servera politike pokazuje koja se politika poklopila i koje atribute je vratila. Na OpenVPN-u server beleži common name sertifikata, a ipsec statusall na strongSwan-u ispisuje uspostavljeni tunel sa identitetom u upotrebi. Ako se dva dnevnika ne slažu o identitetu, politika se poklapa sa nečim drugim nego što pretpostavljate.
Uklanjanje pripada rešenju, ne spremanju za čišćenje. Zapišite sve što treba obrisati (sertifikat ili račun, članstvo u grupi, mrežna politika, unos u pulu, firewall pravilo na cilju) i prođite kroz to jednom dok je zadatak lako ponovo izgraditi.
Ako počinjete danas, radite ovim redom: napišite listu resursa, izaberite identitet sa tri uslova, stavite granicu u politiku i uvežbajte jedno odbijanje pre nego što zadatak ode u produkciju.