Як аднавіць VPN-сервер, не дублюючы ідэнтычнасці
Адноўлены VPN-сервер вяртае файлы, а не бягучы доступ. Узгадніце адкліканні, ключы аднарангаў і канчатковыя пункты, перш чым другая копія адкажа на рукапацісканне.
Вы аднавілі рэзервовую копію, служба запусцілася, і кліент падключыўся з першай спробы. Гэты поспех — пастка. Аднаўленне вяртае файлы, якія сервер меў на момант здымка, а не стан доступу, які змяніўся з таго часу, і калі стары канчатковы пункт усё яшчэ дасяжны, у вас цяпер дзве машыны адказваюць адной ідэнтычнасці. Рашэнне не ў лепшай рэзервовай копіі; яно ў тым, каб вырашыць, чым адноўлены хост можа быць, перш чым ён адкажа хоць на адно рукапацісканне.
Рэзервовая копія вяртае файлы, а не паўнамоцтвы
Здымак захоўвае канфігурацыю сервера, прыватныя ключы, цэнтр сертыфікацыі, спіс аднарангаў і правілы фаеруола так, як яны былі на момант рэзервовага капіравання. Ён не можа захаваць тое, што змянілася пазней: прыладу, якую вы адклікалі, ключ, які вы перавыдалі, аднаранг, якога вы выдалілі пры продажы ноўтбука, падсетку, якую вы перанеслі. Аднаўленне адкочвае файлы да таго моманту. Яно не адкочвае рашэнні, якія людзі прынялі пасля.
Шкода паходзіць менавіта з гэтай прагаліны. Выкрадзены ноўтбук, адкліканы праз два тыдні пасля рэзервовай копіі, прад’яўляе сертыфікат, які ўсё яшчэ праходзіць праверку супраць старэйшага CRL у адноўленым дрэве, і сервер прымае прыладу, якую вы спісалі. WireGuard больш прамы: аднаранг аўтарызуецца самім фактам знаходжання ў спісе, таму выдалены пасля здымка аднаранг проста зноў прысутнічае. Ніхто не пацвердзіў той доступ нанова. Стары файл зрабіў гэта.
Ідэнтычнасць сервера і ідэнтычнасць кліента адмаўляюць па-рознаму
У WireGuard ідэнтычнасць сервера — гэта прыватны ключ у wg0.conf, таму капіраванне гэтага файла на другі дасяжны хост стварае два серверы з аднолькавай ідэнтычнасцю і без ведання адно аднаго. Кожны трымае свой спіс аднарангаў. Выдаліце аднаранг на новым хосце — стары ўсё яшчэ яго прымае; праверце wg show на адным і ўбачыце палову праўды. Кліенты таксама не перамыкаюцца самі: профіль нясе адзін Endpoint, таму прылада працягвае размаўляць з тым адрасам, на які была наладжана, а гэта можа быць хост, які вы хацелі спісаць.
OpenVPN дублюецца на тым жа ўзроўні сертыфікатам сервера, яго прыватным ключом і статычным ключом tls-auth або tls-crypt. Скапіруйце ўсе тры — і кліент не адрозніць асобнікі; калі абодва дасяжныя, перападключэнне можа патрапіць на любы, і кожны файл журнала расказвае частку гісторыі. Цэнтр сертыфікацыі — гэта больш глыбокая копія. Адноўленае дрэва easy-rsa — другая крыніца праўды, якая можа выдаць сапраўдны сертыфікат на любое імя, якое вы ёй дасце.
Кліенты таксама дублююцца, звычайна падчас самога пераносу. Капіраванне профілю на запасную прыладу «проста каб праверыць» стварае другую прыладу з тым жа ключом і агульным імем. З duplicate-cn абодва сеансы могуць трымацца адначасова, а статычнае прызначэнне адраса ў ccd або ifconfig-pool-persist можа сутыкнуцца з арыгінальнай прыладай. Гэта дзве машыны ў адной ідэнтычнасці, і нішто ў канфігурацыі сервера іх не адрознівае.
Выберыце адзін з трох станаў для старога канчатковага пункта
Аднаўленне бяспечнае толькі тады, калі лёс старога канчатковага пункта вырашаны. Спішыце яго: старая служба павінна перастаць прымаць порт VPN да запуску новага хоста, а калі да машыны не дабрацца, заблакуйце гэты порт на мяжы сеткі для ўсяго, акрамя вашай адміністрацыйнай крыніцы. Адрамантуйце той жа хост: паўторнае выкарыстанне ідэнтычнасці дапушчальнае, бо яе трымае адна машына, але пасля гэтага знішчыце дыскавую копію або здымак VM старога ключа, каб ён не мог вярнуцца. Пабудуйце пару даступнасці: двум хостам патрэбныя асобныя ідэнтычнасці хостаў плюс адзін агульны канчатковы пункт, напрыклад плаваючы адрас, балансіроўшчык нагрузкі або DNS, які вы можаце перамясціць. Капіраванне прыватнага ключа — не схема адмовы ад абслугоўвання; гэта два серверы, якія прэтэндуюць на адно імя.
Пераканайцеся, у якім стане вы насамрэч знаходзіцеся, перш чым кранаць кліентаў. Стары хост, які адказвае на порце VPN, — менавіта той, што прыме адкліканую прыладу, нават калі DNS ужо пераехаў. Праверце слухачы і публічны ключ:
ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key
Спачатку ўзгадніце аднарангаў, адкліканні і адрасы
Пералічыце, на што прэтэндуе аднаўленне, супраць таго, што зараз аўтарызавана. У WireGuard wg show wg0 дае ключ, канчатковы пункт, апошні рукапацісканне і лічыльнікі перадачы кожнага аднаранга, чаго дастаткова, каб заўважыць прыладу, якой вы ўжо не валодаеце. Выдаліце яе на жывым сэрвісе з дапамогай wg set wg0 peer <key> remove, затым адрэдагуйце і канфігурацыю, інакш аднаранг вернецца пры наступным запуску. wg show wg0 allowed-ips выкрывае другую праблему: два аднарангі на адным адрасе або адрас, які вы ўжо перапрызначылі.
У OpenVPN спіс адкліканняў — гэта файл з датай, і аднаўленне можа вярнуць стары. Праверце яго да падключэння кліентаў:
openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf
Калі апошняе абнаўленне папярэднічае адкліканню, сервер усё яшчэ паважае сертыфікат, які вы адклікалі. OpenVPN 2.4 і пазней перачытваюць файл CRL для кожнага новага злучэння, таму замена файла спыняе новыя сеансы, але ўсталяваныя тунелі трымаюцца да перагавораў; прадвызначанае значэнне reneg-sec — 3600 секунд, і менавіта яго зніжэнне або перазапуск службы дае вам змену адразу. Старэйшыя зборкі могуць не падхопліваць файл так надзейна, таму перазапусціце, калі не можаце пацвердзіць паводзіны версіі. Дапаможнік wg(8) апісвае выдаленне аднаранга і сінтаксіс allowed-ips, выкарыстаныя вышэй.
Таксама ачысціце статычныя прызначэнні для прылад, якіх больш не існуе. Паўторнае выкарыстанне адраса спісанай прылады для новай, пакуль стары профіль яшчэ ўсталяваны, стварае менавіта той дублікат, якога вы стараецеся пазбегнуць.
Праверце з дапамогай кліента, які вы адклікалі
Выконвайце праверкі па чарзе, з сеткі па-за тунелем. Спачатку аўтарызаваная прылада падключаецца, развязвае DNS праз перададзены рэзалвер і дасягае прыватнага рэсурсу. Затым адкліканая прылада павінна праваліцца, выкарыстоўваючы свой існуючы профіль, а не новы. Затым паспрабуйце стары канчатковы пункт звонку: калі порт VPN усё яшчэ завяршае рукапацісканне, стары хост жывы, і дубляванне рэальнае, а не тэарэтычнае.
Перазапусціце адноўлены хост і паўтарыце праверкі аўтарызаванай і адкліканай прылады, бо менавіта тады канфігурацыйны файл перамагае тое, што вы змянілі падчас працы. Параўнайце публічны ключ хоста або адбітак сертыфіката з тым, што выкарыстоўвала спісаная машына. Аднолькавыя адбіткі на дзвюх жывых машынах азначаюць, што аднаўленне скапіравала ідэнтычнасць; аднолькавыя адбіткі на адной машыне — гэта нармальна. Запішыце адноўленыя версіі, адбіткі ключоў і адкліканы серыйны нумар або ключ аднаранга, затым зрабіце наступную рэзервовую копію пасля гэтага ўзгаднення, каб яна адлюстроўвала службу такой, якой яна ёсць цяпер. Працоўная праверка — не тое, што кліент падключаецца. Яна ў тым, што выдалены кліент застаецца звонку, пакуль стары канчатковы пункт застаецца закрытым.