Клиентът ви все още се свързва в деня, в който се отваря заявката за извеждане. Профил седи в приложението, той преговаря и тунелът се вдига, сякаш нищо не се е променило. Това е моментът да работите в обратната посока на това как сте изградили услугата: започнете от списъка с клиенти, вървете навън към слушателя, после към защитната стена и завършете с идентификационните данни, които надживяват всичко това. Изключването на VM е последната стъпка, не първата. Това ръководство предполага, че имате конзолен достъп до хоста и правото да редактирате клиентски записи и DNS.

Първо минете през списъка с клиенти

Отворете каквото разпространява профилите ви и прочетете списъка, преди да пипнете сървъра. Всеки запис е устройство, което вярва, че има достъп: телефони, лаптопи, филиален рутер, контейнер, който се синхронизира всяка нощ. Експортирайте този списък в заявката, защото след като хостът изчезне, няма wg show, който да ви каже кой е бил свързан.

Сортирайте всяко устройство в заместваща крайна точка, вече ненужно или неизвестно. Кофата с неизвестните е важната, защото това са профилите, които някой ще намери в чекмедже след месеци и ще опита. Изпратете известието по същия канал, който използвате за заявки за достъп, и сложете в него дата, когато старата крайна точка спре да отговаря.

Отзовете идентичността, не само файла

Две различни действия се наричат отзоваване. В WireGuard партньорът се оторизира само чрез публичния си ключ, който се появява в секция на партньор със запис AllowedIPs, така че изтриването на конфигурационния файл от лаптопа не променя нищо на сървъра. Премахнете блока на партньора и приложете отново файла, без да изпускате партньорите, които запазвате, както описва ръководството wg(8):

wg show
wg set wg0 peer <CLIENT_PUBLIC_KEY> remove
wg syncconf wg0 <(wg-quick strip wg0)

wg syncconf е частта, която ви спестява прозорец за поддръжка. Той изгражда интерфейса наново от файла на място, така че премахването на един партньор не разрушава тунела, който всички останали използват. Ако извеждате целия хост, а не един партньор, редът все още има значение, защото на тези ключове може да се вярва другаде.

При настройка с X.509 стъпката на отзоваване е сертификатът, не файлът: openssl ca -revoke client.crt и после openssl ca -gencrl -out crl.pem. Това има ефект само там, където проверяващият го чете, което означава OpenVPN сървър с конфигуриран crl-verify и презареден след това. Ако този шлюз е единственият консуматор на този CA, CRL спира да има значение в деня, в който той умре; ако същият CA подписва за втори шлюз, сертификат, който никога не сте отзовали, продължава да работи там.

Акаунтите са третият случай и най-често пропусканият. Когато шлюзът се е удостоверявал чрез RADIUS, LDAP или хостван доставчик на идентичност, акаунтът живее извън VPN. Деактивирайте го в директорията. Изтриването на потребителска секция на сървъра оставя валидни идентификационни данни, които заместващата крайна точка ще приеме в мига, в който сочи към същата директория.

Затворете слушателите и пътищата към тях

Спрете услугата по начин, който преживява рестарт, после потвърдете със списък на сокетите, а не със състоянието на юнита. systemctl disable --now wg-quick@wg0 спира интерфейса и премахва маршрутите и правилата, добавени от wg-quick; systemctl disable --now openvpn-server@server прави същото за шаблонен екземпляр на OpenVPN. Следвайте всяко от двете с ss -lunp и ss -ltnp. Празен резултат за стария порт е единственото доказателство, което се брои.

Каквото wg-quick е добавил, wg-quick го премахва. Каквото сте добавили на ръка, остава: постоянно NAT правило, разрешение във защитната стена, пренасочване на порт в рутера, правило за входящ трафик в облачна група за сигурност, слушател на балансировчик на натоварването. Те се нуждаят от явно премахване, както и DNS записът, тоест A, AAAA и всеки CNAME, сочещ към името. Име, което се резолвва към мъртъв хост, се проваля различно от име, което не се резолвва, и тази разлика ще струва на някого един следобед.

Копието, което забравяте, е клонингът. Снимка или VM, възстановена от резервно копие, все още държи ключовете на хоста и стария списък с партньори, и ако нещо я върне на същия адрес, клиентите се свързват отново към услуга, която смятате за изведена. Маркирайте резервния набор като принадлежащ на изведена услуга и го дръжте извън автоматичните пътища за възстановяване.

Преследвайте какво още сочи към старата крайна точка

Кешираните профили надживяват DNS. Запазена конфигурация с числов адрес продължава да набира след изчезването на записа, а постоянно включен клиент опитва отново при всяка промяна на мрежата. Това е шум, а не достъп, защото слушателят е затворен, но знанието кое от двете гледате решава как да отговорите на заявката.

После изметете зависимостите, които никой не подрежда под VPN: проверки на работното време, които опипват порта, задачи за резервни копия, които са дърпали конфигурации от хоста, идентификационни данни за автоматизация, използвани за изтласкване на партньорски записи, акаунти за възстановяване, създадени само за тази крайна точка. Всяка е път за достъп със собствен живот и собствен собственик, затова всяка получава решение вместо тихо изтриване.

Проверете, после го запишете

Извеждането е завършено, когато тест отвън се провали по начина, който очаквате. От мрежа, която не контролирате, се свържете към стария адрес и порт. Филтриран или отказан резултат е успешният случай. В клиентското приложение потвърдете, че профилът е премахнат, а не изключен, и че никакъв управленски профил не го добавя тихо отново.

После запишете какво сте направили: крайна точка, дата, отзовани ключове и сертификати, деактивирани акаунти, къде живеят резервните копия. Който намери стар конфигурационен файл следващия, трябва да отговори дали е бил отзован или просто изтрит, без да гадае, и кратка таблица в заявката прави това.

Преди да затворите заявката:

  • клиентските профили са премахнати или заменени, неизвестните устройства са изяснени
  • партньорите са премахнати и конфигурацията е приложена отново, или сертификатите са отзовани и CRL е публикуван
  • акаунтите в директорията са деактивирани, а не само локалните файлове изтрити
  • услугата е деактивирана, не е останал слушател на стария порт
  • защитната стена, пренасочването на порт, групата за сигурност и DNS записите са премахнати
  • резервните копия са маркирани, снимката е изключена от пътищата за възстановяване
  • идентификационните данни за мониторинг и автоматизация са изведени

Проверете заместителя отделно, от клиент, който никога не е държал стария профил. Този единствен тест ви казва дали сте извели услуга, или само сте преименували проблема.

Подобни статии