Ke një common name dhe një adresë në shënimet e tua, dhe tre komanda që të gjitha duken se heqin një klient. Vetëm një bën atë që dëshiron, dhe zgjedhja varet nëse duhet të përfundosh sesionin që po ecën tani, të refuzosh hyrjen tjetër, apo të heqësh plotësisht të drejtën për t'u lidhur. Lexo identitetin që ke në të vërtetë përpara se të prekësh gjë, sepse një pellg OpenVPN i jep të njëjtën adresë tuneli një sesioni tjetër më vonë.

Çfarë identiteti ke në të vërtetë

Një skedar statusi i versionit 3 është pikënisja e zakonshme. Seksioni CLIENT_LIST mban common name, adresën reale, numëruesit e bajtëve dhe kohën e lidhjes; seksioni ROUTING TABLE harton një adresë virtuale në një common name me një vulë kohe të referencës së fundit. Common name është identiteti i qëndrueshëm. Adresa virtuale është një caktim, dhe adresa reale pas një NAT mund të ndryshojë mes sesioneve pa ndryshuar gjë në server.

Ndërfaqja e menaxhimit ofron një pamje të ngjashme përmes komandës status dhe shton një ID klienti për çdo sesion. Pikërisht atë ID pret client-kill, dhe nuk është adresa e tunelit. Nëse duhet të dish cili common name mori cilën adresë në momentin e lidhjes, mjedisi i një skripti client-connect i ka të dyja, së bashku me adresën e jashtme të besuar, por ai skript ekzekutohet si përdoruesi OpenVPN dhe ka nevojë për një shteg regjistri të shkruajtshëm.

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

Vrit tani, refuzo në hyrje, anulo përgjithmonë

Të dyja komandat e heqjes në ndërfaqen e menaxhimit janë veprime sesioni. kill merr një common name ose një adresë reale dhe port; client-kill merr ID-në e klientit dhe e përfundon menjëherë atë instancë. Asnjëra nuk është bllokim: një klient i nxjerrë me certifikatë dhe fjalëkalim të vlefshëm rilidhet brenda sekondave, gjë që është mirë kur ricikloni një peer testimi dhe e padobishme kur një laptop është vjedhur.

client-deny është një lloj tjetër vendimi. Zakonisht lëshohet nga një grep autentikimi ose client-connect dhe e refuzon sesionin me një arsye, kështu që përshtatet me një politikë që refuzon një hyrje dhe jo me një që ndërpret një lidhje. Dokumentacioni gjithashtu paralajmëron se një refuzim i lëshuar gjatë një rinegocimi TLS e bën të pavlefshëm çelësin e rinegociuar, ndërsa sesioni ekzistues mund të vazhdojë derisa të mbyllet dritarja e tranzicionit. Nëse kërkesa është që klienti të jetë larg tani, përgjigjja e dokumentuar është client-kill.

Heqja e qëndrueshme qëndron nën të gjitha këto. Anulo certifikatën dhe sigurohu që crl-verify tregon një listë që serveri vërtet e ringarkon, çaktivizo skedarin e konfigurimit specifik të klientit në drejtorinë ccd, ose çaktivizo llogarinë në çdo backend që pyet grepi i autentikimit. As anulimi nuk është i menjëhershëm: me cilësimet e paracaktuara të reneg-sec, një sesion i vendosur mund të vazhdojë derisa të rinegociojë, kështu që veprimi i sesionit dhe veprimi i kredencialeve plotësojnë njëri-tjetrin, nuk janë alternativa.

A është i lirë soketi i menaxhimit?

Ndërfaqja e menaxhimit i shërben një klienti në një herë. Nëse një GUI ose një daemon monitorimi e mban tashmë lidhjen, skripti yt nuk mund të bashkëngjitet pranë saj, dhe në varësi të klientit mund të nxjerrësh atë ekzistues në vend që të dështosh pastër. Fjalëkalimi i saj udhëton në tekst të qartë në atë soket, kështu që i takon një adrese lokale ose një soketi unix, kurrë një ndërfaqe publike.

Kur nuk mund ta marrësh soketin, ende ke opsione, dhe të gjitha janë më të ngadalta. Lësho së pari sesionin e GUI-së nëse e kontrollon, ose prano rrugën përmes shtresës së kredencialeve dhe prit rinegocimin tjetër. Ajo që nuk duhet të bësh është të rinisësh shërbimin për të hequr qafe një klient, sepse kjo përfundon edhe të gjitha sesionet e tjera dhe shkatërron provat e skedarit të statusit për këtë.

Sekuenca që ekzekutoj në një server aktiv

Bashkëngjitu, lexo gjendjen aktuale, verpo mbi ID-në që sapo lexove, dhe pastaj lexoje përsëri. Vlerat e kopjuara nga një dokument janë mënyra më e zakonshme për të vrarë personin e gabuar.

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

Emri dhe numri më sipër janë vendmbajtës, dhe ID-të ripërdoren pasi klientët e tjerë shkëputen. Konfirmo që rreshti mungon përpara se të shkruash gjë si e kryer, dhe kontrollo që numri i klientëve të lidhur lëvizi me një dhe jo me disa.

Konfirmo që qëndroi larg

Regjistro common name, adresën e tunelit, adresën e jashtme dhe minutën e heqjes. Nëse i njëjti common name shfaqet përsëri një minutë më vonë, veprimi i sesionit funksionoi dhe shtresa e kredencialeve jo, gjë që është një riparim krejt tjetër nga ai i një komande që nuk hyri kurrë në fuqi.

Pastaj testoni nga ana e klientit. Një certifikatë e anuluar duhet të dështojë në handshake-un tjetër; nëse ende lidhet, CRL nuk lexohet fare, dhe ky është gjetja që ia vlen të raportohet. Zgjidh veprimin sipas asaj që duhet të përfundosh, konfirmo me një status të dytë, dhe rregullo shtresën e kredencialeve kur përgjigjja duhet të zgjasë më shumë se sesioni.

Artikuj të ngjashëm