Як відкликати втрачений пристрій VPN: ключ, сертифікат або обліковий запис
Втрачений пристрій — це три особи одразу: ключ партнера WireGuard, клієнтський сертифікат і сеанс облікового запису. Відкличте ту, яку перевіряє ваш сервер.
Ваш ноутбук зник, а VPN досі вважає його клієнтом. Термінове питання не в тому, як видалити профіль на машині, якої у вас більше немає, а в тому, яку особу сервер усе ще приймає. WireGuard перевіряє відкритий ключ, налаштування OpenVPN на основі PKI перевіряє клієнтський сертифікат, а VPN з єдиним входом перевіряє обліковий запис і його сеансовий токен. Ці три відкликаються в різних місцях і з різною швидкістю, і виправлення одного з ігноруванням інших — це те, як втрачений пристрій залишається підключеним.
Три особи і що кожна з них контролює
Кожен механізм відповідає на своє питання. Ключ партнера відповідає, чи це та машина, яку ви зареєстрували. Сертифікат відповідає, чи підписаний він вашим CA і чи не відкликаний. Обліковий запис відповідає, чи ця людина автентифікувалася достатньо недавно. Розгортання, яке накладає два з них, наприклад сертифікат плюс вхід через каталог, зачиняє двері лише тоді, коли кожному рівню, який видав пристрою щось, сказано припинити це приймати.
Практична пастка в тому, що зникла машина тримає закриту половину кожного посвідчення, тому все, що ви робите локально, до сервера не доходить.
WireGuard: видаліть партнера, бо списку відкликання немає
WireGuard не веде жодного списку заборон. Інтерфейс приймає рівно ті відкриті ключі, які налаштовані як партнери, тому відкликання — це видалення: виконайте wg set wg0 peer <public-key> remove, форму, описану в wg(8), потім видаліть відповідний блок [Peer] із wg0.conf. Зробіть і те, і те. Видалення лише під час роботи зберігається до наступного перезавантаження або перезавантаження конфігурації, коли файл повертає ключ.
Наявні сеанси не потребують таймера, щоб померти. Видалення партнера скидає його рукостискання і ключовий матеріал, тому трафік зупиняється, щойно знову потрібна дійсна пара ключів. Перевірте wg show wg0 latest-handshakes на сервері: запис втраченого ключа має зникнути й залишитися відсутнім, а інші партнери продовжують повідомляти про недавні епохи.
Одне застереження важливіше, ніж здається. Якщо втрачений пристрій ділив ключ з іншими пристроями, бо хтось скопіював один файл конфігурації, видалення цього ключа відключає їх усі; це все одно правильний крок, і після нього ви видаєте ключі окремо для кожного пристрою, а не відновлюєте спільний.
Сертифікати: CRL зараховується, лише якщо демон її читає
Доступ на основі сертифікатів додає крок, який люди пропускають. easyrsa revoke laptop-01 позначає сертифікат як відкликаний у базі CA, але VPN нічого з цієї бази не дізнається. Далі ви запускаєте easyrsa gen-crl, щоб записати crl.pem, копіюєте його в шлях, вказаний у параметрі crl-verify сервера, і переконуєтеся, що працюючий демон використовує новий файл. Відкликання без перегенерації та розповсюдження CRL не дає ефекту.
Час — це друга половина. CRL перевіряється, коли клієнт підключається або заново узгоджує параметри, тому встановлений тунель може продовжувати передавати до того моменту. Якщо пристрій треба відрізати негайно, завершіть цей сеанс явно через інтерфейс керування OpenVPN, а не чекайте наступного рукостискання. Перезавантаження або перезапуск служби, залежно від того, як розгортання завантажує CRL, є частиною зміни, а не необов'язковим доповненням.
Перевірку варто робити з іншої машини: подайте відкликаний сертифікат і очікуйте збою рукостискання, зазвичай VERIFY ERROR: depth=0, error=certificate revoked. Якщо з'єднання все ж вдається, клієнт читає інший CRL, ніж той, який ви оновили.
Облікові записи та сеанси: вимкнення — це не те саме, що вигнання
Входи через каталог або SSO перевіряються в момент автентифікації. Вимкнення облікового запису блокує наступний вхід, але токен оновлення та встановлений тунель можуть працювати далі до закінчення їхнього строку. Відкличте сеанси й токени цього користувача або підвищте версію сеансу, якщо постачальник ідентичності це підтримує. Видаліть втрачений пристрій і з реєстрації MFA, оскільки зареєстрований автентифікатор сам по собі є шляхом доступу.
VPN на основі RADIUS можуть надіслати повідомлення про відключення або зміну авторизації, щоб скинути активний сеанс, але не кожен сервер мережевого доступу це поважає. У разі сумніву завершіть сеанс користувача з боку сервера та підтвердьте в журналах, що старий сеанс закрито.
Порядок дій на наступну годину
Почніть з інвентаризації, а не з клієнта: перелічіть кожну особу, пов'язану з пристроєм, чи це ключ партнера, серійний номер сертифіката або обліковий запис. Відкличте в кожній системі, що видає, у тому порядку, в якому будується з'єднання, тобто спочатку обліковий запис, потім сертифікат, потім партнер. Потім доведіть відмову з машини, яку ви контролюєте.
Два подальші кроки легко забути. По-перше, замініть усе інше, що тримав пристрій, особливо ключі SSH, дані хмарної консолі та спільний попередньо наданий ключ WireGuard. По-друге, перевірте, що керування конфігурацією, знімки або золоті образи не можуть повернути видаленого клієнта під час наступної перебудови.
Довговічне рішення — одна особа на пристрій. Коли кожен ноутбук несе власний ключ партнера або сертифікат, втрата коштує однієї команди відкликання та перевипуску, а не перебудови всього парку.