Jauni VPN pieraksti neizdodas, lai gan sertifikāti ir derīgi: pārbaudiet CRL
Derīgs klienta sertifikāts un beidzies atsaukšanas saraksts ir divi dažādi objekti ar diviem dažādiem pulksteņiem. Izlasiet sarakstu, ko ielādē serveris, un pēc tam ģenerējiet to no jauna.
Sertifikāti, kuriem atlikuši mēneši, un pieraksti, kas neizdodas uzreiz, norāda uz diviem dažādiem objektiem ar diviem dažādiem pulksteņiem. Serveris noraida savienojumus tāpēc, ka atsaukto sertifikātu saraksts, kuru tas konsultē, ir pārsniedzis savu derīguma termiņu, nevis tāpēc, ka lietotāju sertifikāti ir novecojuši. Lietotāja sertifikāta atjaunošana šim sarakstam neko nedod.
Abu grafiku atdalīšana ir visa diagnoze, un tā maina to, kādam jābūt labojumam.
Divi pulksteņi, un tikai viens no tiem ir sertifikāts
Sertifikātam ir derīguma logs. Sertifikātu atsaukšanas sarakstam ir savs logs, kā arī izdevējs un paraksts, un pārbaudītāji atsakās uzticēties sarakstam, kura nākamās atjaunināšanas laiks ir pagājis. Kad tas notiek, klients uzrāda pilnīgi derīgu sertifikātu, un serveris tomēr pārtrauc savienojumu ar ziņojumu par sarakstu. Lietotāji šo ziņojumu nolasa kā “sertifikāts ir beidzies”, un atjaunināšanas pieprasījums aiziet nepareizajā vietā.
Abiem objektiem ir arī dažādi īpašnieki: sertifikāts nāk no CA, kas to izdevis, bet sarakstu pēc grafika ģenerē tas, kurš pārvalda šo CA. Lietotājs to nevar atjaunot, un sertifikātu atkārtota izdošana to nevar pagarināt.
Izlasiet sarakstu, ko pakalpojums faktiski ielādē
Sāciet ar darbojošos konfigurāciju, nevis ar failu, kuru gaidāt. crl-verify ceļš var būt absolūts, relatīvs pret profilu vai attēlā iestrādāta kopija, un pārbaudītājs lasa tieši šo kopiju. Pārbaudiet to uz vietas ar openssl crl -in /etc/openvpn/crl.pem -noout -issuer -lastupdate -nextupdate un salīdziniet datumus ar servera pulksteni.
Pēc tam apstipriniet, ka fails patiešām ir izmantotais: pārbaudiet tā parakstu ar openssl crl -in /etc/openvpn/crl.pem -CAfile /etc/openvpn/ca.crt -noout, kas ziņo pārbaudes rezultātu, nevis klusi izdrukā laukus. Saraksts, ko parakstījusi cita CA, vai novecojusi kopija, kas palikusi otrajā direktorijā, neizdodas tieši tāpat kā beidzies saraksts.
Ģenerējiet no jauna no atsaukšanas datubāzes, nevis no nulles
Jaunajam sarakstam jānāk no CA pašreizējās atsaukšanas datubāzes, izmantojot apstiprināto parakstīšanas procesu. Tukša saraksta ģenerēšana vai ģenerēšana no vecas indeksa dublējuma klusi atceļ atsaukumu katrai identitātei, kas pievienota pēc šī dublējuma. Tas pārvērš pierakstīšanās pārtraukumu drošības regresijā, un neviens to nepamana, jo simptoms pazūd.
Turiet ģenerēšanas soli versiju kontrolē kopā ar pārējiem CA rīkiem, lai intervāls un parakstīšanas atslēga būtu dokumentēti, nevis atcerēti. Pietiek ar runbook ierakstu, kurā nosaukta komanda, parakstītājs un publicēšanas mērķis. Tad ikviens dežūrējošais var ģenerēt no jauna, nenojaušot, kurš indeksa fails ir autoritatīvs. Glabājiet saraksta sērijas numuru un nākamās atjaunināšanas laiku kopā ar izvietošanas ierakstu.
Izvietojiet tur, kur skatās pārbaudītājs
Kopējiet jauno sarakstu uz ceļu, ko lasa pakalpojums, iestatiet īpašumtiesības un režīmu tā, lai pakalpojuma konts to varētu lasīt, bet citi ne, un pārlādējiet vai restartējiet saskaņā ar dokumentēto uzvedību. Ja dēmons saglabā sarakstu kešatmiņā startēšanas laikā, faila aizstāšana bez pārlādes nemaina neko, ko pamanītu darbojošais process. Apstipriniet laika zīmogu, ko process ziņo pēc pārlādes.
Ja vairāki pakalpojumi pārbauda klientus, izvietojiet katrā no tiem. Viena galapunkta atjaunināšana un otra atstāšana ar veco kopiju rada kļūmi, kas parādās tikai tiem lietotājiem, kuri nonāk otrajā. Turiet īsu šo galapunktu sarakstu tajā pašā runbook. Pēc izvietošanas pārbaudiet katra ziņoto saraksta datumu, nevis pieņemiet, ka kopija ir nonākusi.
Padariet nākamo termiņu redzamu pirms tā iestāšanās
Garāks publicēšanas intervāls samazina šī incidenta biežumu, neveidojot procesu. Izvēlieties intervālu no operatora politikas, pēc tam iestatiet brīdinājumu par izvietotā saraksta nākamās atjaunināšanas lauku ar pietiekamu laiku, lai ģenerētu un izvietotu no jauna. Brīdiniet par izvietoto kopiju, nevis par CA resursdatoru, jo neizdodas tieši izvietotā kopija.
Pēc izvietošanas pārbaudiet abos virzienos: atļautais lietotājs piesakās, un zināma atsaukta identitāte joprojām neizdodas. Otrā pārbaude ir tā, kas noķer nepilnīgu ģenerēšanu, un tai vajadzīga viena komanda pret testa profilu, ko turat tieši šim nolūkam.