Sul on märkmetes common name ja aadress ning kolm käsku, mis kõik näivad klienti eemaldavat. Ainult üks teeb seda, mida soovid, ja valik sõltub sellest, kas pead lõpetama praegu töötava sessiooni, keelduma järgmisest sisselogimisest või võtma ära õiguse üldse ühenduda. Loe identiteet, mis sul tegelikult on, enne kui millelegi puutud, sest OpenVPN-i pool annab sama tunneliaadressi hiljem teisele sessioonile.

Milline identiteet sul tegelikult on

Versiooni 3 olekufail on tavaline lähtekoht. CLIENT_LIST-i jaotis kannab common name'i, tegelikku aadressi, baidiloendureid ja ühenduse aega; ROUTING TABLE-i jaotis seob virtuaalse aadressi common name'iga koos viimase viite ajatempliga. Common name on püsiv identiteet. Virtuaalne aadress on määramine ja NAT-i taga olev tegelik aadress võib sessioonide vahel muutuda, ilma et serveris midagi muutuks.

Haldusliides pakub sarnast vaadet oma status käsuga ja lisab iga sessiooni kohta kliendi ID. Just seda ID-d ootab client-kill, ja see ei ole tunneliaadress. Kui pead teadma, milline common name sai ühenduse hetkel millise aadressi, on client-connect skripti keskkonnas mõlemad koos usaldusväärse välisaadressiga, kuid see skript töötab OpenVPN-i kasutajana ja vajab kirjutatavat logiteed.

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

Tapa kohe, keeldu sisselogimisel, tühista jäädavalt

Haldusliidese mõlemad eemaldamiskäsud on sessioonitoimingud. kill võtab common name'i või tegeliku aadressi ja pordi; client-kill võtab kliendi ID ja lõpetab selle instantsi kohe. Kumbki ei ole blokeering: kehtiva sertifikaadi ja parooliga välja visatud klient ühendub sekunditega uuesti, mis on sobiv, kui ringluses on testpeer, ja kasutu, kui sülearvuti on varastatud.

client-deny on teist tüüpi otsus. Seda väljastatakse tavaliselt autentimis- või client-connect-konksust ja see lükkab sessiooni põhjendusega tagasi, nii et see sobib poliitikale, mis keeldub sisselogimisest, mitte sellele, mis katkestab ühenduse. Dokumentatsioon hoiatab ka, et TLS-i uuesti läbirääkimise ajal väljastatud keeld muudab uuesti läbiräägitud võtme kehtetuks, samal ajal kui olemasolev sessioon võib töötada kuni üleminekuaakna sulgumiseni. Kui nõue on, et klient on kohe kadunud, on dokumenteeritud vastus client-kill.

Püsiv eemaldamine asub kõige selle all. Tühista sertifikaat ja veendu, et crl-verify osutab loendile, mille server tegelikult uuesti laadib, keela kliendipõhine konfiguratsioonifail ccd-kataloogis või keela konto selles backendis, mida autentimiskonks pärib. Tühistamine ei ole ka kohene: vaikimisi reneg-sec seadetega võib loodud sessioon töötada kuni uuesti läbirääkimiseni, nii et sessioonitoiming ja mandaaditoiming täiendavad teineteist, mitte ei ole alternatiivid.

Kas haldussokkel on vaba?

Haldusliides teenindab korraga ühte klienti. Kui GUI või monitooringudeemon hoiab ühendust juba käes, ei saa sinu skript selle kõrvale kinnituda, ja sõltuvalt kliendist võid olemasoleva välja tõrjuda, selle asemel et puhtalt ebaõnnestuda. Selle parool liigub sellel soklil puhtas tekstis, nii et see kuulub kohalikule aadressile või unix-soklile, mitte kunagi avalikule liidesele.

Kui sa ei saa soklit võtta, on sul siiski valikuid ja need on kõik aeglasemad. Vabasta kõigepealt GUI sessioon, kui seda juhid, või nõustu mandaadikihi teega ja oota järgmist uuesti läbirääkimist. Mida sa ei peaks tegema, on teenuse taaskäivitamine ühe kliendi vabanemiseks, sest see lõpetab ka kõik teised sessioonid ja hävitab selle sessiooni olekufaili tõendid.

Järjekord, mida ma töötaval serveril käivitan

Kinnitu, loe praegust olekut, tegutse ID järgi, mille just lugesid, ja loe siis uuesti. Dokumendist kopeeritud väärtused on kõige tavalisem viis tappa vale inimene.

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

Ülal olev nimi ja number on kohahoidjad ning ID-sid kasutatakse uuesti pärast seda, kui teised kliendid on katkestanud. Enne kui märgid midagi tehtuks, kinnita, et rida puudub, ja kontrolli, et ühendatud klientide arv liikus ühe võrra, mitte mitme võrra.

Kinnita, et see jäi eemale

Kirjuta üles common name, tunneliaadress, välisaadress ja eemaldamise minut. Kui sama common name ilmub minut hiljem uuesti, toimis sessioonitoiming ja mandaadikiht ei toimunud, mis on täiesti teistsugune parandus kui käsk, mis ei hakanudki kehtima.

Seejärel testi kliendi poolt. Tühistatud sertifikaat peaks järgmisel handshake'il ebaõnnestuma; kui see ikka ühendub, ei loeta CRL-i üldse, ja see on leid, mida tasub teatada. Vali toiming selle järgi, mida pead lõpetama, kinnita teise status-ga ja paranda mandaadikiht, kui vastus peab kestma kauem kui sessioon.

Seotud artiklid