Viena OpenVPN klienta izmešana: kill, deny vai sertifikāta atsaukšana?
Trīs OpenVPN darbības noņem klientu, bet katra beidz kaut ko citu: aktīvu sesiju, vienu pieteikšanās mēģinājumu vai tiesības pieteikties no jauna. Izvēlieties pēc identitātes.
Piezīmēs jums ir common name un adrese, un trīs komandas, kas visas izskatās, ka noņem klientu. Tikai viena dara to, ko vēlaties, un izvēle ir atkarīga no tā, vai jums jābeidz tagad darbojošā sesija, jānoraida nākamā pieteikšanās vai pilnībā jāatņem tiesības pieslēgties. Pirms kaut kam pieskaraties, izlasiet identitāti, kas jums patiešām ir, jo OpenVPN pūls vēlāk to pašu tuneļa adresi piešķir citai sesijai.
Kāda identitāte jums patiešām ir
Versijas 3 statusa fails ir ierastais sākumpunkts. CLIENT_LIST sadaļā ir common name, īstā adrese, baitu skaitītāji un savienojuma laiks; ROUTING TABLE sadaļa kartē virtuālo adresi uz common name ar pēdējās atsauces laikspiedolu. Common name ir stabilā identitāte. Virtuālā adrese ir piešķīrums, un īstā adrese aiz NAT var mainīties starp sesijām, serverī nekam nemainoties.
Pārvaldības saskarne piedāvā līdzīgu skatu ar savu status komandu un pievieno klienta ID katrai sesijai. Tieši šo ID gaida client-kill, un tā nav tuneļa adrese. Ja jums jāzina, kurš common name savienošanās brīdī saņēma kuru adresi, client-connect skripta vidē ir abi kopā ar uzticamo ārējo adresi, taču šis skripts darbojas kā OpenVPN lietotājs un tam nepieciešams rakstāms žurnāla ceļš.
| What you hold | Where it came from | What it can act on |
|---|---|---|
| Common name | CLIENT_LIST, or the auth hook | kill, and credential revocation |
| Client ID | status on the management socket | client-kill, that one session |
| Tunnel address | ROUTING TABLE, client-connect environment | Nothing durable, the address is recycled |
Nogalināt tagad, noraidīt pieteikšanās laikā, atsaukt uz visiem laikiem
Abas noņemšanas komandas pārvaldības saskarnē ir sesijas darbības. kill pieņem common name vai īsto adresi un portu; client-kill pieņem klienta ID un nekavējoties beidz šo instanci. Neviena nav bloķēšana: izmests klients ar derīgu sertifikātu un paroli atkal pieslēdzas dažu sekunžu laikā, kas ir labi, kad pārstrādājat testa peer, un bezjēdzīgi, kad ir nozagts portatīvais dators.
client-deny ir cita veida lēmums. To parasti izdod no autentifikācijas vai client-connect āķa, un tas noraida sesiju ar iemeslu, tāpēc tas atbilst politikai, kas atsaka pieteikšanos, nevis tai, kas pārtrauc savienojumu. Dokumentācija arī brīdina, ka TLS atkārtotas sarunas laikā izdots noraidījums padara atkārtoti saskaņoto atslēgu nederīgu, kamēr esošā sesija var turpināties līdz pārejas loga aizvēršanai. Ja prasība ir, lai klients tagad būtu prom, dokumentētā atbilde ir client-kill.
Ilgstoša noņemšana atrodas zem visa tā. Atsauciet sertifikātu un pārliecinieties, ka crl-verify norāda uz sarakstu, ko serveris patiešām pārlādē, atspējojiet klientam raksturīgo konfigurācijas failu ccd direktorijā vai atspējojiet kontu tajā backend, ko vaicā autentifikācijas āķis. Arī atsaukšana nav acumirklīga: ar noklusējuma reneg-sec iestatījumiem izveidota sesija var turpināties, līdz tā atkārtoti sarunājas, tāpēc sesijas darbība un akreditācijas datu darbība viena otru papildina, nevis ir alternatīvas.
Vai pārvaldības ligzda ir brīva?
Pārvaldības saskarne apkalpo vienu klientu vienlaikus. Ja GUI vai uzraudzības dēmons jau tur savienojumu, jūsu skripts nevar tam pievienoties blakus, un atkarībā no klienta jūs varat izstumt esošo, nevis tīri neizdoties. Tā parole ceļo atklātā tekstā pa šo ligzdu, tāpēc tai jāatrodas lokālā adresē vai unix ligzdā, nekad publiskā saskarnē.
Kad nevarat paņemt ligzdu, jums joprojām ir iespējas, un visas ir lēnākas. Vispirms atlaidiet GUI sesiju, ja to kontrolējat, vai pieņemiet ceļu caur akreditācijas datu slāni un gaidiet nākamo atkārtoto sarunu. Tas, ko nevajadzētu darīt, ir restartēt pakalpojumu, lai atbrīvotos no viena klienta, jo tas beidz arī visas pārējās sesijas un iznīcina šīs sesijas statusa faila pierādījumus.
Secība, ko izpildu dzīvā serverī
Pievienojieties, nolasiet pašreizējo stāvokli, rīkojieties pēc tikko nolasītā ID un pēc tam nolasiet to vēlreiz. No dokumenta nokopētās vērtības ir visizplatītākais veids, kā nogalināt nepareizo cilvēku.
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 goneIepriekš minētais nosaukums un numurs ir vietturi, un ID tiek izmantoti atkārtoti pēc tam, kad citi klienti atvienojas. Pirms kaut ko pierakstāt kā izdarītu, apstipriniet, ka rinda nav, un pārbaudiet, vai savienoto klientu skaits ir mainījies par vienu, nevis vairākiem.
Apstipriniet, ka tas palika prom
Pierakstiet common name, tuneļa adresi, ārējo adresi un noņemšanas minūti. Ja tas pats common name pēc minūtes parādās atkal, sesijas darbība nostrādāja, bet akreditācijas datu slānis ne, un tas ir pavisam cits labojums nekā komandai, kas nekad nestājās spēkā.
Pēc tam pārbaudiet no klienta puses. Atsauktam sertifikātam vajadzētu neizdoties nākamajā hauspeidā; ja tas joprojām pieslēdzas, CRL netiek lasīts vispār, un tas ir atradums, ko ir vērts ziņot. Izvēlieties darbību pēc tā, kas jums jābeidz, apstipriniet ar otru status un salabojiet akreditācijas datu slāni, kad atbildei jāpaliek spēkā ilgāk par sesiju.