Како повући VPN сервер из употребе без остављања приступа
Крените од клијентске апликације ка споља: опозовите кључеве и налоге, затворите ослушкивач, а затим докажите да ниједан профил, DNS запис или резервна копија још не може да га достигне.
Ваш клијент се још повезује на дан када се отвори тикет за повлачење. Профил стоји у апликацији, преговара, и тунел се подиже као да се ништа није променило. То је тренутак да радите у супротном смеру од оног у ком сте градили услугу: почните од листе клијената, идите напоље до ослушкивача, затим до заштитног зида и завршите са акредитивима који надживљавају све њих. Гашење виртуелне машине је последњи корак, а не први. Овај водич претпоставља да имате приступ конзоли хоста и овлашћење да мењате записе клијената и DNS.
Прво прођите кроз листу клијената
Отворите шта год дели ваше профиле и прочитајте листу пре него што дотакнете сервер. Сваки унос је уређај који верује да има приступ: телефони, лаптопови, рутер огранка, контејнер који се сваке ноћи синхронизује. Извезите ту листу у тикет, јер када хост нестане нема wg show који би вам рекао ко је био повезан.
Разврстајте сваки уређај у заменску крајњу тачку, више није потребан или непознат. Важна је управо група непознатих, јер су то профили које ће неко пронаћи у фиоци за неколико месеци и пробати. Пошаљите обавештење истим каналом који користите за захтеве за приступ и упишите у њега датум када стара крајња тачка престане да одговара.
Опозовите идентитет, не само датотеку
Две различите радње се обе називају опозивом. У WireGuard-у, peer се овлашћује само тиме што се његов јавни кључ појављује у секцији peer са уносом AllowedIPs, па брисање конфигурационе датотеке са лаптопа не мења ништа на серверу. Уклоните блок peer-а и поново примените датотеку без одбацивања peer-ова које задржавате, као штоwg(8) описује:
wg show
wg set wg0 peer <CLIENT_PUBLIC_KEY> remove
wg syncconf wg0 <(wg-quick strip wg0)wg syncconf је део који вам штеди сервисни прозор. Он обнавља интерфејс из датотеке на месту, па уклањање једног peer-а не руши тунел који користе сви остали. Ако повлачите цео хост, а не један peer, редослед је и даље важан, јер ти кључеви могу бити поверљиви негде другде.
Са X.509 поставком, корак опозива је сертификат, а не датотека: openssl ca -revoke client.crt и затим openssl ca -gencrl -out crl.pem. То делује само тамо где верификатор то чита, што значиOpenVPN сервер са подешеним crl-verify и накнадно поново учитан. Ако је овај гејтвеј једини потрошач тог CA, CRL престаје да буде важан оног дана када он умре; ако исти CA потписује за други гејтвеј, сертификат који никада нисте опозвали тамо и даље ради.
Налози су трећи случај и онај који се најчешће прескочи. Када се гејтвеј аутентификовао преко RADIUS-а, LDAP-а или хостованог добављача идентитета, налог живи изван VPN-а. Онемогућите га у директоријуму. Брисање корисничке секције на серверу оставља важеће акредитиве које ће заменска крајња тачка прихватити оног тренутка када укаже на исти директоријум.
Затворите ослушкиваче и путеве до њих
Зауставите услугу тако да преживи рестарт, а затим потврдите излиставањем сокета, а не стањем unit-а. systemctl disable --now wg-quick@wg0 зауставља интерфејс и уклања руте и правила која је додао wg-quick; systemctl disable --now openvpn-server@server чини исто за шаблонску инстанцу OpenVPN-а. Након било ког од њих покрените ss -lunp и ss -ltnp. Празан резултат за стара врата једини је доказ који се рачуна.
Шта је wg-quick додао, wg-quick и уклања. Шта сте додали ручно остаје: трајно NAT правило, дозвола у заштитном зиду, прослеђивање врата на рутеру, ingress правило у облачној сигурносној групи, ослушкивач балансера оптерећења. То захтева изричито уклањање, као и DNS запис, то јест A, AAAA и било који CNAME који показује на име. Име које се разрешава у мртав хост отказује другачије него име које се уопште не разрешава, а та разлика ће неког стајати поподне.
Копија коју заборавите је клон. Снимак или виртуелна машина враћена из резервне копије још држи кључеве хоста и стари списак peer-ова, и ако је нешто врати на исту адресу, клијенти се поново повезују на услугу за коју мислите да је повучена. Означите сет резервних копија као да припада деактивираној услузи и држите га изван аутоматских путева за враћање.
Пратите шта још показује на стару крајњу тачку
Кеширани профили надживљавају DNS. Сачувана конфигурација са нумеричком адресом наставља да бира број и пошто запис нестане, а клијент који је увек укључен покушава изнова на сваку промену мреже. То је шум, а не приступ, јер је ослушкивач затворен, али знање које од тога гледате одређује како ћете одговорити на тикет.
Затим пређите зависности које нико не евидентира под VPN: провере доступности које пипају врата, послови резервног копирања који су вукли конфигурације са хоста, акредитиви за аутоматизацију коришћени за слање уноса peer-ова, налози за опоравак створени само за ову крајњу тачку. Свака је пут приступа са својим веком и својим власником, па свака добија одлуку уместо тихог брисања.
Проверите, а затим запишите
Повлачење је завршено када тест споља не успе тачно онако како очекујете. Из мреже коју не контролишете, повежите се на стару адресу и врата. Филтриран или одбијен резултат је случај успеха. У клијентској апликацији потврдите да је профил уклоњен, а не само искључен, и да га ниједан управљачки профил тихо не додаје назад.
Затим запишите шта сте урадили: крајња тачка, датум, опозвани кључеви и сертификати, онемогућени налози, где су резервне копије. Следећи који нађе стару конфигурацију мора да одговори да ли је опозвана или само избрисана, без нагађања, а кратка табела у тикету то омогућава.
Пре затварања тикета:
- профили клијената уклоњени или замењени, непознати уређаји решени
- peer-ови уклоњени и конфигурација поново примењена, или сертификати опозвани и CRL објављен
- налози у директоријуму онемогућени, а не само локалне датотеке избрисане
- услуга онемогућена, ниједан ослушкивач није остао на старим вратима
- заштитни зид, прослеђивање врата, сигурносна група и DNS записи уклоњени
- резервне копије означене, снимак искључен из путева за враћање
- акредитиви за надзор и аутоматизацију повучени
Проверите замену одвојено, од клијента који никада није имао стари профил. Тај један тест вам каже да ли сте повукли услугу или само преименовали проблем.