Är WireGuard redo för produktion? Svaret är inte protokollet
Mognad handlar om UDP-vägen, nyckelägandet och paketunderhållet, inte om handskakningen. Fyra portar avgör om din utrullning verkligen är redo.
Folk frågar om WireGuard är redo för produktion, vilket låter som en fråga om kryptografi och egentligen är en fråga om din miljö. Protokollet har granskats i åratal; utrullningen måste fortfarande svara på om dina nät bär dess transport, vem som registrerar och avvecklar enheter och vem som patchar paketet i båda ändar. Svaren skiljer sig mellan två servrar i ett rack och tusen bärbara datorer. Protokollet är detsamma i båda fallen; driften är det inte.
Frågan bakom frågan
Vad folk oftast vill veta är om de kan binda sig till en design som inte gör dem generade om ett halvår. Det är en utrullningsfråga med fyra delar, och varje del kan misslyckas oberoende av de andra. Bra svar på tre av dem väger inte upp den fjärde.
En gammal varning om en förhandsversion är ett faktum om den versionen, inte en permanent etikett på varje senare paket. På samma sätt kan inget blogginlägg förklara din specifika kombination av kärna, klient, nät och personal redo. Arbetet är att göra kombinationen explicit och kontrollera den.
Behandla mognad som en uppsättning portar som du antingen klarar eller registrerar som öppna. Det gör en diskussion till en checklista med ägare. Det gör också de öppna punkterna synliga för den som godkänner, i stället för begravda i en pilotrapport.
Port ett: vägen måste bära UDP
WireGuard bär sin trafik över UDP och dokumenterar att det inte erbjuder ett TCP-läge eller trafikförvrängning. En design som bygger på att det ska se ut som vanlig webbtrafik, eller på att byta port för att få TCP-beteende, vilar på ett antagande som programvaran inte stöder.
Så den första porten är en kartläggning, inte ett test på en maskin. Lista de åtkomstmiljöer där dina användare faktiskt arbetar, verifiera sedan den godkända UDP-vägen i var och en och bestäm vad som händer när den inte är tillgänglig.
En anslutning som fungerar från kontoret bevisar ingenting om ett hotellnät, en campusbrandvägg eller en mobiloperatör som hanterar UDP annorlunda. Det är dessa miljöer som gör att utrullningar för fjärråtkomst misslyckas efter en lyckad pilot. Piloten var inte fel; den var smal. Att bredda den är porten.
Skriv också ned reservvägen. Om svaret är att det inte finns någon reservväg är det ett beslut som är värt att säga högt i förväg i stället för att upptäcka under en tjänsteresa.
Port två: någon måste äga nycklarna
WireGuard-peers autentiserar med nycklar, ett par per deltagare. Det är enkelt att beskriva och krävande i drift, eftersom ingenting i protokollet registrerar en enhet, spårar vem som har vilken nyckel eller tar bort åtkomst när en bärbar dator tappas bort. Protokollet förutsätter att nycklarna redan är korrekta, och korrekthet är någons arbete.
Namnge personen som registrerar en enhet, registreringen som kopplar en offentlig nyckel till en person och en enhet, och proceduren för borttagning. Om borttagning beror på att komma ihåg var kopior av en konfigurationsfil installerades, är proceduren inte klar.
Välj en enhet under piloten och avveckla den från början till slut. Den övningen ger mer användbar information än ännu ett anslutningstest, eftersom den blottar luckorna i dina register.
Port tre: paketet behöver en underhållare
WireGuard kan komma som en implementation i kärnan, som ett distributionspaket eller som en klient i användarutrymmet, och var och en har sin egen uppdateringsväg. Den operativa frågan är vilken du kör, var den kom ifrån och vem som lägger in en säkerhetsbulletin.
Vi använder WireGuard är inte en inventering. Den anger inte paketet som ska patchas, versionen på gatewayen eller personen som kan rulla tillbaka en dålig uppdatering.
Port fyra: acceptera arbetsbelastningen, inte handskakningen
Acceptanskriterier bör beskriva vad användarna gör. Att nå en intern applikation, att slå upp dess privata namn, att bli avvisad vid en obehörig destination och att följa det definierade beteendet när tunneln är nere är alla observerbara, och en lyckad handskakning är ingen av dem.
Kör dessa kontroller genom ett nätverksbyte, en omstart av enheten och ett underhållsfönster för gatewayen, eftersom det är i dessa övergångar utrullningar går sönder.
Förvara bevisen bredvid kriterierna, inklusive det lokala tillstånd som producerade dem:
wg show
ss -lunp | grep 51820
ip -4 route get 10.63.0.1
Ett grönt test i ett lugnt nät med en bärbar dator är en inledande observation. Det är inte ett påstående om tillförlitlighet, och att behandla det som ett är hur en design som fungerar blir en design man litar på.