Како да се повлече VPN сервер без да се остави пристап зад себе
Одете нанадвор од клиентската апликација: отповикајте клучеви и сметки, затворете го слушателот, потоа докажете дека ниту еден профил, DNS запис или резервна копија веќе не може да стигне до него.
Вашиот клиент сѐ уште се поврзува во денот кога се отвора тикетот за повлекување. Во апликацијата седи профил, тој преговара, и тунелот се крева како ништо да не се сменило. Ова е моментот да работите во спротивна насока од онаа во која ја изградивте услугата: почнете од списокот на клиенти, движете се нанадвор до слушателот, потоа до ѕидот за заштита, и завршете со акредитивите што ги надживуваат сите нив. Исклучувањето на VM е последниот чекор, не првиот. Овој водич претпоставува дека имате конзолен пристап до домаќинот и овластување да уредувате клиентски записи и 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. Оневозможете ја во директориумот. Бришењето на корисничка станца на серверот остава валидни акредитиви што замената крајна точка ќе ги прифати во моментот кога ќе покаже на истиот директориум.
Затворете ги слушателите и патиштата до нив
Запрете ја услугата на начин што издржува рестартирање, потоа потврдете со список на сокети, а не со состојбата на единицата. 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 вратена од резервна копија сѐ уште ги држи клучевите на домаќинот и стариот список на peer-ови, и ако нешто ја врати на истата адреса, клиентите повторно се поврзуваат со услуга што ја сметате за повлечена. Означете го резервниот сет како да припаѓа на исклучена услуга и држете го надвор од автоматичните патишта за враќање.
Следете што сѐ уште покажува на старата крајна точка
Кешираните профили надживуваат DNS. Зачуваната конфигурација со бројчена адреса продолжува да бира откако записот ќе исчезне, а постојано вклучен клиент повторно обидува при секоја промена на мрежата. Тоа е шум, не пристап, бидејќи слушателот е затворен, но знаењето на која од двете гледате одлучува како ќе одговорите на тикетот.
Потоа исчистете ги зависностите што никој не ги архивира под VPN: проверки на времетраење што ја пипкаат портата, резервни задачи што влечеа конфигурации од домаќинот, акредитиви за автоматизација користени за туркање peer-записи, сметки за враќање создадени само за оваа крајна точка. Секоја е пристапен пат со свој живот и свој сопственик, па секоја добива одлука наместо тивко бришење.
Проверете, па запишете
Повлекувањето е завршено кога тестот однадвор неуспешно поминува онака како што очекувате. Од мрежа што не ја контролирате, поврзете се на старата адреса и порта. Филтриран или одбиен резултат е случајот на успех. Во клиентската апликација потврдете дека профилот е отстранет, а не само исклучен, и дека ниту еден управен профил тивко не го додава повторно.
Потоа запишете што сте направиле: крајна точка, датум, отповикани клучеви и сертификати, оневозможени сметки, каде живеат резервните копии. Секој што ќе најде стара конфигурација следниот пат мора без погодување да одговори дали е отповикана или само избришана, а кратка табела во тикетот го прави тоа.
Пред да го затворите тикетот:
- клиентските профили отстранети или заменети, непознатите уреди разјаснети
- peer-овите отстранети и конфигурацијата повторно применета, или сертификатите отповикани и CRL-от објавен
- сметките во директориумот оневозможени, не само локалните датотеки избришани
- услугата оневозможена, на старата порта не остана слушател
- ѕидот за заштита, пренасочувањето на порта, безбедносната група и DNS записите отстранети
- резервните копии означени, снимката исклучена од патиштата за враќање
- акредитивите за мониторинг и автоматизација повлечени
Проверете ја замената одделно, од клиент што никогаш не го држел стариот профил. Тој еден тест ви кажува дали сте повлекле услуга или само сте го преименувале проблемот.