Kako obnoviti VPN server bez udvostručavanja identiteta
Obnovljeni VPN server vraća fajlove, ne trenutni pristup. Uskladite opozive, ključeve partnera i završne tačke pre nego što druga kopija odgovori na handshake.
Obnovili ste rezervnu kopiju, servis je pokrenut i klijent se povezao iz prvog pokušaja. Taj uspeh je zamka. Obnova vraća fajlove koje je server imao u trenutku snimka, a ne stanje pristupa koje se od tada promenilo, i ako je stara završna tačka još dostupna, sada imate dve mašine koje odgovaraju na jedan identitet. Rešenje nije bolja rezervna kopija; rešenje je odlučiti šta obnovljeni host sme biti pre nego što odgovori i na jedan handshake.
Rezervna kopija vraća fajlove, ne ovlašćenje
Snimak drži konfiguraciju servera, privatne ključeve, ustanovu za izdavanje sertifikata, listu partnera i pravila vatrozida onakvima kakvi su bili kad je kopija nastala. Ne može držati ono što se posle promenilo: uređaj koji ste opozvali, ključ koji ste ponovo izdali, partnera kog ste uklonili kad je prenosni računar prodat, podmrežu koju ste premestili. Obnova vraća fajlove na taj trenutak. Ne vraća odluke koje su ljudi od tada doneli.
Šteta dolazi upravo iz tog jaza. Ukradeni prenosni računar opozvan dve nedelje posle kopije predstavlja sertifikat koji se još proverava prema starijem CRL-u u obnovljenom stablu, i server prihvata uređaj koji ste stavili van upotrebe. WireGuard je izravniji: partner je ovlašćen time što je na listi, pa je partner izbrisan posle snimka jednostavno opet prisutan. Niko nije ponovo odobrio taj pristup. Stari fajl jeste.
Identitet servera i identitet klijenta padaju na različite načine
Na WireGuardu je identitet servera privatni ključ u wg0.conf, pa kopiranje tog fajla na drugi dostupan host stvara dva servera s istim identitetom i bez znanja jedan o drugome. Svaki drži svoju listu partnera. Uklonite partnera na novom hostu i stari ga još prihvata; proverite wg show na jednom i vidite pola istine. Klijenti se ni sami ne prebacuju: profil nosi jedan Endpoint, pa uređaj nastavlja da razgovara sa adresom s kojom je konfigurisan, a to može biti host koji ste hteli staviti van upotrebe.
OpenVPN se udvostručuje na istom sloju sa sertifikatom servera, njegovim privatnim ključem i statičkim ključem tls-auth ili tls-crypt. Kopirajte sva tri i klijent ne može razlikovati instance; ako su oba dostupna, ponovno povezivanje može sleteti na bilo koji, a svaki fajl zapisa priča delimičnu priču. Ustanova za izdavanje sertifikata je dublja kopija. Obnovljeno easy-rsa stablo je drugi izvor istine koje može izdati važeći sertifikat za bilo koje ime koje mu date.
I klijenti se udvostručuju, obično tokom same migracije. Kopiranje profila na rezervni uređaj „samo za test“ stvara drugi uređaj sa istim ključem i istim zajedničkim imenom. Uz duplicate-cn obe sesije mogu ostati aktivne istovremeno, a statička dodela adrese u ccd ili ifconfig-pool-persist može se sudariti sa originalnim uređajem. To su dve mašine sa jednim identitetom i ništa u konfiguraciji servera ih ne razlikuje.
Izaberite jedno od tri stanja za staru završnu tačku
Obnova je bezbedna tek kad je sudbina stare završne tačke odlučena. Stavite je van upotrebe: stari servis mora prestati da prihvata VPN port pre nego što novi host krene, a ako ne možete doći do mašine, blokirajte taj port na ivici mreže za sve osim vašeg administrativnog izvora. Popravite isti host: ponovno korišćenje identiteta je u redu jer ga drži jedna mašina, ali zatim uništite kopiju na disku ili VM snimak starog ključa da se ne može vratiti. Izgradite par dostupnosti: dva hosta traže odvojene identitete hostova plus jednu zajedničku završnu tačku, poput plutajuće adrese, balansera opterećenja ili DNS-a koji možete premestiti. Kopiranje privatnog ključa nije dizajn prebacivanja; to su dva servera koja polažu pravo na jedno ime.
Potvrdite u kom stanju ste zapravo pre nego što dirnete klijente. Stari host koji odgovara na VPN portu je onaj koji će prihvatiti opozvani uređaj, čak i ako se DNS premestio. Proverite slušaoce i javni ključ:
ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key
Prvo uskladite partnere, opozive i adrese
Popišite šta obnova tvrdi prema onome što je trenutno ovlašćeno. Na WireGuardu wg show wg0 daje ključ, završnu tačku, poslednje rukovanje i brojače prenosa svakog partnera, što je dovoljno da uočite uređaj koji više ne posedujete. Uklonite ga uživo sa wg set wg0 peer <key> remove, zatim uredite i konfiguraciju, inače se partner vraća pri sledećem pokretanju. wg show wg0 allowed-ips otkriva drugi problem: dva partnera na jednoj adresi ili adresu koju ste već prenamestili.
Na OpenVPN-u je lista opoziva fajl sa datumom i obnova može vratiti stari. Proverite ga pre nego što se klijenti povežu:
openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf
Ako je poslednje ažuriranje pre opoziva, server još poštuje sertifikat koji ste opozvali. OpenVPN 2.4 i noviji ponovo čitaju CRL fajl za svaku novu vezu, pa zamena fajla zaustavlja nove sesije, ali uspostavljeni tuneli traju do ponovnog dogovora; podrazumevana vrednost reneg-sec je 3600 sekundi, a njeno sniženje ili ponovno pokretanje servisa daje vam promenu odmah. Starije verzije možda ne preuzimaju fajl tako pouzdano, pa ponovo pokrenite kad ne možete potvrditi ponašanje verzije. Priručnik wg(8) pokriva uklanjanje partnera i sintaksu allowed-ips korišćenu gore.
Očistite i statičke dodele za uređaje koji više ne postoje. Ponovno korišćenje adrese uređaja stavljenog van upotrebe za novi dok je stari profil još instaliran stvara tačno onaj duplikat koji pokušavate da izbegnete.
Proverite sa klijentom koji ste opozvali
Sprovedite provere redom, iz mreže van tunela. Najpre se ovlašćeni uređaj poveže, razreši DNS preko gurnutog rezolvera i dosegne privatni resurs. Zatim opozvani uređaj mora pasti, koristeći svoj postojeći profil, a ne novi. Zatim pokušajte staru završnu tačku spolja: ako VPN port još dovršava rukovanje, stari host je živ i udvostručavanje je stvarno, ne teorijsko.
Ponovo pokrenite obnovljeni host i ponovite provere ovlašćenog i opozvanog uređaja, jer tada konfiguracioni fajl pobeđuje ono što ste promenili tokom rada. Uporedite javni ključ hosta ili otisak sertifikata sa onim koji je koristila mašina stavljena van upotrebe. Podudarni otisci na dve žive mašine znače da je obnova klonirala identitet; podudarni otisci na jednoj mašini su u redu. Zabeležite obnovljene verzije, otiske ključeva i opozvani serijski broj ili ključ partnera, pa uzmite sledeću kopiju nakon ovog usklađivanja, da predstavlja servis kakav sada jeste. Radni test nije da se klijent poveže. Nego da klijent kog ste uklonili ostane napolju dok stara završna tačka ostaje zatvorena.