Kaip atkurti VPN serverį nedubliuojant tapatybių
Atkurtas VPN serveris grąžina failus, o ne dabartinę prieigą. Suveskite atšaukimus, partnerių raktus ir galinius taškus, kol antra kopija dar neatsakė į rankos paspaudimą.
Atkūrėte atsarginę kopiją, tarnyba paleista, o klientas prisijungė iš pirmo karto. Ta sėkmė ir yra spąstai. Atkūrimas grąžina failus, kuriuos serveris turėjo momentinės kopijos metu, o ne prieigos būseną, kuri nuo to laiko pasikeitė, ir jei senasis galinis taškas vis dar pasiekiamas, dabar turite du kompiuterius, atsakančius į vieną tapatybę. Sprendimas – ne geresnė atsarginė kopija; sprendimas – nuspręsti, kuo atkurtasis hostas gali būti, kol jis neatsakė nė į vieną rankos paspaudimą.
Atsarginė kopija grąžina failus, o ne įgaliojimą
Momentinėje kopijoje yra serverio konfigūracija, privatūs raktai, sertifikatų institucija, partnerių sąrašas ir ugniasienės taisyklės tokios, kokios buvo vykdant atsarginę kopiją. Ji negali saugoti to, kas pasikeitė vėliau: įrenginio, kurį atšaukėte, rakto, kurį išdavėte iš naujo, partnerio, kurį pašalinote pardavus nešiojamąjį kompiuterį, potinklio, kurį perkėlėte. Atkūrimas grąžina failus į tą akimirką. Jis negrąžina sprendimų, kuriuos žmonės priėmė nuo to laiko.
Žala kyla būtent iš šio tarpo. Pavogtas nešiojamasis kompiuteris, atšauktas praėjus dviem savaitėms po kopijos, pateikia sertifikatą, kuris vis dar tikrinamas pagal senesnį CRL atkurtame medyje, ir serveris priima įrenginį, kurį išėmėte iš eksploatacijos. WireGuard yra tiesesnis: partneris įgaliojamas tiesiog būdamas sąraše, todėl po momentinės kopijos ištrintas partneris tiesiog vėl yra. Niekas tos prieigos iš naujo nepatvirtino. Tai padarė senasis failas.
Serverio tapatybė ir kliento tapatybė žlunga skirtingai
WireGuard atveju serverio tapatybė yra privatusis raktas wg0.conf faile, todėl to failo kopijavimas į antrą pasiekiamą hostą sukuria du serverius su ta pačia tapatybe ir nežinančius vienas apie kitą. Kiekvienas laiko savo partnerių sąrašą. Pašalinkite partnerį naujajame hoste – senasis jį vis dar priima; patikrinkite wg show viename ir matysite pusę tiesos. Klientai taip pat nepersijungia patys: profilis turi vieną Endpoint, todėl įrenginys toliau kalba su adresu, kuriuo buvo sukonfigūruotas, o tai gali būti hostas, kurį norėjote išimti iš eksploatacijos.
OpenVPN dubliuojasi tame pačiame sluoksnyje su serverio sertifikatu, jo privačiuoju raktu ir statiniu raktu tls-auth arba tls-crypt. Nukopijuokite visus tris ir klientas negalės atskirti egzempliorių; jei abu pasiekiami, pakartotinis prisijungimas gali patekti į bet kurį, o kiekvienas žurnalo failas pasakoja dalinę istoriją. Sertifikatų institucija yra gilesnė kopija. Atkurtas easy-rsa medis yra antrasis tiesos šaltinis, galintis išduoti galiojantį sertifikatą bet kokiam jūsų duotam vardui.
Klientai taip pat dubliuojasi, dažniausiai pačios migracijos metu. Profilio kopijavimas į atsarginį įrenginį „tik išbandyti“ sukuria antrą įrenginį su tuo pačiu raktu ir bendru vardu. Su duplicate-cn abi sesijos gali būti aktyvios vienu metu, o statinis adreso priskyrimas ccd arba ifconfig-pool-persist gali susidurti su pirminiu įrenginiu. Tai du kompiuteriai su viena tapatybe, ir niekas serverio konfigūracijoje jų neatskiria.
Senajam galiniam taškui pasirinkite vieną iš trijų būsenų
Atkūrimas saugus tik tada, kai senojo galinio taško likimas nuspręstas. Išimkite jį iš eksploatacijos: senoji tarnyba turi nustoti priimti VPN prievadą prieš paleidžiant naująjį hostą, o jei negalite pasiekti kompiuterio, užblokuokite tą prievadą tinklo pakraštyje viskam, išskyrus jūsų administravimo šaltinį. Taisykite tą patį hostą: tapatybės pakartotinis naudojimas yra gerai, nes ją laiko vienas kompiuteris, bet po to sunaikinkite senojo rakto disko kopiją arba VM momentinę kopiją, kad jis negalėtų grįžti. Sukurkite prieinamumo porą: dviem hostams reikia atskirų hostų tapatybių ir vieno bendro galinio taško, pavyzdžiui, plaukiojančio adreso, apkrovos balansuotojo arba perkeliamo DNS. Privataus rakto kopijavimas nėra failover dizainas; tai du serveriai, pretenduojantys į vieną vardą.
Prieš liesdami klientus patvirtinkite, kokioje būsenoje iš tikrųjų esate. Senasis hostas, atsakantis VPN prievade, yra tas, kuris priims atšauktą įrenginį, net jei DNS persikėlė. Patikrinkite klausytojus ir viešąjį raktą:
ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key
Pirmiausia suveskite partnerius, atšaukimus ir adresus
Išvardykite, ką atkūrimas teigia, palyginti su tuo, kas dabar įgaliota. WireGuard atveju wg show wg0 pateikia kiekvieno partnerio raktą, galinį tašką, paskutinį rankos paspaudimą ir perdavimo skaitiklius, ko pakanka pastebėti įrenginį, kurio nebevaldote. Pašalinkite jį veikiant su wg set wg0 peer <key> remove, tada paredaguokite ir konfigūraciją, kitaip partneris grįš kitą kartą paleidus. wg show wg0 allowed-ips atskleidžia antrą problemą: du partneriai viename adrese arba adresas, kurį jau perskirstėte.
OpenVPN atveju atšaukimo sąrašas yra failas su data, o atkūrimas gali grąžinti seną. Patikrinkite jį prieš klientams prisijungiant:
openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf
Jei paskutinis atnaujinimas ankstesnis už atšaukimą, serveris vis dar gerbia sertifikatą, kurį atšaukėte. OpenVPN 2.4 ir naujesnės versijos iš naujo nuskaito CRL failą kiekvienam naujam ryšiui, todėl failo pakeitimas sustabdo naujas sesijas, bet sukurti tuneliai išlieka iki pakartotinių derybų; numatytoji reneg-sec reikšmė yra 3600 sekundžių, ir būtent jos sumažinimas arba tarnybos paleidimas iš naujo dabar duoda pakeitimą. Senesnės versijos gali ne taip patikimai nuskaityti failą, todėl paleiskite iš naujo, kai negalite patvirtinti versijos elgesio. wg(8) vadove aprašytas partnerio pašalinimas ir aukščiau naudota allowed-ips sintaksė.
Taip pat išvalykite statinius priskyrimus įrenginiams, kurių nebėra. Iš eksploatacijos išimto įrenginio adreso pakartotinis naudojimas naujam, kol senasis profilis dar įdiegtas, sukuria būtent tą dublikatą, kurio bandote išvengti.
Patikrinkite su klientu, kurį atšaukėte
Atlikite patikras iš eilės, iš tinklo už tunelio ribų. Pirmiausia įgaliotas įrenginys prisijungia, išsprendžia DNS per stumiamą rezolverį ir pasiekia privatų išteklių. Tada atšauktas įrenginys turi nepavykti, naudodamas esamą profilį, o ne naują. Tada išbandykite senąjį galinį tašką iš išorės: jei VPN prievadas vis dar užbaigia rankos paspaudimą, senasis hostas gyvas, o dubliavimas realus, ne teorinis.
Paleiskite atkurtą hostą iš naujo ir pakartokite įgalioto bei atšaukto įrenginio patikras, nes tada konfigūracijos failas įveikia tai, ką pakeitėte veikiant. Palyginkite hosto viešąjį raktą arba sertifikato pirštų atspaudą su tuo, kurį naudojo iš eksploatacijos išimtas kompiuteris. Sutampantys pirštų atspaudai dviejuose veikiančiuose kompiuteriuose reiškia, kad atkūrimas klonavo tapatybę; sutampantys atspaudai viename kompiuteryje yra gerai. Užsirašykite atkurtas versijas, raktų pirštų atspaudus ir atšauktą serijos numerį arba partnerio raktą, tada po šio suderinimo padarykite kitą atsarginę kopiją, kad ji atspindėtų tarnybą tokią, kokia ji yra dabar. Veikiantis testas yra ne tai, kad klientas prisijungia. O tai, kad pašalintas klientas lieka lauke, kol senasis galinis taškas lieka uždarytas.