Kiel restaŭri VPN-servilon sen duobligi identecojn
Restaŭrita VPN-servilo redonas dosierojn, ne nunan aliron. Kongruigu revokojn, ŝlosilojn de samranguloj kaj finpunktojn antaŭ ol dua kopio respondos al manpremo.
Vi restaŭris la sekurkopion, la servo ekfunkciis, kaj kliento konektiĝis unuafoje sukcese. Tiu sukceso estas la kaptilo. Restaŭro redonas la dosierojn, kiujn la servilo havis je la momento de la momenta kopio, ne la aliran staton, kiu ŝanĝiĝis de tiam, kaj se la malnova finpunkto ankoraŭ estas atingebla, vi nun havas du maŝinojn respondantajn al unu identeco. La solvo ne estas pli bona sekurkopio; ĝi estas decidi, kio la restaŭrita gastiganto rajtas esti, antaŭ ol ĝi respondos al eĉ unu manpremo.
Sekurkopio redonas dosierojn, ne aŭtoritaton
La momenta kopio entenas la servilan agordon, la privatajn ŝlosilojn, la atestilan aŭtoritaton, la liston de samranguloj kaj la fajroŝirmilajn regulojn tiaj, kiaj ili estis kiam la kopio kuris. Ĝi ne povas enteni tion, kio ŝanĝiĝis poste: la aparaton, kiun vi revokis, la ŝlosilon, kiun vi reeldonis, la samrangulon, kiun vi forigis kiam tekkomputilo estis vendita, la subreton, kiun vi movis. Restaŭro rewindigas la dosierojn al tiu momento. Ĝi ne rewindigas la decidojn, kiujn homoj faris de tiam.
La damaĝo venas ĝuste el tiu breĉo. Ŝtelita tekkomputilo revokita du semajnojn post la kopio prezentas atestilon, kiu ankoraŭ validiĝas kontraŭ la pli malnova CRL en la restaŭrita arbo, kaj la servilo akceptas aparaton, kiun vi eksigis. WireGuard estas pli rekta: samrangulo estas rajtigita per tio, ke ĝi estas listigita, do samrangulo forigita post la momenta kopio simple denove ĉeestas. Neniu reaprobis tiun aliron. La malnova dosiero faris tion.
Servila identeco kaj klienta identeco malsukcesas laŭ malsamaj manieroj
Ĉe WireGuard la identeco de la servilo estas la privata ŝlosilo en wg0.conf, do kopii tiun dosieron al dua atingebla gastiganto kreas du servilojn kun la sama identeco kaj sen scio unu pri la alia. Ĉiu tenas sian propran liston de samranguloj. Forigu samrangulon ĉe la nova gastiganto kaj la malnova ankoraŭ akceptas ĝin; kontrolu wg show ĉe unu kaj vi vidas duonon de la vero. Klientoj ankaŭ ne mem transiras: profilo portas unu Endpoint, do aparato daŭre parolas kun la adreso, per kiu ĝi estis agordita, kiu povas esti la gastiganto, kiun vi intencis eksigi.
OpenVPN duobliĝas ĉe la sama tavolo per servila atestilo, ĝia privata ŝlosilo kaj la statika ŝlosilo tls-auth aŭ tls-crypt. Kopiu ĉiujn tri kaj kliento ne povas distingi la ekzemplerojn; se ambaŭ estas atingeblaj, rekonekto povas surteriĝi sur iu ajn, kaj ĉiu protokola dosiero rakontas partan historion. La atestila aŭtoritato estas la pli profunda kopio. Restaŭrita easy-rsa-arbo estas dua fonto de vero, kiu povas eldoni validan atestilon por ajna nomo, kiun vi donas al ĝi.
Klientoj ankaŭ duobliĝas, kutime dum la migrado mem. Kopii profilon al rezerva aparato «nur por testi» produktas duan aparaton kun la sama ŝlosilo kaj komuna nomo. Kun duplicate-cn ambaŭ sesioj povas resti aktivaj samtempe, kaj statika adresa atribuo en ccd aŭ ifconfig-pool-persist povas kolizii kun la originala aparato. Tio estas du maŝinoj portantaj unu identecon, kaj nenio en la servila agordo distingas ilin.
Elektu unu el tri statoj por la malnova finpunkto
Restaŭro estas sekura nur post kiam la sorto de la malnova finpunkto estas decidita. Eksigu ĝin: la malnova servo devas ĉesi akcepti la VPN-pordon antaŭ ol la nova gastiganto ekfunkcios, kaj se vi ne povas atingi la maŝinon, bloku tiun pordon ĉe la reta rando por ĉio krom via administra fonto. Riparu la saman gastiganton: reuzi la identecon estas en ordo, ĉar unu maŝino tenas ĝin, sed poste detruu la diskokopion aŭ VM-momentan kopion de la malnova ŝlosilo, por ke ĝi ne povu reveni. Konstruu disponeblan paron: du gastigantoj bezonas apartajn gastigantajn identecojn kaj unu komunan finpunkton, ekzemple flosan adreson, ŝarĝobalancilon aŭ DNS, kiun vi povas movi. Kopii la privatan ŝlosilon ne estas failover-dezajno; tio estas du serviloj postulantaj unu nomon.
Konfirmu, en kiu stato vi efektive estas, antaŭ ol tuŝi klientojn. La malnova gastiganto respondanta ĉe la VPN-pordo estas tiu, kiu akceptos la revokitan aparaton, eĉ se DNS moviĝis. Kontrolu aŭskultantojn kaj la publikan ŝlosilon:
ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key
Unue kongruigu samrangulojn, revokojn kaj adresojn
Listigu, kion la restaŭro asertas, kontraŭ tio, kio nun estas rajtigita. Ĉe WireGuard wg show wg0 donas la ŝlosilon, finpunkton, lastan manpremon kaj transigajn nombrilojn de ĉiu samrangulo, kio sufiĉas por rimarki aparaton, kiun vi ne plu posedas. Forigu ĝin vive per wg set wg0 peer <key> remove, poste redaktu ankaŭ la agordon, alie la samrangulo revenos ĉe la sekva starto. wg show wg0 allowed-ips malkaŝas la duan problemon: du samranguloj sur unu adreso, aŭ adreso, kiun vi jam reagordis.
Ĉe OpenVPN la revoklisto estas dosiero kun dato, kaj restaŭro povas revenigi malnovan. Kontrolu ĝin antaŭ ol klientoj konektiĝas:
openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf
Se la lasta ĝisdatigo antaŭas la revokon, la servilo ankoraŭ honoras atestilon, kiun vi revokis. OpenVPN 2.4 kaj poste relegas la CRL-dosieron por ĉiu nova konekto, do anstataŭigi la dosieron haltigas novajn sesiojn, sed establitaj tuneloj daŭras ĝis rekontraktado; la defaŭlto de reneg-sec estas 3600 sekundoj, kaj malaltigi ĝin aŭ restartigi la servon donas al vi la ŝanĝon nun. Pli malnovaj versioj eble ne prenas la dosieron same fidinde, do restartigu kiam vi ne povas konfirmi la konduton de la versio. La manlibro pri wg(8) kovras la forigon de samrangulo kaj la sintakson allowed-ips uzitaj supre.
Ankaŭ purigu statikajn atribuojn por aparatoj, kiuj ne plu ekzistas. Reuzi la adreson de eksigita aparato por nova dum la malnova profilo ankoraŭ estas instalita kreas ĝuste la duoblaĵon, kiun vi provas eviti.
Kontrolu per kliento, kiun vi revokis
Plenumu la kontrolojn laŭvice, el reto ekster la tunelo. Unue rajtigita aparato konektiĝas, solvas DNS per la puŝita solvilo kaj atingas privatan rimedon. Poste la revokita aparato devas malsukcesi, uzante sian ekzistantan profilon anstataŭ novan. Poste provu la malnovan finpunkton de ekstere: se la VPN-pordo ankoraŭ kompletigas manpremon, la malnova gastiganto vivas kaj la duobligo estas reala, ne teoria.
Restartigu la restaŭritan gastiganton kaj ripetu la kontrolojn de rajtigita kaj revokita, ĉar tiam la agorda dosiero venkas super tio, kion vi ŝanĝis dum rultempo. Komparu la publikan ŝlosilon aŭ atestilan fingrospuron de la gastiganto kun tiu, kiun uzis la eksigita maŝino. Kongruaj fingrospuroj ĉe du vivantaj maŝinoj signifas, ke la restaŭro klonis la identecon; kongruaj fingrospuroj ĉe unu maŝino estas en orde. Notu la restaŭritajn versiojn, ŝlosilajn fingrospurojn kaj la revokitan serian numeron aŭ samrangulan ŝlosilon, poste faru la sekvan sekurkopion post ĉi tiu kongruigo, por ke ĝi reprezentu la servon tia, kia ĝi nun estas. La funkcianta testo ne estas, ke kliento konektiĝas. Ĝi estas, ke la kliento, kiun vi forigis, restas ekstere dum la malnova finpunkto restas fermita.