Er WireGuard klart for produksjon? Svaret er ikke protokollen
Klarhet handler om UDP-veien, nøkkeleierskap og pakkevedlikehold, ikke om håndtrykket. Fire porter avgjør om utrullingen din faktisk er klar.
Folk spør om WireGuard er klart for produksjon, noe som høres ut som et spørsmål om kryptografi og egentlig er et spørsmål om miljøet ditt. Protokollen har vært gjennomgått i årevis; utrullingen må fortsatt svare på om nettverkene dine bærer transporten, hvem som registrerer og avvikler enheter, og hvem som lapper pakken i begge ender. Disse svarene er ulike for to servere i ett rack og tusen bærbare maskiner. Protokollen er den samme i begge tilfeller; driften er det ikke.
Spørsmålet bak spørsmålet
Det folk vanligvis vil vite, er om de kan forplikte seg til et design som ikke gjør dem flaue om seks måneder. Det er et utrullingsspørsmål med fire deler, og hver del kan svikte uavhengig av de andre. Gode svar på tre av dem veier ikke opp for den fjerde.
En gammel advarsel om en førutgivelse er et faktum om den førutgivelsen, ikke en permanent etikett på hver senere pakke. På samme måte kan ingen bloggpost erklære din spesifikke kombinasjon av kjerne, klient, nett og personale for klar. Arbeidet er å gjøre kombinasjonen eksplisitt og kontrollere den.
Behandle klarhet som et sett porter du enten består eller registrerer som åpne. Det gjør en diskusjon om til en sjekkliste med eiere. Det gjør også de åpne punktene synlige for den som godkjenner, i stedet for begravd i en pilotrapport.
Port én: veien må bære UDP
WireGuard bærer trafikken sin over UDP og dokumenterer at det ikke tilbyr en TCP-modus eller trafikkforkledning. Et design som avhenger av at det ser ut som vanlig webtrafikk, eller av å bytte port for å få TCP-atferd, bygger på en forutsetning programvaren ikke støtter.
Så den første porten er en kartlegging, ikke en test på én maskin. List opp tilgangsmiljøene brukerne dine faktisk arbeider i, og verifiser deretter den godkjente UDP-veien i hvert av dem, og avgjør hva som skjer når den ikke er tilgjengelig.
En forbindelse som virker fra kontoret beviser ingenting om et hotellnett, en campusbrannmur eller en mobiloperatør som håndterer UDP annerledes. Det er disse miljøene som gjør at utrullinger av fjern tilgang svikter etter en vellykket pilot. Piloten var ikke feil; den var smal. Å utvide den er porten.
Skriv også ned reserveveien. Hvis svaret er at det ikke finnes noen reservevei, er det en beslutning det er verdt å si høyt på forhånd i stedet for å oppdage på en tjenestereise.
Port to: noen må eie nøklene
WireGuard-peers autentiserer med nøkler, ett par per deltaker. Det er enkelt å beskrive og krevende i drift, fordi ingenting i protokollen registrerer en enhet, sporer hvem som har hvilken nøkkel eller fjerner tilgang når en bærbar maskin blir borte. Protokollen forutsetter at nøklene allerede er riktige, og riktighet er noens arbeid.
Navngi personen som registrerer en enhet, registreringen som knytter en offentlig nøkkel til en person og en enhet, og prosedyren for fjerning. Hvis fjerning avhenger av å huske hvor kopier av en konfigurasjonsfil ble installert, er prosedyren ikke ferdig.
Velg én enhet i løpet av piloten og avvikle den fra start til slutt. Den øvelsen gir mer nyttig informasjon enn nok en tilkoblingstest, fordi den avdekker hullene i registreringene dine.
Port tre: pakken trenger en vedlikeholder
WireGuard kan komme som en implementering i kjernen, som en distribusjonspakke eller som en klient i brukerrommet, og hver har sin egen oppdateringsvei. Det operative spørsmålet er hvilken du kjører, hvor den kom fra og hvem som legger inn et sikkerhetsvarsel.
Vi bruker WireGuard er ikke en oversikt. Den angir ikke pakken som skal lappes, versjonen på gatewayen eller personen som kan rulle tilbake en dårlig oppdatering.
Port fire: godta arbeidsbelastningen, ikke håndtrykket
Akseptkriterier bør beskrive hva brukerne gjør. Å nå en intern applikasjon, å slå opp det private navnet, å bli avvist på en uautorisert destinasjon og å følge den definerte atferden når tunnelen er nede er alle observerbare, og et vellykket håndtrykk er ingen av dem.
Kjør disse kontrollene gjennom et nettverksbytte, en omstart av enheten og et vedlikeholdsvindu for gatewayen, fordi det er i disse overgangene utrullinger knekker.
Oppbevar bevisene ved siden av kriteriene, inkludert den lokale tilstanden som produserte dem:
wg show
ss -lunp | grep 51820
ip -4 route get 10.63.0.1
En grønn test på et rolig nett med én bærbar maskin er en innledende observasjon. Det er ikke en påstand om pålitelighet, og å behandle den som en er måten et design som virker blir et design som er til å stole på.