Du har eit common name og ein adresse i notata dine, og tre kommandoar som alle ser ut til å fjerna ein klient. Berre éin gjer det du vil, og valet kjem an på om du må avslutta sesjonen som køyrer no, avvisa neste innlogging eller ta retten til å kople til heilt bort. Les identiteten du faktisk har før du rører noko, fordi ein OpenVPN-pool gjev den same tunneladressa til ein annan sesjon seinare.

Kva identitet du faktisk har

Ei statusfil i versjon 3 er det vanlege utgangspunktet. CLIENT_LIST-delen ber common name, den verkelege adressa, byteteljarar og koplingstid; ROUTING TABLE-delen knyter ei virtuell adresse til eit common name med eit tidsstempel for siste referanse. Common name er den stabile identiteten. Den virtuelle adressa er ei tildeling, og den verkelege adressa bak ein NAT kan endra seg mellom sesjonar utan at noko på tenaren endrar seg.

Styringsgrensesnittet viser eit liknande bilete gjennom kommandoen status og legg til ein klient-ID per sesjon. Det er den ID-en client-kill ventar, og det er ikkje tunneladressa. Viss du må vita kva common name som fekk kva adresse ved koplinga, har miljøet til eit client-connect-skript begge, saman med den klarerte ytre adressa, men det skriptet køyrer som OpenVPN-brukar og treng ein skrivbar loggsti.

What you holdWhere it came fromWhat it can act on
Common nameCLIENT_LIST, or the auth hookkill, and credential revocation
Client IDstatus on the management socketclient-kill, that one session
Tunnel addressROUTING TABLE, client-connect environmentNothing durable, the address is recycled

Drep no, avvis ved innlogging, trekk tilbake for godt

Båe fjerningskommandoane i styringsgrensesnittet er sesjonshandlingar. kill tek eit common name eller ei verkeleg adresse og port; client-kill tek klient-ID-en og avsluttar den instansen straks. Ingen av dei er ei blokkering: ein utsparka klient med eit gyldig sertifikat og passord koplar til att i løpet av sekund, noko som er greitt når du resirkulerer ein testpeer og unyttig når ein berbar PC er stolen.

client-deny er ein annan type avgjerd. Det blir vanlegvis gjeve ut frå ein autentiserings- eller client-connect-krok og avviser sesjonen med ein grunn, så det passar til ein politikk som avviser ei innlogging snarare enn ein som bryt ei kopling. Dokumentasjonen åtvarar òg om at eit avslag gjeve under ei TLS-forhandling på nytt gjer den nye nøkkelen ugyldig medan den eksisterande sesjonen kan halda fram til overgangsvindauget stengjer. Viss kravet er at klienten er borte no, er det dokumenterte svaret client-kill.

Varig fjerning ligg under alt dette. Trekk tilbake sertifikatet og sjå til at crl-verify peikar på ei liste som tenaren faktisk lastar på nytt, slå av klientkonfigurasjonsfila i ccd-mappa, eller slå av kontoen i den bakenden autentiseringskroken spør. Ei tilbaketrekking er heller ikkje momentan: med standardinnstillingane for reneg-sec kan ein etablert sesjon halda fram til han forhandlar på nytt, så sesjonshandlinga og legitimasjonshandlinga er utfyllande, ikkje alternativ.

Er styringssokkelen ledig?

Styringsgrensesnittet tener éin klient om gongen. Viss eit GUI eller ein overvakingsdaemon alt held koplinga, kan ikkje skriptet ditt kopla seg ved sida, og avhengig av klienten kan du kasta ut den eksisterande i staden for å feila pent. Passordet reiser i klartekst på den sokkelen, så det høyrer til på ei lokal adresse eller ein unix-sokkel, aldri på eit offentleg grensesnitt.

Når du ikkje kan ta sokkelen, har du framleis val, og alle er tregare. Slipp sesjonen til GUI-et først viss du styrer det, eller godta vegen over legitimasjonslaget og vent på neste forhandling på nytt. Det du ikkje bør gjera, er å starta tenesta på nytt for å bli kvitt ein klient, fordi det avsluttar alle andre sesjonar òg og øydelegg provet i statusfila for denne.

Rekkjefølgja eg køyrer på ein levande tenar

Kopla til, les den gjeldande tilstanden, handle på ID-en du nettopp las, og les han så igjen. Verdiar kopierte frå eit dokument er den vanlegaste måten å drepa feil person på.

status                     # note the client ID and common name
client-kill 3              # end that session now
kill Test-Client           # alternative: by common name
status                     # confirm the session is gone

Namnet og nummeret ovanfor er plasshaldarar, og ID-ar blir brukte på nytt etter at andre klientar har kopla frå. Stadfest at rada manglar før du skriv noko som gjort, og kontroller at talet på tilkopla klientar flytta seg med éin og ikkje fleire.

Stadfest at han blei borte

Skriv ned common name, tunneladressa, den ytre adressa og minuttet for fjerninga. Viss det same common name dukkar opp att eitt minutt seinare, verka sesjonshandlinga og ikkje legitimasjonslaget, noko som er ei heilt anna retting enn ein kommando som aldri tok til å gjelda.

Test så frå klientsida. Eit tilbakekalla sertifikat bør feila i neste handtrykk; viss det framleis koplar til, blir CRL ikkje lese i det heile, og det er funnet som er verdt å melda. Vel handlinga etter kva du må avslutta, stadfest med ein andre status, og rett legitimasjonslaget når svaret må vara lenger enn sesjonen.

Relaterte artiklar