Obevakade uppdateringar är en rimlig policy för en server du når via dess egen VPN, och samtidigt är de en enda punkt av självförvållat haveri. Paketoperationen startar om tjänsten, tunneln faller och den administrativa väg du använde försvinner med den. Det finns två återställningsmodeller, och valet mellan dem beror på ett villkor: om du har en väg in som inte går genom det som uppdateras.

Två återställningsmodeller, ett avgörande villkor

Den första modellen litar på uppdateringen och förutsätter att du kan återansluta efteråt. Den fungerar när VPN är ett av flera sätt att nå värden och när tunnelns bortfall inte tar bort din förmåga att diagnostisera den. Den andra modellen placerar i förväg en oberoende väg, oftast hostingleverantörens konsol, och behandlar tunneln som det som underhåll mest sannolikt bryter. Båda modellerna är försvarbara, och bara en av dem kräver arbete i förväg.

Det avgörande villkoret är lätt att säga och lätt att hoppa över. Om varje administrativ väg till maskinen går genom tjänsten som uppdateras har du ingen återställningsmodell alls, bara en förväntan. Säg det högt i ändringsgranskningen.

Att testa det villkoret tar tio minuter och måste ske före den första obevakade uppdateringen, inte under incidenten. Öppna konsolen medan allt fungerar, bekräfta att inloggningsuppgifterna är giltiga och stäng den igen. Bekräfta att konsolen öppnas på den värd du tror. Bekräfta sedan att den inloggning du faktiskt skulle använda klockan 3 på natten fortfarande fungerar.

Den sista delen betyder mer än den låter. Ett konsolkonto vars lösenord byttes för sex månader sedan och aldrig verifierades är inte en återställningsväg; det är ett dokument som beskriver en.

Vad en säkerhetskopia inte återställer

Ett konfigurationsarkiv är en registrering av filer, och en uppdatering ändrar mer än filer. Pakettillstånd, kärnmoduler, aktiverade enhetslänkar och brandväggsregler som tillämpats via ett separat verktyg lever alla utanför en konfigurationskatalog, och en återställning som ignorerar dem ger en maskin som ser konfigurerad ut och inte vidarebefordrar.

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

Auktorisering förtjänar sin egen rad. En säkerhetskopia tagen innan en komprometterad enhet togs bort återställer gärna den enhetens åtkomst. Att rulla tillbaka till den under ett avbrott är hur en incident blir två, och beslutet att återställa bör fattas om peers lika uttryckligen som det fattas om filer.

Själva återrullningen spelar också roll. Att kopiera en äldre körbar fil över en pakethanterad är inte den stödda återföringen av en paketändring, och det lämnar paketdatabasen att beskriva ett tillstånd som filsystemet inte matchar. Använd pakethanterarens egen nedgraderingsväg eller den ögonblicksbild leverantören erbjuder. En nedgradering som paketdatabasen registrerar är en du kan upprepa.

Inget av detta talar emot säkerhetskopior. Det talar för att veta vilket lager varje artefakt täcker, eftersom felsättet vid en partiell återställning är mer förvirrande än det ursprungliga avbrottet. Skriv lagret bredvid varje säkerhetskopia i runbooken.

Kontrollpunkt, uppdatering och sedan verifiering utifrån

Registrera tillståndet före ändringen i en form du kan jämföra senare: de installerade versionerna, de berörda tjänsteenheterna, de lyssnande socketsen och den aktuella peer-listan. Fyra kommandon täcker det mesta av detta på en Linux-värd.

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

Den första visar vilka enheter som finns och om de körs, den andra bekräftar att lyssnaren verkligen är bunden, och den tredje ger dig tjänstens egen redogörelse för de senaste minuterna. Ingen av dem bevisar att en klient kan ansluta, därför sker nästa steg utanför värden. Behåll de avläsningarna som din jämförelsebas.

Verifiera från ett nätverk som inte använder tunneln: autentisera en behörig klient, slå upp ett namn och nå en avsedd applikation. En lokal statusrad som säger att gränssnittet är uppe är ett påstående om gränssnittet, inte om routning, nycklar eller policyn som släpper in en peer.

Testa sedan återanslutningsvägen med avsikt. Starta om tjänsten en gång och bekräfta att tunneln kommer tillbaka utan manuellt ingripande, för en tjänst som bara startar korrekt vid uppstart är en tjänst som överraskar dig i värsta ögonblicket.

När det misslyckas, använd vägen du har testat

Återställningssekvensen är oglamorös och den fungerar: nå värden via den oberoende vägen, läs tjänstens egna loggar och återställ den specifika kontrollpunkt som motsvarar felet. Ändra en sak per försök så att nästa loggläsning betyder något.

Motstå frestelsen att göra flera oregistrerade ändringar för att få tillbaka anslutningen. En maskin som reparerats med fem samtidiga ändringar kan inte förklaras i efterhand, och nästa uppdatering återinför den av dem som faktiskt bar lasten.

Bestäm sedan den permanenta policyn med bevis. Om uppdateringen avslöjade ett beroende som ingen dokumenterade är åtgärden dokumentation och ett test, inte att stänga av uppdateringar. Om den avslöjade en tjänst som inte kan startas om rent ligger åtgärden i enheten, inte i schemat.

Jämförelsen faller rent på plats när villkoret har ett namn. En oberoende väg gör obevakade uppdateringar till en hanterbar risk. Avsaknaden av den gör samma policy till ett planerat avbrott med okänd återställningstid, och ingen mängd automatisering ändrar den aritmetiken.

Relaterade artiklar