Короткий ответ
Пароль AD — не отзыв VPN. Чеклист в один час: disable AD, сброс сессий, удаление [Peer] / сертификата / RAS, отзыв MFA и токенов, проверка wg show и логов, что handshake больше не появляется. Не форматируйте ноутбук до снятия ключей с него (или считайте ключ скомпрометированным и ротируйте). Не чистите журналы «чтобы не мешали».
Порядок: сначала канал (VPN/пир), чтобы не зашли, пока вы правите группы; параллельно disable учётки. Если пир общий — вы уже в инциденте, ротируйте всех на этом ключе.
Симптомы и как отличить
Нужен этот чеклист, если HR сказал «сегодня последний день» или ключ утёк. Если подрядчик — тот же чеклист плюс договор. Если «забыли год назад» — всё равно пройдите, плюс аудит кто ещё шарил конфиг.
Возможные причины
- WireGuard/IPsec PSK/сертификат машины.
- OpenVPN client.crt до CRL/reload.
- Сохранённый RAS пароль на домашнем ПК.
- MFA push на личный телефон всё ещё привязан, если учётка жива; если disable без снятия устройства — при повторном enable сюрприз.
- Токены API, Git, облако, сохранённые RDP.
- Shared
office.confв чате отдела.
Диагностика
wg show
# найти peer по комментарию/IP 10.8.0.XXGet-ADUser 'i.ivanov' -Properties Enabled, LastLogonDate, MemberOf, msDS-UserPasswordExpiryTimeComputed
Get-ADComputer 'NB-IVANOV' -ErrorAction SilentlyContinueOpenVPN: 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, не блокирует туннель.