Ingetrokken client verbindt nog steeds: de lijst kwam nooit aan
Intrekking is een invoer voor certificaatverificatie, geen opdracht die een sessie beëindigt. Vergelijk hoe een nieuwe verbinding en een lopende tunnel de lijst zien.
Intrekking dringt nooit een lopende tunnel binnen om een sessie te verwijderen. De lijst is een invoer voor certificaatverificatie en wordt geraadpleegd tijdens de uitwisseling van het besturingskanaal waarmee een TLS-sessie begint. Dat ene feit verklaart beide verrassingen: een ingetrokken client verbindt opnieuw omdat de lijst de verificateur nooit bereikte, en een bestaande sessie blijft bestaan omdat niemand iets opnieuw verifieerde.
Een lijst is invoer, geen actie
Bij het opzetten van de sessie valideert de server het clientcertificaat tegen zijn vertrouwensankers, en de intrekkingsrichtlijn voegt een lijstzoekopdracht aan die beslissing toe. De controle gebeurt op de server, dus de client kan niet zien dat zijn certificaat is ingetrokken en blijft hetzelfde aanbieden. Een profiel dat nog verbindt, bewijst dus alleen dat een of andere verificateur de keten accepteerde, niet dat intrekking faalde.
De lijst is zelf een ondertekend object met een uitgiftedatum en een volgende updatedatum. Een ongerelateerde lijst, een die door een andere autoriteit is ondertekend of een waarvan de volgende update is verstreken, vervangt de huidige niet, en of een verouderde lijst wordt geweigerd of stilzwijgend geaccepteerd, hangt van de uitrol af.
Nieuwe verbinding versus lopende sessie
Intrekking wordt geëvalueerd wanneer een sessie tot stand komt of opnieuw wordt onderhandeld, niet tegen het datakanaal bij elk pakket. Een client die al verbonden is, heeft verkeerssleutels en laat daarom nog pakketten door nadat zijn certificaat op de lijst verschijnt. Het standaardinterval voor heronderhandeling wordt in uren gemeten, waardoor een bijgewerkte lijst voor nieuwkomers kan gelden terwijl een lopende tunnel blijft staan.
| 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 |
Onmiddellijke handhaving vereist een bewuste actie en niet alleen de lijst. De dienst herstarten dwingt elke client opnieuw te verbinden, terwijl het beëindigen van één sessie via de beheerinterface de andere ongemoeid laat. Kies er één per incident en noteer welke u gebruikte. De twee opties hebben een verschillende impact, en dat is de echte beslissing.
Lever het bestand dat de verificateur werkelijk leest
De lijst moet uit het register van de autoriteit worden gegenereerd en vervolgens naar elke machine worden gekopieerd die certificaten verifieert. Hem op de CA-host genereren en nooit op de server installeren is de meest voorkomende fout, en het ziet er precies uit als een kapotte intrekkingsfunctie.
ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem
Twee details bepalen of het bestand echt wordt gelezen. Een relatief pad wordt tegen de configuratiemap opgelost, dus een kopie in de thuismap van een operator wordt misschien nooit gevonden. En de daemon geeft na het starten meestal zijn rechten op, dus het runtime-account heeft zoekrecht op elke bovenliggende map en leesrecht op het bestand nodig. Controleer beide met het runtime-account in plaats van met root, anders bewijst de test het verkeerde.
Op systemd-hosts kan een geharde unit het pad ook verbergen, met een alleen-lezen weergave of een beschermde systeemmap. Van binnenuit de dienst is dat niet te onderscheiden van een ontbrekend bestand, dus controleer de beperkingen van de unit voordat u naar een rechtenfout gaat zoeken. Lees het unitbestand voordat u de bestandsmodus de schuld geeft.
Bevestig op de server, niet op de client
De serverlog noemt wat er gebeurde: de lijst openen, laden of verificatie mislukken met het ingetrokken serienummer. De client meldt alleen een algemene handshakefout, daarom zijn clientlogs een slechte plek om een intrekkingsbeslissing te zoeken.
Verifieer met een nieuwe poging vanuit het ingetrokken profiel en stop dan. Een geslaagde verbinding vanuit dat profiel is het signaal om het bestandspad en het runtime-account te onderzoeken, niet om aan te nemen dat de lijst verkeerd was. Houd die geslaagde poging als acceptatietest, en tel geen herverbinding die u niet zelf zag.
Wat niets intrekt
Het profiel van een laptop verwijderen, het certificaatbestand van de client halen of de gebruiker zeggen te stoppen met verbinden verandert niets op de server. Het certificaat blijft geldig tot de autoriteit de intrekking vastlegt en de verificateur de resulterende lijst leest.
Daarom is de keten het opschrijven waard: leg de intrekking vast, genereer en onderteken de lijst, verspreid precies dat bestand en bevestig dat het serviceaccount het kan lezen. Elke schakel is kort, en elke ontbrekende schakel laat een ingetrokken client vrolijk verbinden. Een checklist van vier regels verslaat een aanname zonder enkele regel.