Automatické aktualizace jsou rozumná politika pro server, ke kterému se dostáváte přes jeho vlastní VPN, a zároveň jsou jediným bodem selhání, které si způsobíte sami. Operace balíčku restartuje službu, tunel spadne a administrativní cesta, kterou jste používali, zmizí spolu s ním. Existují dva modely obnovy a volba mezi nimi závisí na jedné podmínce: zda máte cestu dovnitř, která nevede přes to, co se aktualizuje.

Dva modely obnovy, jedna rozhodující podmínka

První model aktualizaci důvěřuje a předpokládá, že se potom znovu připojíte. Funguje, když je VPN jedním z několika způsobů, jak se k hostiteli dostat, a když selhání tunelu neodstraní vaši schopnost ho diagnostikovat. Druhý model předem umísťuje nezávislou cestu, obvykle konzoli poskytovatele hostingu, a tunel považuje za to, co údržba nejpravděpodobněji rozbije. Oba modely jsou obhajitelné a jen jeden z nich vyžaduje práci předem.

Rozhodující podmínku je snadné vyslovit a snadné přeskočit. Pokud každá administrativní cesta ke stroji vede přes aktualizovanou službu, nemáte žádný model obnovy, jen očekávání. Řekněte to nahlas při revizi změny.

Otestování té podmínky trvá deset minut a musí se odehrát před první automatickou aktualizací, ne během incidentu. Otevřete konzoli, dokud vše funguje, ověřte, že přihlašovací údaje jsou platné, a zase ji zavřete. Ověřte, že se konzole otevírá na hostiteli, o kterém si myslíte. Pak ověřte, že přihlášení, které byste ve 3 hodiny ráno skutečně použili, stále funguje.

Poslední část je důležitější, než to zní. Konzolový účet, jehož heslo bylo změněno před šesti měsíci a nikdy nebylo ověřeno, není cesta obnovy; je to dokument, který takovou cestu popisuje.

Co záloha neobnoví

Archiv konfigurace je záznam souborů a aktualizace mění víc než soubory. Stav balíčků, moduly jádra, povolené odkazy jednotek a pravidla firewallu aplikovaná samostatným nástrojem žijí mimo konfigurační adresář a obnova, která je ignoruje, vytvoří stroj, který vypadá nakonfigurovaný a nepředává provoz.

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

Autorizace si zaslouží vlastní řádek. Záloha pořízená před odstraněním kompromitovaného zařízení s radostí obnoví přístup toho zařízení. Vrátit se k ní během výpadku je způsob, jak se z jednoho incidentu stanou dva, a rozhodnutí o obnově by se mělo o partnerech dělat stejně výslovně jako o souborech.

Záleží i na mechanismu vrácení. Zkopírování staršího spustitelného souboru přes ten spravovaný balíčkem není podporované zvrácení změny balíčku a nechá databázi balíčků popisovat stav, kterému souborový systém neodpovídá. Použijte vlastní cestu pro downgrade správce balíčků nebo snímek, který poskytovatel nabízí. Downgrade, který databáze balíčků zaznamená, je ten, který můžete zopakovat.

Nic z toho neargumentuje proti zálohám. Argumentuje to pro to vědět, kterou vrstvu každý artefakt pokrývá, protože režim selhání částečné obnovy je matoucnější než původní výpadek. Napište vrstvu vedle každé zálohy do runbooku.

Kontrolní bod, aktualizace, pak ověření zvenčí

Zaznamenejte stav před změnou ve formě, kterou můžete později porovnat: nainstalované verze, dotčené jednotky služeb, naslouchající sockety a aktuální seznam partnerů. Čtyři příkazy pokryjí většinu toho na linuxovém hostiteli.

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

První ukazuje, které jednotky existují a zda běží, druhý potvrzuje, že naslouchač je skutečně svázán, a třetí vám dává vlastní výpověď služby o posledních několika minutách. Žádný z nich nedokazuje, že se klient může připojit, a proto se další krok odehrává mimo hostitele. Uchovejte ta čtení jako základ pro srovnání.

Ověřte to ze sítě, která tunel nepoužívá: autentizujte jednoho autorizovaného klienta, přeložte jméno a dosáhněte jedné zamýšlené aplikace. Místní stavový řádek, který říká, že rozhraní je nahoře, je tvrzení o rozhraní, ne o směrování, klíčích nebo politice, která partnera přijímá.

Pak záměrně otestujte cestu opětovného připojení. Jednou restartujte službu a ověřte, že se tunel vrátí bez ručního zásahu, protože služba, která se správně spouští jen při bootu, je služba, která vás překvapí v nejhorší chvíli.

Když to selže, použijte cestu, kterou jste otestovali

Sekvence obnovy není efektní a funguje: dostanete se k hostiteli nezávislou cestou, přečtěte si vlastní logy služby a obnovte konkrétní kontrolní bod, který odpovídá selhání. Měňte jednu věc na pokus, aby další čtení logu něco znamenalo.

Odolejte nutkání udělat několik nezaznamenaných změn, abyste vrátili konektivitu. Stroj opravený pěti současnými úpravami nelze potom vysvětlit a další aktualizace vrátí tu z nich, která skutečně nesla zátěž.

Pak rozhodněte trvalou politiku s důkazy. Pokud aktualizace odhalila závislost, kterou nikdo nezdokumentoval, opravou je dokumentace a test, ne vypnutí aktualizací. Pokud odhalila službu, která se neumí čistě restartovat, oprava je v jednotce, ne v plánu.

Srovnání se čistě vyřeší, jakmile je podmínka pojmenována. Nezávislá cesta dělá z automatických aktualizací zvládnutelné riziko. Její nepřítomnost dělá z téže politiky plánovaný výpadek s neznámou dobou obnovy a žádné množství automatizace tuto aritmetiku nezmění.

Související články