Obnovili ste sigurnosnu kopiju, usluga je pokrenuta i klijent se povezao iz prvog pokušaja. Taj uspjeh je zamka. Obnova vraća datoteke koje je server imao u trenutku snimke, a ne stanje pristupa koje se od tada promijenilo, i ako je stara krajnja točka još dostupna, sada imate dva stroja koji odgovaraju na jedan identitet. Rješenje nije bolja sigurnosna kopija; rješenje je odlučiti što obnovljeni host smije biti prije nego odgovori i na jedno rukovanje.

Sigurnosna kopija vraća datoteke, ne ovlasti

Snimka drži konfiguraciju servera, privatne ključeve, certifikacijsko tijelo, popis partnera i pravila vatrozida onakvima kakvi su bili kad je kopija nastala. Ne može držati ono što se poslije promijenilo: uređaj koji ste opozvali, ključ koji ste ponovno izdali, partnera kojeg ste uklonili kad je prijenosnik prodan, podmrežu koju ste premjestili. Obnova vraća datoteke na taj trenutak. Ne vraća odluke koje su ljudi od tada donijeli.

Šteta dolazi upravo iz tog jaza. Ukradeni prijenosnik opozvan dva tjedna nakon kopije predstavlja certifikat koji se još provjerava prema starijem CRL-u u obnovljenom stablu, i server prihvaća uređaj koji ste umirovili. WireGuard je izravniji: partner je ovlašten time što je na popisu, pa je partner izbrisan nakon snimke jednostavno opet prisutan. Nitko nije ponovno odobrio taj pristup. Stara datoteka jest.

Identitet servera i identitet klijenta padaju na različite načine

Na WireGuardu je identitet servera privatni ključ u wg0.conf, pa kopiranje te datoteke na drugi dostupan host stvara dva servera s istim identitetom i bez znanja jedan o drugome. Svaki drži svoj popis partnera. Uklonite partnera na novom hostu i stari ga još prihvaća; provjerite wg show na jednom i vidite pola istine. Klijenti se ni sami ne prebacuju: profil nosi jedan Endpoint, pa uređaj nastavlja razgovarati s adresom s kojom je konfiguriran, a to može biti host koji ste htjeli umiroviti.

OpenVPN se duplicira na istom sloju sa certifikatom 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 obje dostupne, ponovno povezivanje može sletjeti na bilo koju, a svaka datoteka zapisa priča djelomičnu priču. Certifikacijsko tijelo je dublja kopija. Obnovljeno easy-rsa stablo drugi je izvor istine koje može izdati valjan certifikat za bilo koje ime koje mu date.

I klijenti se dupliciraju, obično tijekom same migracije. Kopiranje profila na rezervni uređaj „samo za test“ stvara drugi uređaj s istim ključem i zajedničkim imenom. Uz duplicate-cn obje sesije mogu ostati aktivne istovremeno, a statička dodjela adrese u ccd ili ifconfig-pool-persist može se sudariti s izvornim uređajem. To su dva stroja s jednim identitetom i ništa u konfiguraciji servera ih ne razlikuje.

Odaberite jedno od tri stanja za staru krajnju točku

Obnova je sigurna tek kad je sudbina stare krajnje točke odlučena. Umirovite je: stara usluga mora prestati prihvaćati VPN port prije nego novi host krene, a ako ne možete doći do stroja, blokirajte taj port na rubu mreže za sve osim vašeg administrativnog izvora. Popravite isti host: ponovno korištenje identiteta je u redu jer ga drži jedan stroj, ali zatim uništite kopiju na disku ili VM snimku starog ključa da se ne može vratiti. Izgradite par dostupnosti: dva hosta trebaju odvojene identitete hostova plus jednu zajedničku krajnju točku, poput plutajuće adrese, balansera opterećenja ili DNS-a koji možete premjestiti. Kopiranje privatnog ključa nije dizajn prebacivanja; to su dva servera koja polažu pravo na jedno ime.

Potvrdite u kojem stanju ste zapravo prije nego dirnete klijente. Stari host koji odgovara na VPN portu je onaj koji će prihvatiti opozvani uređaj, čak i ako se DNS premjestio. Provjerite slušače 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 što obnova tvrdi prema onome što je trenutno ovlašteno. Na WireGuardu wg show wg0 daje ključ, krajnju točku, zadnje rukovanje i brojače prijenosa svakog partnera, što je dovoljno da uočite uređaj koji više ne posjedujete. Uklonite ga uživo s wg set wg0 peer <key> remove, zatim uredite i konfiguraciju, inače se partner vraća pri sljedećem pokretanju. wg show wg0 allowed-ips otkriva drugi problem: dva partnera na jednoj adresi ili adresu koju ste već prenamijenili.

Na OpenVPN-u je popis opoziva datoteka s datumom i obnova može vratiti stari. Provjerite ga prije nego 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 zadnje ažuriranje prije opoziva, server još poštuje certifikat koji ste opozvali. OpenVPN 2.4 i noviji ponovno čitaju CRL datoteku za svaku novu vezu, pa zamjena datoteke zaustavlja nove sesije, ali uspostavljeni tuneli traju do ponovnog dogovora; zadana vrijednost reneg-sec je 3600 sekundi, a njezino sniženje ili ponovno pokretanje usluge daje vam promjenu odmah. Starije verzije možda ne preuzimaju datoteku tako pouzdano, pa ponovno pokrenite kad ne možete potvrditi ponašanje verzije. Priručnik wg(8) pokriva uklanjanje partnera i sintaksu allowed-ips korištenu gore.

Očistite i statičke dodjele za uređaje koji više ne postoje. Ponovno korištenje adrese umirovljenog uređaja za novi dok je stari profil još instaliran stvara točno onaj duplikat koji pokušavate izbjeći.

Provjerite s klijentom koji ste opozvali

Provedite provjere redom, iz mreže izvan tunela. Najprije se ovlašteni uređaj poveže, razriješi DNS preko gurnutog razrješivača i dosegne privatni resurs. Zatim opozvani uređaj mora pasti, koristeći svoj postojeći profil, a ne novi. Zatim pokušajte staru krajnju točku izvana: ako VPN port još dovršava rukovanje, stari host je živ i dupliciranje je stvarno, ne teoretsko.

Ponovno pokrenite obnovljeni host i ponovite provjere ovlaštenog i opozvanog uređaja, jer tada konfiguracijska datoteka pobjeđuje ono što ste promijenili tijekom rada. Usporedite javni ključ hosta ili otisak certifikata s onim koji je koristio umirovljeni stroj. Podudarni otisci na dva živa stroja znače da je obnova klonirala identitet; podudarni otisci na jednom stroju su u redu. Zabilježite obnovljene verzije, otiske ključeva i opozvani serijski broj ili ključ partnera, pa uzmite sljedeću kopiju nakon ovog usklađivanja, da predstavlja uslugu kakva sada jest. Radni test nije da se klijent poveže. Nego da klijent kojeg ste uklonili ostane vani dok stara krajnja točka ostaje zatvorena.

Povezani članci