Как отозвать утраченное устройство 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. Во-вторых, проверьте, что управление конфигурацией, снимки или золотые образы не могут вернуть удалённого клиента при следующей пересборке.
Долговечное решение — одна личность на устройство. Когда каждый ноутбук несёт свой ключ партнёра или сертификат, потеря стоит одной команды отзыва и перевыпуска, а не пересборки всего парка.