Odvolaný klient se stále připojuje: seznam nikdy nedorazil
Odvolání je vstup do ověření certifikátu, ne příkaz, který ukončí relaci. Porovnejte, jak seznam vidí nové připojení a běžící tunel.
Odvolání nikdy nepronikne do běžícího tunelu, aby smazalo relaci. Seznam je vstup do ověření certifikátu a čte se při výměně řídicího kanálu, která zahajuje relaci TLS. Tato jediná skutečnost vysvětluje obě překvapení: odvolaný klient se znovu připojí, protože seznam se k ověřovateli nikdy nedostal, a existující relace přežívá, protože nikdo nic znovu neověřil.
Seznam je vstup, ne akce
Během navazování relace server ověřuje klientský certifikát proti svým důvěryhodným kořenům a direktiva odvolání k tomuto rozhodnutí přidává vyhledání v seznamu. Kontrola probíhá na serveru, takže klient nemůže vidět, že jeho certifikát byl odvolán, a dál nabízí tentýž. Profil, který se stále připojuje, tedy dokazuje jen to, že nějaký ověřovatel řetězec přijal, ne že odvolání selhalo.
Seznam je sám podepsaný objekt s datem vydání a datem příští aktualizace. Nesouvisející seznam, seznam podepsaný jinou autoritou nebo ten, jehož datum příští aktualizace už uplynulo, není náhradou za aktuální a zda se zastaralý seznam odmítne, nebo tiše přijme, závisí na nasazení.
Nové připojení versus běžící relace
Odvolání se vyhodnocuje při navázání nebo opětovném vyjednání relace, ne proti datovému kanálu u každého paketu. Klient, který už je připojený, drží provozní klíče, a tak dál propouští pakety i poté, co se jeho certifikát objeví v seznamu. Výchozí interval opětovného vyjednání se měří v hodinách, a proto může aktualizovaný seznam platit pro nové příchozí, zatímco běžící tunel zůstává.
| 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 |
Okamžité vymáhání vyžaduje záměrný krok, ne jen seznam. Restart služby donutí každého klienta se znovu připojit, zatímco ukončení jedné relace přes rozhraní pro správu nechá ostatní nedotčené. Zvolte pro každý incident jedno a poznamenejte si, které jste použili. Obě možnosti mají jiný dosah a to je skutečné rozhodnutí.
Doručte soubor, který ověřovatel skutečně čte
Seznam se musí vygenerovat ze záznamu autority a potom zkopírovat na každý stroj, který ověřuje certifikáty. Vygenerovat ho na hostiteli CA a nikdy ho nenainstalovat na server je nejčastější selhání a vypadá přesně jako úplně rozbitá funkce odvolání.
ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem
O tom, zda se soubor skutečně čte, rozhodují dva detaily. Relativní cesta se vyhodnocuje vůči konfiguračnímu adresáři, takže kopie ponechaná v domovském adresáři operátora nemusí být nikdy nalezena. A démon obvykle po spuštění odloží oprávnění, takže běžový účet potřebuje právo prohledávat každý nadřazený adresář a právo číst soubor. Ověřte obojí pod běžovým účtem, ne pod root, jinak test dokáže špatnou věc.
Na hostitelích se systemd může zpevněná jednotka cestu také skrýt, a to pohledem jen pro čtení nebo chráněným systémovým adresářem. Zevnitř služby to nelze rozeznat od chybějícího souboru, takže se nejdřív podívejte na omezení jednotky, než začnete hledat chybu v oprávněních. Přečtěte si soubor jednotky, než obviníte režim souboru.
Potvrďte to na serveru, ne na klientovi
Serverový log pojmenuje, co se stalo: otevření seznamu, jeho načtení nebo selhání ověření s odvolaným sériovým číslem. Klient hlásí jen obecné selhání handshake, a proto jsou klientské logy špatným místem pro hledání rozhodnutí o odvolání.
Ověřte to novým pokusem z odvolaného profilu a pak přestaňte. Úspěšné připojení z tohoto profilu je signálem prozkoumat cestu k souboru a běžový účet, ne předpokládat, že seznam byl špatný. Ponechte tento úspěšný pokus jako akceptační test a nepočítejte opětovné připojení, které jste nesledovali.
Co nic neodvolá
Smazání profilu z notebooku, odstranění souboru certifikátu z klienta nebo pokyn uživateli, aby se přestal připojovat, na serveru nic nezmění. Certifikát zůstává platný, dokud autorita odvolání nezaznamená a ověřovatel nepřečte výsledný seznam.
Proto se vyplatí ten řetěz zapsat: zaznamenejte odvolání, vygenerujte a podepište seznam, rozšiřte právě tento soubor a potvrďte, že ho servisní účet dokáže přečíst. Každý článek je krátký a kterýkoli chybějící nechá odvolaného klienta vesele se připojovat. Kontrolní seznam o čtyřech řádcích je lepší než předpoklad o žádném.