U bilješkama imate common name i adresu te tri naredbe koje sve izgledaju kao da uklanjaju klijenta. Samo jedna čini ono što želite, a izbor ovisi o tome trebate li prekinuti sesiju koja sada radi, odbiti sljedeću prijavu ili oduzeti pravo na povezivanje uopće. Pročitajte identitet koji zapravo imate prije nego što bilo što dotaknete, jer OpenVPN pool kasnije dodjeljuje istu tunelsku adresu drugoj sesiji.

Koji identitet zapravo imate

Statusna datoteka verzije 3 uobičajeno je polazište. Odjeljak CLIENT_LIST nosi common name, stvarnu adresu, brojače bajtova i vrijeme povezivanja; odjeljak ROUTING TABLE mapira virtualnu adresu na common name s vremenskom oznakom posljednje reference. Common name je stabilan identitet. Virtualna adresa je dodjela, a stvarna adresa iza NAT-a može se promijeniti između sesija bez ikakve promjene na poslužitelju.

Upravljačko sučelje nudi sličan prikaz kroz svoju naredbu status i dodaje ID klijenta po sesiji. Taj ID očekuje client-kill, i to nije tunelska adresa. Ako trebate znati koji je common name dobio koju adresu u trenutku povezivanja, okruženje skripte client-connect sadrži oboje, uz pouzdanu vanjsku adresu, ali ta se skripta izvodi kao OpenVPN korisnik i treba putanju zapisive datoteke dnevnika.

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

Ubiti odmah, odbiti pri prijavi, opozvati zauvijek

Obje naredbe za uklanjanje u upravljačkom sučelju sesijske su radnje. kill prima common name ili stvarnu adresu i port; client-kill prima ID klijenta i odmah završava tu instancu. Nijedna nije blokada: izbačeni klijent s valjanim certifikatom i zaporkom ponovno se povezuje u sekundama, što je u redu kada reciklirate testni peer i beskorisno kada je prijenosno računalo ukradeno.

client-deny je druga vrsta odluke. Obično se izdaje iz authentication ili client-connect hooka i odbija sesiju s razlogom, pa odgovara politici koja odbija prijavu, a ne onoj koja prekida vezu. Dokumentacija također upozorava da odbijanje izdano tijekom TLS renegocijacije poništava renegocirani ključ, dok postojeća sesija može raditi dok se tranzicijski prozor ne zatvori. Ako je zahtjev da klijent sada nestane, dokumentirani je odgovor client-kill.

Trajno uklanjanje nalazi se ispod svega toga. Opozvite certifikat i provjerite da crl-verify pokazuje na popis koji poslužitelj doista ponovno učitava, onemogućite konfiguracijsku datoteku specifičnu za klijenta u direktoriju ccd ili onemogućite račun u onom pozadinskom sustavu koji authentication hook upituje. Ni opoziv nije trenutan: s zadanim postavkama reneg-sec uspostavljena sesija može nastaviti raditi dok ne renegocira, pa se sesijska radnja i radnja s vjerodajnicama nadopunjuju, a nisu alternative.

Je li upravljački socket slobodan?

Upravljačko sučelje poslužuje jednog klijenta istodobno. Ako GUI ili demon za nadzor već drži vezu, vaša se skripta ne može priključiti pokraj njega, a ovisno o klijentu možete izbaciti postojećeg umjesto da čisto ne uspijete. Njegova zaporka putuje čistim tekstom tim socketom, pa pripada lokalnoj adresi ili unix socketu, nikada javnom sučelju.

Kada ne možete preuzeti socket, još uvijek imate mogućnosti, i sve su sporije. Prvo pustite sesiju GUI-ja ako ga kontrolirate ili prihvatite put preko sloja vjerodajnica i pričekajte sljedeću renegocijaciju. Ono što ne biste trebali učiniti je ponovno pokretanje usluge da biste se riješili jednog klijenta, jer to završava i sve ostale sesije i uništava dokaze statusne datoteke za ovu.

Slijed koji izvodim na živom poslužitelju

Priključite se, pročitajte trenutačno stanje, djelujte na ID koji ste upravo pročitali, pa ga ponovno pročitajte. Vrijednosti kopirane iz dokumenta najčešći su način da ubijete pogrešnu osobu.

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

Ime i broj gore su zamjenske oznake, a ID-ovi se ponovno koriste nakon što se drugi klijenti odspoji. Potvrdite da redak nije prisutan prije nego što bilo što zabilježite kao gotovo i provjerite da se broj povezanih klijenata pomaknuo za jedan, a ne za nekoliko.

Potvrdite da je ostao izvan

Zabilježite common name, tunelsku adresu, vanjsku adresu i minutu uklanjanja. Ako se isti common name ponovno pojavi minutu kasnije, sesijska radnja je djelovala, a sloj vjerodajnica nije, što je posve drukčiji popravak od naredbe koja nikada nije stupila na snagu.

Zatim testirajte s klijentske strane. Opozvani certifikat trebao bi pasti na sljedećem handshakeu; ako se još povezuje, CRL se uopće ne čita, i to je nalaz koji vrijedi prijaviti. Odaberite radnju prema onome što morate završiti, potvrdite drugim status i popravite sloj vjerodajnica kada odgovor mora trajati dulje od sesije.

Povezani članci