Opozvani klijent se i dalje spaja: popis nikada nije stigao
Opoziv je ulaz u provjeru certifikata, a ne naredba koja završava sesiju. Usporedite kako novi spoj i tunel u radu vide popis.
Opoziv nikada ne ulazi u tunel koji radi da bi izbrisao sesiju. Popis je ulaz u provjeru certifikata i čita se tijekom razmjene kontrolnog kanala kojom počinje sesija TLS. Ta jedna činjenica objašnjava oba iznenađenja: opozvani klijent se ponovno spaja jer popis nikada nije stigao do provjeravatelja, a postojeća sesija preživljava jer nitko ništa nije ponovno provjerio.
Popis je ulaz, a ne radnja
Tijekom uspostave sesije poslužitelj provjerava klijentski certifikat prema svojim sidrima povjerenja, a direktiva opoziva dodaje tom postupku pretragu popisa. Provjera se događa na poslužitelju, pa klijent ne može vidjeti da mu je certifikat opozvan i nastavlja nuditi isti. Profil koji se i dalje spaja time dokazuje samo da je neki provjeravatelj prihvatio lanac, a ne da je opoziv zakazao.
Sam popis je potpisani objekt s datumom izdavanja i datumom sljedećeg ažuriranja. Nepovezani popis, popis koji je potpisalo drugo tijelo ili onaj čiji je datum sljedećeg ažuriranja prošao nije zamjena za trenutačni, a ovisi o primjeni odbija li se zastarjeli popis ili se tiho prihvaća.
Novi spoj nasuprot sesiji u radu
Opoziv se ocjenjuje kada se sesija uspostavlja ili ponovno pregovara, a ne prema podatkovnom kanalu na svakom paketu. Klijent koji je već spojen drži ključeve prometa, pa nastavlja propuštati pakete nakon što se njegov certifikat pojavi na popisu. Zadani interval ponovnog pregovaranja mjeri se satima, pa ažurirani popis može stupiti na snagu za nove, dok tunel u radu ostaje.
| Situation | What the list does | When it applies |
|---|---|---|
| Fresh connection | Blocks the handshake | At verification, immediately |
| Renegotiation | Blocks the new exchange | At the next renegotiation interval |
| Established data channel | Nothing | Until the session ends |
Trenutačna provedba zahtijeva namjernu radnju, a ne samo popis. Ponovno pokretanje usluge prisiljava svakog klijenta da se ponovno spoji, dok prekidanje jedne sesije kroz upravljačko sučelje ostavlja ostale netaknutima. Odaberite jedno po incidentu i zabilježite koje ste upotrijebili. Dvije opcije imaju različit obuhvat i to je prava odluka.
Dostavite datoteku koju provjeravatelj doista čita
Popis se mora generirati iz evidencije tijela i zatim kopirati na svako računalo koje provjerava certifikate. Generirati ga na CA hostu i nikada ga ne instalirati na poslužitelju najčešći je kvar i izgleda upravo kao potpuno pokvarena funkcija opoziva.
ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem
Dva detalja odlučuju čita li se datoteka doista. Relativna putanja razrješava se prema direktoriju konfiguracije, pa kopija ostavljena u operaterovu home direktoriju možda nikada neće biti nađena. A demon obično odbaci privilegije nakon pokretanja, pa račun u radu treba dozvolu pretraživanja u svakom nadređenom direktoriju i dozvolu čitanja datoteke. Provjerite oboje s računom u radu, a ne s root, inače test dokazuje pogrešnu stvar.
Na systemd hostovima očvrsnuta jedinica može sakriti putanju, s prikazom samo za čitanje ili zaštićenim sistemskim direktorijem. Iz usluge se to ne razlikuje od nedostajuće datoteke, pa provjerite ograničenja jedinice prije nego što krenete tražiti grešku u dozvolama. Pročitajte datoteku jedinice prije nego što okrivite način rada datoteke.
Potvrdite na poslužitelju, a ne na klijentu
Poslužiteljski dnevnik imenuje što se dogodilo: otvaranje popisa, njegovo učitavanje ili neuspjeh provjere s opozvanim serijskim brojem. Klijent prijavljuje samo opći neuspjeh rukovanja, zato su klijentski dnevnici loše mjesto za traženje odluke o opozivu.
Provjerite svježim pokušajem s opozvanog profila i zatim stanite. Uspješan spoj s tog profila signal je da pregledate putanju datoteke i račun u radu, a ne da pretpostavite da je popis bio pogrešan. Zadržite taj uspješni pokušaj kao prijamni test i ne računajte ponovno spajanje koje niste gledali.
Što ništa ne opoziva
Brisanje profila s prijenosnog računala, uklanjanje datoteke certifikata s klijenta ili reći korisniku da prestane se spajati ne mijenja ništa na poslužitelju. Certifikat ostaje valjan dok tijelo ne zabilježi opoziv i provjeravatelj ne pročita rezultirajući popis.
Zato je lanac vrijedan zapisivanja: zabilježite opoziv, generirajte i potpišite popis, distribuirajte upravo tu datoteku i potvrdite da je servisni račun može čitati. Svaka karika je kratka, a bilo koja koja nedostaje ostavlja opozvanog klijenta da se veselo spaja. Kontrolni popis s četiri retka bolji je od pretpostavke bez ijednog.