Короткий ответ

Пароль AD — не отзыв VPN. Чеклист в один час: disable AD, сброс сессий, удаление [Peer] / сертификата / RAS, отзыв MFA и токенов, проверка wg show и логов, что handshake больше не появляется. Не форматируйте ноутбук до снятия ключей с него (или считайте ключ скомпрометированным и ротируйте). Не чистите журналы «чтобы не мешали».

Порядок: сначала канал (VPN/пир), чтобы не зашли, пока вы правите группы; параллельно disable учётки. Если пир общий — вы уже в инциденте, ротируйте всех на этом ключе.

Симптомы и как отличить

Нужен этот чеклист, если HR сказал «сегодня последний день» или ключ утёк. Если подрядчик — тот же чеклист плюс договор. Если «забыли год назад» — всё равно пройдите, плюс аудит кто ещё шарил конфиг.

Возможные причины

  1. WireGuard/IPsec PSK/сертификат машины.
  2. OpenVPN client.crt до CRL/reload.
  3. Сохранённый RAS пароль на домашнем ПК.
  4. MFA push на личный телефон всё ещё привязан, если учётка жива; если disable без снятия устройства — при повторном enable сюрприз.
  5. Токены API, Git, облако, сохранённые RDP.
  6. Shared office.conf в чате отдела.

Диагностика

wg show
# найти peer по комментарию/IP 10.8.0.XX
Get-ADUser 'i.ivanov' -Properties Enabled, LastLogonDate, MemberOf, msDS-UserPasswordExpiryTimeComputed
Get-ADComputer 'NB-IVANOV' -ErrorAction SilentlyContinue

OpenVPN: CN в index.txt PKI. RRAS: Dial-in / NPS. MFA: портал (Azure AD / другие) — список устройств.

Сохраните вывод в тикет offboarding.

Решение

Отмечайте время. Роли: IAM, сеть, MDM.

1. VPN-канал

WireGuard: удалите блок [Peer] из серверного конфига, wg syncconf / wg set wg0 peer <pubkey> remove.

wg set wg0 peer '<PUBLIC_KEY>' remove
wg show

Постоянно — правка файла и systemd, иначе после ребута пир вернётся.

OpenVPN: revoke-full / easy-rsa revoke, обновите CRL, crl-verify на сервере, reload. Пока CRL не прочитан — сертификат жив.

IPsec: удалите secret/учётку EAP, swanctl --load-creds, terminate SA:

swanctl --terminate --ike '<conn>'

Windows NPS: disable RAS или уберите из группы VPN-Users.

2. AD / IdP

Disable-ADAccount 'i.ivanov'
Set-ADAccountPassword -Identity 'i.ivanov' -Reset -NewPassword (Read-Host -AsSecureString 'NewTemp')
# смена пароля не рвёт WireGuard; пир снимайте отдельно

Сброс пароля после disable не обязателен, но полезен против кэша. Исключите из VPN-Users, Domain Admins немедленно.

Сессии: на файловых/RDS quser / logoff.

3. MFA и токены

Снимите методы MFA, app passwords, refresh tokens облака, SSH keys на бастионе, API tokens, GitLab PAT, пароли в менеджере компании. MDM: wipe корпоративного профиля после съёма VPN-ключа или считайте ключ на устройстве мёртвым только после remove peer.

4. Машина и почта

Блокировка почты, пересылка по политике HR. Компьютер AD disable. Не оставляйте локального админа с тем же паролем.

5. Проверка, что не осталось

wg show
grep -R 'i.ivanov\|10.8.0.XX' /etc/wireguard /etc/openvpn /etc/swanctl

Журнал: нет нового handshake/auth после T0. Алерт на этот public key — опционально на неделю.

6. Коммуникация

Пароль Wi-Fi гостевой, дверь, VPN-инструкция в Confluence с ключом — ротация если лежало в открытом. Shared PSK IPsec — ротация для всех, если уволенный его знал.

Связанные процедуры: MFA на админ VPN, журналы, RDP с WAN.

Стенд: порядок «сначала канал»

Засеките T0. Снимите пир WG / revoke cert / disable NPS до долгого disable в десяти системах. Иначе человек с домашней копией .conf ещё час ходит в LAN, пока вы правите группы 1С.

wg set wg0 peer '<PUBLIC_KEY>' remove
wg show
grep -n 'PUBLIC_KEY\|i.ivanov' /etc/wireguard/*.conf

Постоянный файл: если wg set сделали, а wg0.conf не поправили, после ребута пир вернётся — классика «вроде отозвали». Коммит ansible в том же часе.

OpenVPN: systemctl reload openvpn-server@server после CRL. Проверьте grep CRL /etc/openvpn/server.conf и дату файла crl.pem. Клиент со старым cert должен получить TLS ошибку, не CONNECTED.

Проверка с «стендового» ноутбука со старым конфигом (не отдавайте уволенному): handshake не должен появиться. Сохраните отказ в тикет HR.

MFA: снимите устройство, затем disable. Обратный порядок оставляет push на телефоне при случайном enable учётки «на почту посмотреть». Облачные refresh token — revoke session в IdP, не только пароль AD.

Shared PSK IPsec, который знал админ: отдельный подпункт, ротация филиала, оба конца, окно. Не прячьте это в «disable AD».

Инвентарь «не IdP»: локальные SQL-логины, NAS, камеры, Git deploy key, authorized_keys на бастионе, пароль BIOS/IPMI, общий Wi-Fi WPA2-PSK офиса, если он один на всех (тогда ротация PSK Wi-Fi — отдельное решение, не всегда в тот же час). Чеклист без этих строк оставляет дыры, которые «VPN вроде закрыли». Повтор через 24 часа: wg show, AD Enabled, CRL, MFA devices = 0.

Как проверить, что проблема устранена

  • wg show без пира, handshake не появляется при попытке со старого конфига (попросите коллегу со стенда, не уволенного).
  • AD Enabled=$false.
  • OpenVPN: AUTH отказ / TLS fail на отозванном cert.
  • MFA-портал: 0 устройств.
  • RAS Get-RemoteAccessConnectionStatistics без его учётки. На его бывшем ПК Get-VpnConnection не должен оставаться с сохранённым паролем — профиль удалите.
  • Через 24 часа — повторный wg show и лог NPS.
Get-ADUser 'i.ivanov' -Properties Enabled, MemberOf

Если не помогло

  • Handshake жив — пир не тот (другой ключ на телефоне). Ищите по 10.8.0.0/24 арендам/журналу.
  • Сертификат жив — CRL не подхватился, crl-verify путь, reload.
  • Shared ключ отдела — массовая ротация, инцидент.
  • Локальная учётка на сервере 1С не AD — отдельный список «не IdP».

Профилактика

  • Персональные ключи, запрет шаринга.
  • Имя пира = табельный номер в комментарии конфига.
  • Offboarding runbook в HR+IT, не «вспомним».
  • Expiration для подрядчиков.
  • Журнал коннектов с retention.

FAQ

Disable AD сразу рвёт WireGuard?

Нет. Нужен remove peer.

Можно ли оставить пир «на всякий, вдруг вернётся»?

Нет. Новый выход — новый ключ. Старый считайте скомпрометированным (домашние копии).

Ноутбук ещё в офисе, ключ на диске

Снимите пир всё равно. Диск могут скопировать до wipe.

PSK site-to-site он знал

Ротация PSK филиала в окно, оба конца. Это больнее личного WG, поэтому админам MFA и меньше секретов в головах.

Нужно ли удалять A-запись человека в DNS?

Не часть VPN. Хостовые записи — по инвентарю MDM/AD, не блокирует туннель.