Yhden OpenVPN-asiakkaan potkiminen: kill, deny vai sertifikaatin mitätöinti?
Kolme OpenVPN-toimea poistaa asiakkaan, mutta jokainen päättää eri asian: käynnissä olevan istunnon, yhden kirjautumisyrityksen tai oikeuden yhdistää uudelleen. Valitse identiteetin mukaan.
Muistiinpanoissasi on common name ja osoite sekä kolme komentoa, jotka kaikki näyttävät poistavan asiakkaan. Vain yksi tekee sen, mitä haluat, ja valinta riippuu siitä, pitääkö nykyinen istunto lopettaa, seuraava kirjautuminen hylätä vai oikeus yhdistää kokonaan poistaa. Lue identiteetti, joka sinulla todella on, ennen kuin kosket mihinkään, sillä OpenVPN-allas antaa saman tunneliosoitteen myöhemmin toiselle istunnolle.
Mikä identiteetti sinulla todella on
Version 3 tilatiedosto on tavallinen lähtökohta. CLIENT_LIST-osio sisältää common name -arvon, todellisen osoitteen, tavulaskurit ja yhteyden keston; ROUTING TABLE -osio yhdistää virtuaaliosoitteen common name -arvoon viimeisen viittauksen aikaleimalla. Common name on pysyvä identiteetti. Virtuaaliosoite on määritys, ja NATin takana oleva todellinen osoite voi vaihtua istuntojen välillä ilman, että palvelimella muuttuu mikään.
Hallintaliittymä tarjoaa samankaltaisen näkymän status-komennollaan ja lisää asiakastunnisteen istuntoa kohden. Juuri sitä tunnistetta client-kill odottaa, eikä se ole tunneliosoite. Jos sinun on tiedettävä, mikä common name sai yhdistämisen hetkellä minkä osoitteen, client-connect-komentosarjan ympäristössä on molemmat sekä luotettu ulkoinen osoite, mutta kyseinen komentosarja ajetaan OpenVPN-käyttäjänä ja tarvitsee kirjoitettavan lokipolun.
| 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 |
Tapa heti, kiellä kirjautuessa, mitätöi pysyvästi
Molemmat hallintaliittymän poistokomennot ovat istuntotoimia. kill ottaa common name -arvon tai todellisen osoitteen ja portin; client-kill ottaa asiakastunnisteen ja päättää kyseisen instanssin heti. Kumpikaan ei ole esto: potkittu asiakas, jolla on kelvollinen sertifikaatti ja salasana, yhdistää uudelleen sekunneissa, mikä on hyvä, kun kierrätät testipeeriä, ja hyödytön, kun kannettava on varastettu.
client-deny on erilainen päätös. Se annetaan yleensä todennus- tai client-connect-koukusta ja hylkää istunnon syyn kanssa, joten se sopii käytäntöön, joka kieltäytyy kirjautumisesta, ei siihen, joka keskeyttää yhteyden. Dokumentaatio varoittaa myös, että TLS-uudelleenneuvottelun aikana annettu kielto mitätöi uudelleenneuvotellun avaimen, kun taas olemassa oleva istunto voi jatkua siirtymäikkunan sulkeutumiseen asti. Jos vaatimuksena on, että asiakas on heti poissa, dokumentoitu vastaus on client-kill.
Pysyvä poisto on kaiken tämän alla. Mitätöi sertifikaatti ja varmista, että crl-verify osoittaa luetteloon, jonka palvelin todella lataa uudelleen, poista asiakaskohtainen määritystiedosto ccd-hakemistosta tai poista tili käytöstä taustajärjestelmässä, jota todennuskoukku kysyy. Mitätöintikään ei ole välitön: reneg-sec-oletusasetuksilla vakiintunut istunto voi jatkua, kunnes se neuvotellaan uudelleen, joten istuntotoimi ja tunnistetietotoimi täydentävät toisiaan, eivät ole vaihtoehtoja.
Onko hallintapistoke vapaa?
Hallintaliittymä palvelee yhtä asiakasta kerrallaan. Jos GUI tai valvontadaemon pitää yhteyttä jo hallussaan, komentosarjasi ei voi liittyä sen viereen, ja asiakkaasta riippuen voit työntää olemassa olevan ulos sen sijaan, että epäonnistuisit siististi. Sen salasana kulkee selväkielisenä kyseisessä pistokkeessa, joten se kuuluu paikalliseen osoitteeseen tai unix-pistokkeeseen, ei koskaan julkiseen liittymään.
Kun et voi ottaa pistoketta, sinulla on silti vaihtoehtoja, ja ne ovat kaikki hitaampia. Vapauta ensin GUIn istunto, jos hallitset sitä, tai hyväksy tunnistetietokerroksen reitti ja odota seuraavaa uudelleenneuvottelua. Sitä sinun ei pitäisi tehdä: käynnistää palvelua uudelleen yhden asiakkaan poistamiseksi, koska se päättää myös kaikki muut istunnot ja tuhoaa tämän istunnon tilatiedoston todisteet.
Järjestys, jonka ajan tuotantopalvelimella
Liity, lue nykytila, toimi juuri lukemasi tunnisteen perusteella ja lue se sitten uudelleen. Asiakirjasta kopioidut arvot ovat yleisin tapa tappaa väärä henkilö.
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 goneYllä oleva nimi ja numero ovat paikkamerkkejä, ja tunnisteet käytetään uudelleen, kun muut asiakkaat ovat katkaisseet yhteyden. Vahvista, että rivi puuttuu, ennen kuin kirjaat mitään tehdyksi, ja tarkista, että yhdistettyjen asiakkaiden määrä siirtyi yhdellä eikä usealla.
Vahvista, että se pysyi poissa
Kirjaa common name, tunneliosoite, ulkoinen osoite ja poiston minuutti. Jos sama common name ilmestyy uudelleen minuuttia myöhemmin, istuntotoimi toimi ja tunnistetietokerros ei, mikä on täysin erilainen korjaus kuin komento, joka ei koskaan tullut voimaan.
Testaa sitten asiakkaan puolelta. Mitätöidyn sertifikaatin pitäisi epäonnistua seuraavassa handshakessa; jos se silti yhdistää, CRL:ää ei lueta lainkaan, ja se on raportoimisen arvoinen löydös. Valitse toimi sen mukaan, mitä sinun on lopetettava, vahvista toisella status-komennolla ja korjaa tunnistetietokerros, kun vastauksen on kestettävä istuntoa pidempään.