Je WireGuard připraven na produkci? Odpověď není v protokolu
Připravenost se týká cesty UDP, vlastnictví klíčů a údržby balíčku, ne handshake. O čtyřech branách rozhoduje, zda je vaše nasazení skutečně připravené.
Lidé se ptají, zda je WireGuard připraven na produkci, což zní jako otázka o kryptografii a ve skutečnosti je to otázka o vašem prostředí. Protokol se zkoumá roky; nasazení však stále musí odpovědět, zda vaše sítě přenášejí jeho transport, kdo zařazuje a vyřazuje zařízení a kdo záplatuje balíček na obou stranách. Tyto odpovědi se liší mezi dvěma servery v jedné skříni a tisíci notebooky. Protokol je v obou případech stejný; provoz ne.
Otázka za otázkou
Lidé obvykle chtějí vědět, zda se mohou zavázat k návrhu, který je za šest měsíců neuvede do rozpaků. To je otázka nasazení o čtyřech částech a každá část může selhat nezávisle na ostatních. Dobré odpovědi na tři z nich čtvrtou nenahradí.
Staré varování o předběžném snímku je fakt o tomto snímku, ne trvalý štítek na každém pozdějším balíčku. Stejně tak žádný blogový příspěvek nemůže prohlásit vaši konkrétní kombinaci jádra, klienta, sítě a personálu za připravenou. Úkolem je udělat kombinaci explicitní a ověřit ji.
Berte připravenost jako soubor bran, které buď projdete, nebo zaznamenáte jako otevřené. To mění spor v kontrolní seznam s vlastníky. Také zpřístupňuje otevřené položky každému, kdo podepisuje, místo aby zůstaly pohřbené v pilotní zprávě.
Brána první: cesta musí přenášet UDP
WireGuard přenáší svůj provoz přes UDP a dokumentuje, že nenabízí režim TCP ani maskování provozu. Návrh, který spoléhá na to, že bude vypadat jako běžný webový provoz, nebo na změnu portu kvůli chování TCP, stojí na předpokladu, který software nepodporuje.
První branou je tedy průzkum, ne test na jednom stroji. Vypište přístupová prostředí, ve kterých vaši uživatelé skutečně pracují, pak v každém ověřte schválenou cestu UDP a rozhodněte, co se stane, když není dostupná.
Spojení, které funguje z kanceláře, nic nedokazuje o hotelové síti, univerzitním firewallu nebo mobilním operátorovi, který UDP zpracovává jinak. Právě tato prostředí jsou důvodem, proč nasazení vzdáleného přístupu po úspěšném pilotu selhávají. Pilot nebyl špatný; byl úzký. Jeho rozšíření je tou branou.
Zapište i záložní variantu. Pokud je odpověď, že žádná záložní varianta není, je to rozhodnutí, které stojí za to říct předem, místo abyste ho objevili během služební cesty.
Brána druhá: někdo musí vlastnit klíče
Partneři WireGuard se ověřují klíči, jeden pár na účastníka. To se snadno popisuje a provozně je to náročné, protože nic v protokolu nezařazuje zařízení, nesleduje, kdo drží který klíč, ani neodebírá přístup, když se notebook ztratí. Protokol předpokládá, že klíče jsou už správné, a správnost je něčí práce.
Pojmenujte člověka, který zařízení zařazuje, záznam, který spojuje veřejný klíč s osobou a zařízením, a postup odebrání. Pokud odebrání závisí na tom, zda si pamatujete, kam byly nainstalovány kopie konfiguračního souboru, postup není dokončen.
Během pilotu vyberte jedno zařízení a vyřaďte ho od začátku do konce. Toto cvičení přinese užitečnější informace než další test konektivity, protože odhalí mezery ve vašich záznamech.
Brána třetí: balíček potřebuje správce
WireGuard může přijít jako implementace v jádře, jako distribuční balíček nebo jako klientský program v uživatelském prostoru a každý má vlastní cestu aktualizace. Provozní otázka je, který z nich používáte, odkud pochází a kdo aplikuje bezpečnostní doporučení.
Používáme WireGuard není inventura. Neurčuje balíček k záplatování, verzi na bráně ani člověka, který umí vrátit špatnou aktualizaci.
Brána čtvrtá: přijměte zátěž, ne handshake
Akceptační kritéria by měla popisovat, co uživatelé dělají. Dosáhnout na interní aplikaci, přeložit její soukromé jméno, být odmítnut u nepovoleného cíle a dodržet definované chování při výpadku tunelu — to vše je pozorovatelné, a úspěšný handshake není nic z toho.
Prožeňte tato ověření změnou sítě, restartem zařízení a oknem údržby brány, protože právě v těchto přechodech se nasazení lámou.
Uchovávejte důkazy vedle kritérií, včetně místního stavu, který je vytvořil:
wg show
ss -lunp | grep 51820
ip -4 route get 10.63.0.1
Zelený test v klidné síti s jedním notebookem je počáteční pozorování. Není to tvrzení o spolehlivosti a jeho přijímání jako takového je způsob, jak se z fungujícího návrhu stane návrh, kterému se věří.