Palautit varmuuskopion, palvelu käynnistyi ja asiakas yhdisti ensimmäisellä yrityksellä. Se onnistuminen on ansa. Palautus palauttaa tiedostot, jotka palvelimella oli tilannevedoksen hetkellä, ei käyttöoikeustilaa, joka on muuttunut sen jälkeen, ja jos vanha päätepiste on yhä tavoitettavissa, sinulla on nyt kaksi konetta, jotka vastaavat yhteen identiteettiin. Ratkaisu ei ole parempi varmuuskopio; ratkaisu on päättää, mikä palautettu isäntä saa olla, ennen kuin se vastaa yhteenkään kättelyyn.

Varmuuskopio palauttaa tiedostot, ei valtuutta

Tilannevedos sisältää palvelimen kokoonpanon, yksityiset avaimet, varmenteen myöntäjän, vertaisluettelon ja palomuurisäännöt sellaisina kuin ne olivat varmuuskopion ajon hetkellä. Se ei voi sisältää sitä, mikä muuttui sen jälkeen: laitetta, jonka peruit, avainta, jonka myönsit uudelleen, vertaista, jonka poistit kannettavan myynnin yhteydessä, aliverkkoa, jonka siirsit. Palautus kelaa tiedostot siihen hetkeen. Se ei kelaa takaisin päätöksiä, joita ihmiset ovat sen jälkeen tehneet.

Vahinko tulee juuri tästä aukosta. Varmuuskopion jälkeen kaksi viikkoa myöhemmin peruttu varastettu kannettava esittää varmenteen, joka yhä validoituu palautetun puun vanhempaa CRL:ää vasten, ja palvelin hyväksyy laitteen, jonka poistit käytöstä. WireGuard on suorempi: vertainen valtuutetaan olemalla luettelossa, joten tilannevedoksen jälkeen poistettu vertainen on yksinkertaisesti taas paikalla. Kukaan ei hyväksynyt sitä käyttöoikeutta uudelleen. Vanha tiedosto teki sen.

Palvelimen identiteetti ja asiakkaan identiteetti pettävät eri tavoin

WireGuardissa palvelimen identiteetti on wg0.conf-tiedoston yksityinen avain, joten kyseisen tiedoston kopioiminen toiselle tavoitettavalle isännälle luo kaksi palvelinta, joilla on sama identiteetti eivätkä ne tiedä toisistaan. Kumpikin pitää omaa vertaisluetteloaan. Poista vertainen uudelta isännältä, ja vanha hyväksyy sen yhä; tarkista wg show toiselta ja näet puolet totuudesta. Asiakkaatkaan eivät vaihda itsestään: profiili kantaa yhden Endpointin, joten laite puhuu edelleen sille osoitteelle, johon se määritettiin, ja se voi olla isäntä, jonka halusit poistaa käytöstä.

OpenVPN monistuu samalla kerroksella palvelinvarmenneen, sen yksityisen avaimen ja tls-auth- tai tls-crypt-staattisen avaimen kanssa. Kopioi kaikki kolme, eikä asiakas erota instansseja toisistaan; jos molemmat ovat tavoitettavissa, uudelleenyhdistäminen voi laskeutua kummalle tahansa, ja jokainen lokitiedosto kertoo osittaisen tarinan. Varmenteen myöntäjä on syvempi kopio. Palautettu easy-rsa-puu on toinen totuuden lähde, joka voi myöntää kelvollisen varmenteen mille tahansa nimelle, jonka sille annat.

Asiakkaatkin monistuvat, yleensä itse migraation aikana. Profiilin kopioiminen varalaitteeseen «vain testausta varten» tuottaa toisen laitteen, jolla on sama avain ja yhteinen nimi. duplicate-cn-asetuksella molemmat istunnot voivat pysyä pystyssä yhtä aikaa, ja staattinen osoitteenmääritys tiedostossa ccd tai ifconfig-pool-persist voi törmätä alkuperäisen laitteen kanssa. Se on kaksi konetta yhdessä identiteetissä, eikä mikään palvelimen kokoonpanossa erota niitä.

Valitse yksi kolmesta tilasta vanhalle päätepisteelle

Palautus on turvallinen vasta, kun vanhan päätepisteen kohtalo on päätetty. Poista se käytöstä: vanhan palvelun on lopetettava VPN-portin hyväksyminen ennen kuin uusi isäntä käynnistyy, ja jos et pääse koneelle, estä se portti verkon reunalla kaikelta paitsi hallintalähteeltäsi. Korjaa sama isäntä: identiteetin uudelleenkäyttö on kunnossa, koska yksi kone pitää sitä, mutta tuhoa sen jälkeen vanhan avaimen levykopio tai VM-tilannevedos, jotta se ei voi palata. Rakenna saatavuuspari: kaksi isäntää tarvitsee erilliset isäntäidentiteetit ja yhden jaetun päätepisteen, kuten kelluvan osoitteen, kuormantasaajan tai DNS:n, jota voit siirtää. Yksityisen avaimen kopioiminen ei ole failover-suunnittelu; se on kaksi palvelinta, jotka vaativat yhtä nimeä.

Vahvista, missä tilassa todella olet, ennen kuin kosket asiakkaisiin. Vanha isäntä, joka vastaa VPN-portissa, on se, joka hyväksyy peruutetun laitteen, vaikka DNS olisi siirtynyt. Tarkista kuuntelijat ja julkinen avain:

ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key

Sovita ensin vertaiset, peruutukset ja osoitteet

Listaa, mitä palautus väittää, sitä vasten, mikä on nyt valtuutettu. WireGuardissa wg show wg0 antaa kunkin vertaisen avaimen, päätepisteen, viimeisimmän kättelyn ja siirtolaskurit, mikä riittää havaitsemaan laitteen, jota et enää omista. Poista se lennossa komennolla wg set wg0 peer <key> remove, ja muokkaa sitten myös kokoonpanoa, muuten vertainen palaa seuraavalla käynnistyksellä. wg show wg0 allowed-ips paljastaa toisen ongelman: kaksi vertaista yhdellä osoitteella tai osoite, jonka olet jo siirtänyt toisaalle.

OpenVPN:ssä peruutusluettelo on tiedosto, jolla on päivämäärä, ja palautus voi tuoda vanhan takaisin. Tarkista se ennen kuin asiakkaat yhdistävät:

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf

Jos viimeisin päivitys on peruutusta vanhempi, palvelin kunnioittaa yhä varmennetta, jonka peruit. OpenVPN 2.4 ja uudemmat lukevat CRL-tiedoston uudelleen jokaista uutta yhteyttä varten, joten tiedoston korvaaminen pysäyttää uudet istunnot, mutta muodostetut tunnelit säilyvät uudelleenneuvotteluun asti; reneg-sec-asetuksen oletus on 3600 sekuntia, ja juuri sen laskeminen tai palvelun uudelleenkäynnistys antaa muutoksen heti. Vanhemmat versiot eivät ehkä lue tiedostoa yhtä luotettavasti, joten käynnistä uudelleen, kun et voi vahvistaa version käyttäytymistä. wg(8)-käsikirja kattaa yllä käytetyn vertaisen poiston ja allowed-ips-syntaksin.

Siivoa myös sellaisten laitteiden staattiset määritykset, joita ei enää ole. Käytöstä poistetun laitteen osoitteen uudelleenkäyttö uudelle laitteelle, kun vanha profiili on yhä asennettu, luo täsmälleen sen kaksoiskappaleen, jota yrität välttää.

Vahvista asiakkaalla, jonka peruit

Suorita tarkistukset järjestyksessä tunnelin ulkopuolisesta verkosta. Ensin valtuutettu laite yhdistää, ratkaisee DNS:n työnnetyn ratkaisijan kautta ja saavuttaa yksityisen resurssin. Sitten peruutetun laitteen on epäonnistuttava käyttäen olemassa olevaa profiiliaan eikä uutta. Sitten kokeile vanhaa päätepistettä ulkopuolelta: jos VPN-portti yhä suorittaa kättelyn, vanha isäntä on elossa ja monistus on todellista, ei teoreettista.

Käynnistä palautettu isäntä uudelleen ja toista valtuutetun ja peruutetun tarkistukset, koska silloin kokoonpanotiedosto voittaa sen, mitä muutit ajon aikana. Vertaa isännän julkista avainta tai varmenteen sormenjälkeä siihen, jota käytöstä poistettu kone käytti. Samat sormenjäljet kahdella elävällä koneella tarkoittavat, että palautus kloonasi identiteetin; samat sormenjäljet yhdellä koneella ovat kunnossa. Kirjaa palautetut versiot, avainten sormenjäljet ja peruutettu sarjanumero tai vertaisavain, ja ota sitten seuraava varmuuskopio tämän sovittelun jälkeen, jotta se edustaa palvelua sellaisena kuin se nyt on. Toimiva testi ei ole se, että asiakas yhdistää. Se on, että poistamasi asiakas pysyy ulkona, kun vanha päätepiste pysyy suljettuna.

Aiheeseen liittyvät artikkelit