Opětovné vydání certifikátu notebooku pod stejným společným jménem vypadá jako náhrada a všichni předpokládají, že starý je mrtvý. Není. Předchůdce zůstává platným certifikátem podepsaným stejnou autoritou a jakákoli kontrola, která přijímá klienty podle jména, ho bude přijímat dál. To, co odděluje kontrolu identity od kontroly přihlašovacích údajů, je sériové číslo, a tam patří oprava.

Začněte zásadou pojmenování, kterou server používá

Dvě kontroly se zaměňují: přijetí klienta podle toho, kým se prohlašuje být, a vyřazení jednoho konkrétního certifikátu z provozu. První je kontrola jména, druhá kontrola odvolání. Odpovídají na různé otázky a nasazení může mít jednu bez druhé.

Přečtěte si konfiguraci serveru a poznamenejte si, který zdroj identity se uplatňuje. username-as-common-name činí ověřené uživatelské jméno efektivním jménem pro vyhledávání specifická pro klienta. Bez něj se použije společné jméno subjektu z certifikátu. Ať je odpověď jakákoli, zapište ji, než se dotknete jakéhokoli seznamu povolených.

Obě cesty dávají jinou sadu povolených jmen pro stejný certifikát. Hádání zde znamená upravit špatný soubor a dojít k závěru, že kontrola nefunguje.

Ověřte, co klienta skutečně přijímá

Direktiva client-config-dir s odpovídajícím souborem poskytuje volby pro jednotlivé klienty; sama o sobě není pravidlem přijetí. Přijetí podle jména vyžaduje ccd-exclusive, které odmítá klienty bez odpovídajícího souboru. Zapnutí na živém nasazení odpojí všechny, jejichž jméno nemá soubor, proto soubory nejprve spočítejte, než cokoli přepnete.

grep -nE 'ccd-exclusive|client-config-dir|username-as-common-name' /etc/openvpn/server/server.conf
ls -1 /etc/openvpn/ccd/

Počet je kontrola: porovnejte výpis adresáře s identitami, které očekáváte, že se připojí.

Poté ověřte, že každé jméno souboru přesně odpovídá efektivní identitě, včetně velikosti písmen a mezer. Soubor pro office-laptop nic nedělá pro certifikát, jehož subjekt zní Office-Laptop. Koncové mezery se také skrývají před běžným výpisem, a tak soubor, který vypadá přítomně, zůstává nepřečtený.

Ověřte CRL, kterou brána načítá

CRL uvádí odvolané certifikáty podle vydavatele a sériového čísla, což je granularita, která kontrole jména chybí. Dva certifikáty mohou sdílet společné jméno a lišit se sériovým číslem, a odděluje je jen seznam na úrovni sériového čísla.

Ověřte nakonfigurovanou cestu, datum vydání a pole příští aktualizace, než souboru vůbec uvěříte.

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
openssl x509 -in office-laptop.crt -noout -serial -subject

Porovnejte sériové číslo v CRL se sériovým číslem na certifikátu, který chcete zachovat. Toto porovnání je celý test a udělat ho jednou okem má větší cenu než věřit skriptu, který nikdo nečetl. Distribuujte aktualizovanou CRL cestou, kterou brána už čte. CRL ve špatném adresáři nic nevynucuje a žádný klientský protokol to nezmíní.

Nahraďte, a poté prokažte oba výsledky

Vydajte náhradu pod stejným společným jménem, zaznamenejte obě sériová čísla a teprve potom odvolejte starý. Toto pořadí udržuje funkční identitu dostupnou, zatímco připravujete změnu.

Nejprve otestujte náhradu: měla by se autentizovat a dosáhnout všeho, na co má její jméno nárok. Poté otestujte starý certifikát a potvrďte, že je odmítnut, protože úspěšná náhrada nic neříká o odvolání. Pokud se oba stále připojují, vstup odvolání se nečte nebo staré sériové číslo nikdy nebylo uvedeno. Pokud se nepřipojuje ani jeden, porušili jste pravidlo přijetí, ne přihlašovací údaj.

Již navázané relace jsou samostatná věc, protože odvolání platí pro nová ověření, pokud brána není nakonfigurována také tak, aby rušila živá spojení. Rozhodněte, zda je nutné okamžité odstranění, než to někomu slíbíte.

Co kontrola jména nikdy nedokáže

Seznam povolených odpovídá na to, zda se tato identita smí připojit. Nedokáže říci, který certifikát tato identita použila, a bude přijímat starší přihlašovací údaj, dokud zůstává platný a neodvolaný. Tato mezera se vynoří během incidentu, kdy náhrada byla vydána před měsíci a předchůdce stále funguje.

Kde je vyžadována kontrola na úrovni certifikátu, použijte mechanismus, který certifikát pojmenuje: záznamy CRL, nebo ověřovací hook, který kontroluje otisk, jejž udržuje operátor. Oba stojí údržbu a oba jsou poctivé ohledně objektu, který zkoumají. Příručka OpenVPN 2.6 dokumentuje crl-verify a přijímání konkrétních klientů jako samostatné volby právě proto.

Zapište, která kontrola dělá kterou práci, a poté otestujte negativní případ. Odvolání, které jste nikdy neviděli odmítnout spojení, je konfigurace, o níž doufáte, že funguje.

Související články