Nenadzirana ažuriranja VPN poslužitelja traže ispitan put oporavka
Ažuriranje može ponovno pokrenuti upravo onu uslugu kojom dolazite do poslužitelja. Usporedite izvanpojasnu konzolu s planom oporavka samo preko tunela prije automatizacije.
Nenadzirana ažuriranja razumna su politika za poslužitelj kojem pristupate preko njegova vlastitog VPN-a i istodobno su jedna točka samoizazvanog kvara. Radnja paketa ponovno pokreće uslugu, tunel pada i administrativni put koji ste koristili nestaje zajedno s njim. Postoje dva modela oporavka, a izbor između njih ovisi o jednom uvjetu: imate li put pristupa koji ne prolazi kroz ono što se ažurira.
Dva modela oporavka, jedan odlučujući uvjet
Prvi model vjeruje ažuriranju i pretpostavlja da ćete se poslije moći ponovno 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 dijagnosticirate. Drugi model unaprijed postavlja neovisan put, obično konzolu pružatelja usluge hostanja, i tretira tunel kao ono što će održavanje najvjerojatnije pokvariti. Oba modela su obranjiva, a samo jedan od njih zahtijeva rad unaprijed.
Odlučujući uvjet lako je izgovoriti i lako preskočiti. Ako svaki administrativni put do stroja ide kroz uslugu koja se ažurira, nemate nikakav model oporavka, samo očekivanje. Recite to naglas u pregledu promjene.
Provjera tog uvjeta traje deset minuta i mora se dogoditi prije prvog nenadziranog ažuriranja, a ne tijekom incidenta. Otvorite konzolu dok sve radi, potvrdite da su vjerodajnice aktualne i zatvorite je ponovno. 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 važniji je 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.
Što sigurnosna kopija ne vraća
Arhiva konfiguracije zapis je o datotekama, a ažuriranje mijenja više od datoteka. Stanje paketa, kernel moduli, omogućene veze unit-a i pravila vatrozida primijenjena zasebnim alatom žive izvan konfiguracijskog direktorija, a vraćanje koje ih zanemari proizvodi stroj koji izgleda konfigurirano i ne prosljeđuje promet.
| What changed | Restored by a configuration backup | Needs its own action |
|---|---|---|
| Service unit or startup ordering | Partly, if the unit file was included | Package state and enabled links |
| Kernel module or interface support | No | Kernel or module rollback, or a boot-time decision |
| Peer or device authorization | Only if the backup predates the revocation | A deliberate decision about which peers return |
| Firewall rules applied outside the config | Only if they were captured | Replaying and verifying each rule |
Autorizacija zaslužuje svoj redak. Kopija napravljena prije uklanjanja kompromitiranog uređaja rado će vratiti pristup tog uređaja. Vraćanje na nju tijekom prekida je način na koji jedan incident postaje dva, a odluka o vraćanju treba se donijeti o peer-ovima jednako eksplicitno kao o datotekama.
Mehanizam vraćanja također je važan. Kopiranje starijeg izvršnog programa preko onoga kojim upravlja paket nije podržano poništavanje promjene paketa i ostavlja bazu paketa da opisuje stanje s kojim se datotečni sustav ne podudara. Koristite vlastiti put za downgrade upravitelja paketa ili snimku koju nudi pružatelj. Downgrade koji baza paketa zabilježi onaj je koji možete ponoviti.
Ništa od ovoga ne govori protiv sigurnosnih kopija. Govori u prilog tome da znate koji sloj pokriva svaki artefakt, jer je način kvara djelomičnog vraćanja zbunjujući više od izvornog prekida. Upišite sloj uz svaku kopiju u runbook.
Kontrolna točka, ažuriranje, pa provjera izvana
Zabilježite stanje prije promjene u obliku koji možete kasnije usporediti: instalirane verzije, uključene servisne unit-e, socket-e koji slušaju i trenutačni popis 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 koje unit-e postoje i rade li, druga potvrđuje da je slušatelj 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 usporedbu.
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 sučelje podignuto izjava je o sučelju, ne o usmjeravanju, ključevima ili politici koja prima peer.
Zatim namjerno ispitajte put ponovnog povezivanja. Ponovno pokrenite uslugu jednom i potvrdite da se tunel vraća bez ručne intervencije, jer usluga koja ispravno starta samo pri podizanju sustava usluga je 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 neovisnim putem, pročitajte vlastite logove usluge i vratite konkretnu kontrolnu toč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 kako biste vratili povezanost. Stroj popravljen s pet istodobnih izmjena ne može se poslije objasniti, a sljedeće ažuriranje ponovno će uvesti onu koja je zaista nosila opterećenje.
Zatim odlučite trajnu politiku s dokazima. Ako je ažuriranje otkrilo ovisnost koju nitko nije dokumentirao, popravak je dokumentacija i test, a ne isključivanje ažuriranja. Ako je otkrilo uslugu koja se ne može čisto ponovno pokrenuti, popravak je u unit-u, a ne u rasporedu.
Usporedba se čisto rješava kada se uvjet imenuje. Neovisan 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.