Nenadzirana ažuriranja razumna su politika za server kojem pristupate preko njegovog vlastitog VPN-a i istovremeno su jedna tačka samonanesenog kvara. Operacija paketa ponovo pokreće uslugu, tunel pada i administrativni put koji ste koristili nestaje zajedno s njim. Postoje dva modela oporavka, a izbor između njih zavisi od jednog uslova: da li imate put pristupa koji ne prolazi kroz ono što se ažurira.

Dva modela oporavka, jedan odlučujući uslov

Prvi model vjeruje ažuriranju i pretpostavlja da ćete se poslije moći ponovo povezati. Djeluje kada je VPN jedan od nekoliko načina da dođete do hosta i kada kvar tunela ne uklanja vašu mogućnost da ga dijagnostikujete. Drugi model unaprijed postavlja nezavisan put, obično konzolu hosting provajdera, i tretira tunel kao ono što će održavanje najvjerovatnije pokvariti. Oba modela su odbranjiva, a samo jedan od njih zahtijeva rad unaprijed.

Odlučujući uslov lako je izgovoriti i lako preskočiti. Ako svaki administrativni put do mašine ide kroz uslugu koja se ažurira, nemate nikakav model oporavka, samo očekivanje. Recite to naglas u pregledu promjene.

Provjera tog uslova traje deset minuta i mora se dogoditi prije prvog nenadziranog ažuriranja, a ne tokom incidenta. Otvorite konzolu dok sve radi, potvrdite da su akreditivi aktuelni i zatvorite je ponovo. Potvrdite da se konzola otvara na hostu na koji mislite. Zatim potvrdite da prijava koju biste zaista koristili u 3 sata ujutro još radi.

Posljednji dio je važniji nego što zvuči. Konzolni račun čija je lozinka rotirana prije šest mjeseci i nikada provjerena nije put oporavka; to je dokument koji opisuje takav put.

Šta sigurnosna kopija ne vraća

Arhiva konfiguracije je zapis o datotekama, a ažuriranje mijenja više od datoteka. Stanje paketa, kernel moduli, omogućene veze unit-a i pravila firewalla primijenjena kroz zaseban alat žive izvan konfiguracijskog direktorija, a vraćanje koje ih zanemari proizvodi mašinu koja izgleda konfigurisano i ne prosljeđuje saobraćaj.

What changedRestored by a configuration backupNeeds its own action
Service unit or startup orderingPartly, if the unit file was includedPackage state and enabled links
Kernel module or interface supportNoKernel or module rollback, or a boot-time decision
Peer or device authorizationOnly if the backup predates the revocationA deliberate decision about which peers return
Firewall rules applied outside the configOnly if they were capturedReplaying and verifying each rule

Autorizacija zaslužuje svoj red. Kopija napravljena prije uklanjanja kompromitovanog uređaja s radošću će vratiti pristup tom uređaju. Vraćanje na nju tokom prekida je način da jedan incident postane dva, a odluka o vraćanju treba da se donese o peer-ovima jednako eksplicitno kao o datotekama.

Mehanizam vraćanja je takođe važan. Kopiranje starijeg izvršnog fajla preko onog kojim upravlja paket nije podržano poništavanje promjene paketa i ostavlja bazu paketa da opisuje stanje koje se ne poklapa s datotečnim sistemom. Koristite vlastiti put za downgrade upravitelja paketa ili snimku koju nudi provajder. Downgrade koji baza paketa zabilježi je onaj koji možete ponoviti.

Ništa od ovoga ne govori protiv sigurnosnih kopija. Govori za to da znate koji sloj pokriva svaki artefakt, jer je način kvara djelimičnog vraćanja zbunjujući više od prvobitnog prekida. Upišite sloj pored svake kopije u runbook.

Kontrolna tačka, ažuriranje, pa provjera izvana

Zabilježite stanje prije promjene u obliku koji možete kasnije uporediti: instalirane verzije, uključene servisne unit-e, socket-e koji slušaju i trenutni spisak peer-ova. Četiri naredbe pokrivaju većinu toga na Linux hostu.

systemctl list-units --type=service | grep -E 'openvpn|wg-quick'
ss -lunp | grep -E ':51820|:1194'
journalctl -u wg-quick@wg0 --since '-10 min'

Prva pokazuje koji unit-i postoje i rade li, druga potvrđuje da je slušalac zaista vezan, a treća vam daje vlastiti izvještaj usluge o posljednjih nekoliko minuta. Nijedna od njih ne dokazuje da se klijent može povezati, zato se sljedeći korak odvija izvan hosta. Sačuvajte ta očitanja kao svoju osnovu za poređenje.

Provjerite s mreže koja ne koristi tunel: autentificirajte jednog ovlaštenog klijenta, razriješite ime i dosegnite jednu predviđenu aplikaciju. Lokalna statusna linija koja kaže da je interfejs podignut izjava je o interfejsu, ne o rutiranju, ključevima ili politici koja prima peer.

Zatim namjerno ispitajte put ponovnog povezivanja. Ponovo pokrenite uslugu jednom i potvrdite da se tunel vraća bez ručne intervencije, jer usluga koja ispravno starta samo pri podizanju sistema je usluga koja će vas iznenaditi u najgorem trenutku.

Kada ne uspije, koristite put koji ste ispitali

Slijed oporavka nije glamurozan i djeluje: dođite do hosta nezavisnim putem, pročitajte vlastite logove usluge i vratite konkretnu kontrolnu tačku koja odgovara kvaru. Mijenjajte jednu stvar po pokušaju da bi sljedeće čitanje loga nešto značilo.

Oduprite se porivu da napravite nekoliko nezabilježenih promjena da vratite povezanost. Mašina popravljena s pet istovremenih izmjena ne može se poslije objasniti, a sljedeće ažuriranje će ponovo uvesti onu koja je zaista nosila opterećenje.

Zatim odlučite trajnu politiku s dokazima. Ako je ažuriranje otkrilo zavisnost koju niko nije dokumentovao, popravka je dokumentacija i test, a ne isključivanje ažuriranja. Ako je otkrilo uslugu koja se ne može čisto ponovo pokrenuti, popravka je u unit-u, a ne u rasporedu.

Poređenje se čisto rješava kada se uslov imenuje. Nezavisan put čini nenadzirana ažuriranja upravljivim rizikom. Njegovo odsustvo čini istu politiku planiranim prekidom s nepoznatim vremenom oporavka, i nikakva količina automatizacije ne mijenja tu aritmetiku.

Povezani članci