Viena klienta piekļuves apturēšana un tā galīga noņemšana izskatās kā viens un tas pats uzdevums, līdz mēģināt atsaukt kādu no tiem. Sertifikāta atsaukšana ieraksta ierakstu, ko serveris uzskata par galīgu, un tā atsaukšana nozīmē izdevēja datubāzes manuālu rediģēšanu. Darbojošā tuneļa nomešana ir pārvaldības komanda, kas uzticībā neko nemaina. Izvēlieties sviru, jautājot, vai atslēga joprojām ir uzticama, nevis jautājot, cik steidzams šķiet pieprasījums.

Uzskats: atsaukts un apturēts ir viens un tas pats

Darbuzņēmējam tiek dota nedēļas pauze, un reflekss ir atsaukt, jo atsaukšana izklausās kā kaut kā izslēgšana. Tas izskatās kārtīgi, aizņem desmit sekundes, un atstāj datubāzes rediģēšanu kā vienīgo ceļu atpakaļ. Reflekss ir saprotams, un tas ir tuvāk pases sadedzināšanai nekā durvju aizvēršanai. Apturēta ierīce un kompromitēta atslēga prasa atšķirīgu attieksmi, un tikai vienu no tiem ir lēti atsaukt.

Atšķirība ir akreditācijas datos, nevis personā. Atslēgu, kas joprojām ir pareizajās rokās, var apturēt un atsākt bez uzticības zaudēšanas. Atslēgu, kas varēja būt nokopēta, nekad nevajadzētu atjaunot, jo atjaunošana apgalvo, ka kopija nepastāv.

Pierakstiet atbildi pirms pieskaraties kādai no abām sistēmām. Ja nevarat pateikt, vai atslēga ir atklāta, konservatīvā atbilde ir nomaiņa.

Nometiet darbojošo sesiju ar pārvaldības saskarni

OpenVPN piedāvā pārvaldības saskarni, kas var uzskaitīt sesijas un nogalināt vienu no tām pēc kopējā nosaukuma. Iespējojiet to uz localhost, turiet to tālu no publiskās saskarnes un nosūtiet nogalināšanas komandu, kad sesijai jāpazūd tūlīt. Komanda aizver tikai to tuneli, un visi pārējie klienti turpina darboties.

Šī ir atbilde uz aktīvu problēmu, nevis apturēšanas politika. Tas pats profils var atkal pieslēgties minūtes laikā, jo tā akreditācijas datos nekas nav mainījies. Izmantojiet to, kad sesijai jāpazūd un ilgtermiņa lēmums vēl tiek pieņemts.

Pirms nogalināt pārliecinieties, ka sesija bija pieslēgta, lai nevajātu klientu, kas nekad nav pieslēdzies. Zemāk esošā statusa komanda izdrukā, kas pašlaik ir pieslēgts.

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

Ja nogalināšana ziņo, ka tāds klients neeksistē, kopējais nosaukums sertifikātā nav tā virkne, ko ievadījāt. Lasiet statusa izvadi, nevis profila faila nosaukumu.

Ko CRL faktiski kontrolē

Serveris nepieprasa sertifikātā saglabātu atsaukšanas karodziņu. Tas katrā jaunā savienojumā nolasa sertifikātu atsaukšanas sarakstu, kas norādīts crl-verify, un noraida sertifikātu, kura sērijas numurs ir šajā sarakstā. No tā izriet divas sekas, un abas ir svarīgas operatīvi. Failam jābūt lasāmam kontam, kuram serveris nodod savas privilēģijas, un jau pieslēgts klients turpina darboties, līdz pieslēdzas no jauna.

Otrā seka pārsteidz cilvēkus incidentu laikā. Sertifikāta atsaukšana neaizver tuneli, kas to pašlaik izmanto. Ja sesijai jābeidzas nekavējoties, savienojiet atsaukšanu ar pārvaldības nogalināšanu, un uzskatiet abas darbības par atsevišķiem soļiem rokasgrāmatā.

Apskatiet sarakstu, lai redzētu, ko serveris patiešām piemēros, nevis paļaujieties uz pēdējā nokopētā faila laika zīmi. Svarīgā daļa ir sērijas numuru skaits.

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

Saraksts bez ierakstiem un saraksts ar pareizajiem ierakstiem direktorijas sarakstā izskatās vienādi, tāpēc ir vērts izdrukāt sērijas numuru skaitu. Arī atļauju rinda ir tikpat svarīga, jo fails, ko dēmons nevar nolasīt, rada kļūmi, kas izskatās kā noraidīts klients.

Ieraksta atjaunošana, uzmanīgi

Sertifikāta atjaunošana nozīmē apgriezt ierakstu izdošanas datubāzē un publicēt jaunu sarakstu. easy-rsa 3 glabā šo datubāzi kā index.txt PKI direktorijā, savukārt vecāki izkārtojumi izmantoja citu kārtību. Rinda sākas ar statusa burtu un derīguma beigu datumu. Atsaukta rinda ievieto atsaukšanas laika zīmi pirms turpināt ar sērijas numuru, sertifikāta faila nosaukumu un atšķirīgo nosaukumu. Rindas atgriešana nozīmē dzēst šo laika zīmi un apgriezt burtu, bet visu pārējo atstāt mierā.

Vispirms izveidojiet faila dublējumu, un veiciet labojumu kā skriptu, nevis ierakstot teksta redaktorā. Drukas kļūda, kas maina, cik lauku ir rindai, sabojā izdošanu katram vēlāk pievienotajam sertifikātam. Tāpēc izmaiņas ir jāautomatizē un fails jānokopē pirms tam pieskaroties.

Otra atsaukšana ar to pašu nosaukumu arī bieži neizdodas, jo pirmā izpilde pārvietoja šo sertifikātu un tā atslēgu ārpus direktorijām, kur rīks tos gaida. Tad rīks nevar atrast to, ko lūdza atsaukt, un kļūdas ziņojums ne vienmēr skaidri paskaidro, kāpēc.

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

Publicējiet jauno sarakstu, izlabojiet tā īpašumtiesības un lieciet serverim to nolasīt. Lielākajā daļā instalāciju pietiek ar pārlādi, taču apstiprinājumam jānāk no jauna savienojuma, jo esošā sesija neko atkārtoti nav pārbaudījusi.

Pārbaudiet, kuras sviras lieta ir pelnījusi

Uzdodiet vienu jautājumu, kas izlemj visu rokasgrāmatu: vai privātā atslēga joprojām ir tikai tur, kur tai jābūt. Ja ir, sesijas nogalināšana un dokumentēta pauze lietu nosedz un neatstāj pastāvīgu ierakstu. Ja nav, vienīgā drošā atbilde ir jauna atslēga, bet vecais sertifikāts paliek atsaukts.

Pēc tam pārbaudiet rezultātu ar savienojuma mēģinājumu, nevis konfigurācijas atšķirību. Atšķirība pasaka, ko jūs domājāt, un savienojums pasaka, ko serveris piemēro.

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

Kad atjaunots klients pieslēdzas un parādās statusa izvadē, ieraksta labojums darbojās. Kad atsaukts klients tiek noraidīts un žurnāls nosauc CRL, atsaukšana darbojās. Viss pa vidu ir atļauju vai pārlādes problēma, un to ir vērts salabot pirms nākamā pieprasījuma.

Saistītie raksti