Servokonta VPN-aliro: atestilo kontraŭ komuna saluto
Komparu maŝinan atestilon kun konservita pasvorto por senhoma VPN-aliro, kaj metu la realan permesan limon en la politikon, kiu ruliĝas post saluto.
Du dezajnoj kovras preskaŭ ĉiun senhoman VPN-agordon: komuna homa saluto tenata en skripto, aŭ maŝina atestilo ligita al la gastiganto. Ili paneas en malsamaj lokoj, kio pli gravas ol la agorda rapido. Konservita pasvorto paneas, kiam ĝia posedanto ŝanĝas ĝin aŭ foriras; atestilo paneas, kiam ĝi eksvalidiĝas aŭ kiam la gastiganto rekonstruiĝas sen la ŝlosilo. Tri kondiĉoj decidas, kiun koston vi povas porti, kaj neniu dezajno limigas ion ajn ĝis la rajtiga politiko faras tion.
Komencu de la tasko, ne de la konto
La tasko difinas la limon: kiuj celoj, kiuj servoj, kiuj horoj, kiom longe sesio rajtas daŭri. Tunela vojo estas nur duono de tiu limo. La pordo decidas, ĉu la sesio estas permesita; la rimedo malantaŭ ĝi decidas, kion la sesio povas fari. Unue skribu la liston, kun nomita posedanto, ĉar ambaŭ identecaj dezajnoj devas plenumi ĝin.
Tenu aŭtentikigon kaj rajtigon aparte, dum vi skribas ĝin. Aŭtentikigo respondas, kiu konektiĝas; rajtigo respondas, kion la sesio povas atingi poste. RADIUS portas la duan parton kiel atributojn kiel Filter-Id, Framed-IP-Address, Session-Timeout kaj Class, kaj la pordo aldonas ilin, kiam la saluto sukcesas. Dezajno, kiu ŝanĝas la saluton kaj lasas la rajtigon netuŝita, limigis nenion.
Komuna homa saluto: la pasvorto fariĝas la limo
Reuzi homa konton estas la plej rapida vojo kaj tiu, kiu malplej bone maljuniĝas. La akreditaĵo estas pasvorto, do ĝi finiĝas en skripto, media dosiero kaj planila agordo, kaj ĉiu kopio bezonas rotacion. Kiam la posedanto ŝanĝas ĝin vendrede, la tasko paneas ĉe la sekva rulo kaj neniu rigardas.
MFA estas la loko, kie ĉi tiu dezajno kutime disfalas. Skripto ne povas respondi al puŝa peto, do la konto estas esceptita de la politiko, kaj tio estas ĝuste la konto, kiun atakanto elektus. Esceptoj, preterpasadĵoj de fidinda loko kaj esceptoj laŭ konto multiĝas, kaj neniuj estas videblaj al la sekva persono, kiu legas la luprenantajn agordojn.
Atribuo estas la alia kosto. Ĉiu sesio en la porda protokolo portas la saman uzantnomon, do la nokta sinkronigo ne distingiĝas de la laboro de la persono, kiu skribis ĝin, kaj revoki la taskon signifas revoki tiun personon.
Maŝina atestilo: identeco ligita al la gastiganto
Atestilo ŝanĝas la demandon de tio, kion la konto scias, al tio, kio estas la gastiganto. Kun EAP-TLS la kliento prezentas atestilon kaj pruvas posedon de la kongrua privata ŝlosilo; la politika servilo mapas la subjekton aŭ la komputilan konton al grupo kaj aplikas la politikon por tiu grupo. Neniu invito, neniu komuna sekreto sidanta en tekstodosiero.
La limo, kiun ĝi kreas, estas pli mallarĝa ol homoj atendas. Atestilo aŭtentikigas la gastiganton, ne la taskon, kaj iu ajn kun radikaj aŭ lokaj administraj rajtoj povas uzi tiun ŝlosilon sur tiu gastiganto. Tenu la ŝlosilon tie, kie la platformo protektas ĝin: neeksportebla en la Windows-atestila konservejo, TPM-subtenata kie la profilo permesas, aŭ radike posedata dosiero 0600 en Linux. Kompromiti la gastiganton estas kompromiti la akreditaĵon.
Eksvalidiĝo estas la ripetiĝanta paneo. Atestilo, kiu eksvalidiĝas dimanĉe, haltigas la taskon dimanĉe, kaj la pordo kutime raportas ĝeneralan aŭtentikigan paneon anstataŭ nomi la daton. Kontrolu la datojn de la taska gastiganto kiel parton de la runbook:
openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts
Revoko bezonas vojon, kiun la pordo kontrolas. OpenVPN legas CRL per la opcio crl-verify, kaj strongSwan dependas de CRL aŭ OCSP laŭ tio, kiel la konekta profilo estas konstruita. Se neniu el ili estas konektita, forigi gastiganton signifas atendi, ke la atestilo eksvalidiĝu.
Tri kondiĉoj, kiuj decidas inter ili
Faru la komparon kontraŭ la platformo, kiun vi havas, ne kontraŭ referenca dezajno.
Unua kondiĉo: ĉu la pordo povas rajtigi maŝinan identecon? Se ĝi nur mapas RADIUS-uzantnomon al adresara uzanto, atestilo aŭtentikigas la gastiganton kaj poste haltas ĉe rajtigo. Dua kondiĉo: ĉu la tasko bezonas rimedan aliron, kiun nur uzanta konto portas, kiel muntita kunhavo aŭ licenco po sidloko? Tiam maŝina identeco ne povas anstataŭi, kaj la honesta respondo estas dediĉita uzanta konto kun limigita politiko. Tria kondiĉo: kiu povas rotacii la akreditaĵon sen persono en la buklo? Aŭtomata aliĝo faras atestilojn malmultekostaj teni; pasvorto konata de unu persono 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 |
Legu la tabelon kiel liston de kostoj, ne kiel rangotabelon. La kolumno de konservita sekreto gajnas en revoka rapido kaj en kongrueco kun rimedoj, kiuj komprenas nur uzantajn kontojn; la atestila kolumno gajnas en rotacio kaj en tio, ke ĝi ne malfortigas MFA por igi skripton funkcii.
Metu la limon en la politikon, post aŭtentikigo
Kiun ajn identecon vi elektas, la permesa limo apartenas al la politiko, kiu ruliĝas post aŭtentikigo. En NPS retaj politikoj estas taksataj laŭ ordo kaj la unua politiko, kiu kongruas kun ĉiu kondiĉo, aplikas siajn agordojn, do larĝa politiko metita super mallarĝa decidas la rezulton sendepende de tio, kion la kliento prezentas. Microsoft dokumentas la modelon de kondiĉoj kaj agordoj en sia superrigardo de NPS-politikoj.
Donu al la tasko sian propran grupon aŭ politikokondiĉon, bazitan sur io, kion portas la maŝina identeco: atestila ŝablono, identigilo de la vokanta stacio aŭ adreso el dediĉita provizo. Poste limigu la sesion per atributoj: Filter-Id por la rolo, al kiu via pordo mapas ĝin, mallonga Session-Timeout por ke ŝtopita tasko reaŭtentikiĝu anstataŭ teni sesion dum tagoj, kaj Framed-IP-Address el provizo, kiun vi fajroŝirmas aliflanke. Aplikaĵa rajtigo restas aparta: tunelo al datumbaza servilo ne estas permeso legi tabelon ene de ĝi.
Kontrolu rifuzojn, poste planu forigon
Aliro, kiu funkcias, pruvas nenion pri la plej malgranda privilegio. Testu la rifuzojn anstataŭe: konektiĝu kun la taska identeco kaj provu atingi celon ekster la listo, malfermu duan samtempan sesion se la pordo rajtas permesi nur unu, kaj ripetu la saluton post revoko de la akreditaĵo.
Poste konfirmu la saman sesion en du lokoj. La porda protokolo montras la identecon, kiu aŭtentikiĝis; la protokolo de la politika servilo montras, kiu politiko kongruis kaj kiujn atributojn ĝi redonis. En OpenVPN la servilo registras la komunan nomon de la atestilo, kaj ipsec statusall en strongSwan presas la starigitan tunelon kun la uzata identeco. Se la du protokoloj malkongruas pri la identeco, la politiko kongruas kun io alia ol vi supozas.
Forigo apartenas al la dezajno, ne al puriga sprint. Skribu ĉion, kio forigendas (atestilo aŭ konto, grupa membreco, reta politiko, proviza ero, fajroŝirma regulo sur la celo) kaj plenumu ĝin unufoje, dum la tasko estas facile rekonstruebla.
Se vi komencas hodiaŭ, laboru en ĉi tiu ordo: skribu la rimedan liston, elektu la identecon per la tri kondiĉoj, metu la limon en la politikon, kaj ekzercu unu rifuzon antaŭ ol la tasko ekfunkcios.