Ühe kliendi juurdepääsu pausile panemine ja selle jäädavalt eemaldamine näivad sama tööna, kuni proovite ühte neist tagasi võtta. Sertifikaadi tühistamine kirjutab kirje, mida server kohtleb lõplikuna, ja selle tagasipööramine tähendab väljastaja andmebaasi käsitsi muutmist. Töötava tunneliga lõpparve tegemine on halduskäsk, mis ei muuda usalduses midagi. Valige hoob, küsides, kas võti on endiselt usaldusväärne, mitte küsides, kui kiireloomuline taotlus tundub.

Uskumus: tühistatud ja peatatud on sama asi

Töövõtja pannakse nädalaks pausile ja refleks on tühistada, sest tühistamine kõlab nagu millegi väljalülitamine. See näeb korralik välja, võtab kümme sekundit ja jätab andmebaasi muutmise ainsaks tagasiteeks. Refleks on mõistetav ja see on lähemal passi põletamisele kui ukse sulgemisele. Pausile pandud seade ja kompromiteeritud võti vajavad erinevat kohtlemist ning ainult ühte neist on odav tagasi pöörata.

Erinevus on mandaadis, mitte inimeses. Võtit, mis on veel õigetes kätes, saab pausile panna ja jätkata ilma igasuguse usalduse kaotuseta. Võtit, mis võib olla kopeeritud, ei tohiks kunagi taastada, sest taastamine väidab, et koopiat ei ole olemas.

Kirjutage vastus üles enne, kui puudutate kumbagi süsteemi. Kui te ei oska öelda, kas võti on paljastatud, on konservatiivne vastus asendamine.

Laske töötav sessioon lahti haldusliidese kaudu

OpenVPN pakub haldusliidest, mis suudab sessioone loetleda ja ühe neist üldnime järgi tappa. Lubage see localhostil, hoidke see avalikust liidesest eemal ja saatke tapmiskäsk, kui sessioon peab kohe kaduma. Käsk sulgeb ainult selle tunneli ja kõik teised kliendid jätkavad tööd.

See on vastus aktiivsele probleemile, mitte peatamispoliitika. Sama profiil saab minuti jooksul uuesti ühenduda, sest selle mandaadis ei muutunud midagi. Kasutage seda, kui sessioon peab kaduma ja püsiv otsus on alles tegemisel.

Kinnitage, et sessioon oli ühendatud, enne kui selle tapate, et te ei jahiks klienti, kes ei ühendunud kunagi. Allolev olekukäsk väljastab selle, mis on praegu ühendatud.

printf 'status 2\nquit\n' | nc 127.0.0.1 7506
printf 'kill kiosk-14\nquit\n' | nc 127.0.0.1 7506

Kui tapmine teatab, et sellist klienti ei ole, ei ole sertifikaadis olev üldnimi see string, mille te trükkisite. Lugege olekuväljundit, mitte profiilifaili nime.

Mida CRL tegelikult juhib

Server ei konsulteeri sertifikaadile salvestatud tühistamislippu. Ta loeb crl-verifyga nimetatud sertifikaatide tühistamisnimekirja igal uuel ühendusel ja lükkab tagasi sertifikaadi, mille seerianumber selles nimekirjas esineb. Sellest järeldub kaks tagajärge ja mõlemad on töökorralduslikult olulised. Fail peab olema loetav kontole, kellele server privileege langetab, ja juba ühendatud klient töötab edasi, kuni ta uuesti ühendub.

Teine tagajärg üllatab inimesi intsidentide ajal. Sertifikaadi tühistamine ei sulge tunnelit, mis seda parasjagu kasutab. Siduge tühistamine haldustapmisega, kui sessioon peab kohe lõppema, ja käsitlege mõlemat tegevust juhendis eraldi sammudena.

Kontrollige nimekirja, et näha, mida server tegelikult jõustab, selle asemel et usaldada viimase kopeeritud faili ajatemplit. Tähtis on seerianumbrite arv.

openssl crl -in /etc/openvpn/server/crl.pem -noout -text | sed -n '1,14p'
ls -l /etc/openvpn/server/crl.pem

Kirjeteta nimekiri ja õigete kirjetega nimekiri näevad kataloogiloendis ühesugused välja, seepärast tasub seerianumbrite arv välja trükkida. Õigusterida on sama tähtis, sest fail, mida deemon lugeda ei saa, tekitab vea, mis näeb välja nagu tagasilükatud klient.

Kirje taastamine, ettevaatlikult

Sertifikaadi taastamine tähendab kirje pööramist väljastusandmebaasis ja uue nimekirja avaldamist. easy-rsa 3 hoiab seda andmebaasi index.txt-na PKI kataloogis, samal ajal kui vanemad paigutused kasutasid teistsugust korraldust. Rida algab olekutähe ja aegumiskuupäevaga. Tühistatud rida lisab tühistamise ajatempli enne, kui jätkab seerianumbri, sertifikaadifaili nime ja eristava nimega. Rea tagasi panemine tähendab selle ajatempli kustutamist ja tähe ümberpööramist, jättes kõik muu puutumata.

Tehke failist esmalt varukoopia ja kirjutage muudatus skriptina, mitte trükkides tekstiredaktoris. Trükiviga, mis muudab rea väljade arvu, rikub väljastamise igale hiljem lisatud sertifikaadile. Seepärast tasub muudatus automatiseerida ja fail enne puudutamist kopeerida.

Sama nime teine tühistamine ebaõnnestub sageli samuti, sest esimene käivitus viis selle sertifikaadi ja selle võtme kataloogidest välja, kus tööriist neid ootab. Siis ei leia tööriist seda, mida tal paluti tühistada, ja veateade ei selgita alati selgelt, miks.

cp /etc/easy-rsa/pki/index.txt /root/index.txt.$(date +%F-%H%M)
grep -c '^R' /etc/easy-rsa/pki/index.txt
easyrsa gen-crl

Avaldage uus nimekiri, parandage selle omandiõigus ja pange server see lugema. Enamikus paigaldustes piisab uuestilaadimisest, kuid kinnitus peab tulema värskest ühendusest, sest olemasolev sessioon ei kontrollinud midagi uuesti.

Kontrollige, millist hooba juhtum väärib

Esitage üks küsimus, mis otsustab kogu juhendi: kas privaatvõti on endiselt ainult seal, kus see olema peab. Kui on, katab sessiooni tapmine pluss dokumenteeritud paus juhtumi ega jäta maha püsivat kirjet. Kui ei ole, on ainus turvaline vastus uus võti, jättes vana sertifikaadi tühistatuks.

Seejärel kontrollige tulemust ühenduse katsega, mitte konfiguratsiooni erinevusega. Erinevus ütleb, mida te kavatsesite, ja ühendus ütleb, mida server jõustab.

openssl crl -in /etc/openvpn/server/crl.pem -noout -text | grep -c 'Serial Number'
printf 'status 2\nquit\n' | nc 127.0.0.1 7506

Kui taastatud klient ühendub ja ilmub olekuväljundisse, toimis kirje muutmine. Kui tühistatud klient lükatakse tagasi ja logi nimetab CRL-i, toimis tühistamine. Kõik vahepealne on õiguste või uuestilaadimise probleem ja see tasub parandada enne, kui saabub järgmine taotlus.

Seotud artiklid