Je li WireGuard spreman za produkciju? Odgovor nije u protokolu
Spremnost se odnosi na UDP put, vlasništvo nad ključevima i održavanje paketa, a ne na rukovanje. Četiri kapije odlučuju je li vaša implementacija zaista spremna.
Ljudi pitaju je li WireGuard spreman za produkciju, što zvuči kao pitanje o kriptografiji, a zapravo je pitanje o vašem okruženju. Protokol se pregledava godinama; implementacija još mora odgovoriti prenose li vaše mreže njegov transport, ko upisuje i umirovljuje uređaje i ko krpi paket na oba kraja. Ti se odgovori razlikuju između dva servera u jednom racku i hiljadu laptopa. Protokol je u oba slučaja isti; operacije nisu.
Pitanje iza pitanja
Ono što ljudi obično žele znati jest mogu li se obavezati na dizajn koji ih neće osramotiti za šest mjeseci. To je pitanje implementacije s četiri dijela, a svaki dio može pasti neovisno od ostalih. Dobri odgovori na tri od njih ne nadoknađuju četvrti.
Staro upozorenje o pretpreglednoj verziji činjenica je o toj verziji, a ne trajna oznaka na svakom kasnijem paketu. Isto tako, nijedan blog post ne može proglasiti vašu konkretnu kombinaciju jezgre, klijenta, mreže i osoblja spremnom. Posao je učiniti kombinaciju eksplicitnom i provjeriti je.
Tretirajte spremnost kao skup kapija koje ili prolazite ili zapisujete kao otvorene. To raspravu pretvara u kontrolnu listu s vlasnicima. Također čini otvorene stavke vidljivima svakome ko potpisuje, umjesto da budu zakopane u pilot izvještaju.
Prva kapija: put mora nositi UDP
WireGuard prenosi svoj promet preko UDP-a i dokumentira da ne nudi TCP način rada ni zamućivanje prometa. Dizajn koji se oslanja na to da izgleda kao običan web promet ili na promjenu porta radi TCP ponašanja, gradi se na pretpostavci koju softver ne podržava.
Zato je prva kapija istraživanje, a ne test na jednom stroju. Popišite pristupna okruženja u kojima vaši korisnici stvarno rade, zatim provjerite odobreni UDP put u svakome od njih i odlučite što se događa kad nije dostupan.
Veza koja radi iz ureda ne dokazuje ništa o hotelskoj mreži, sveučilišnom vatrozidu ili mobilnom operateru koji drugačije rukuje UDP-om. Ta su okruženja razlog zašto implementacije udaljenog pristupa padaju nakon uspješnog pilota. Pilot nije bio pogrešan; bio je uzak. Njegovo proširenje jest kapija.
Zapišite i rezervni put. Ako je odgovor da rezervnog puta nema, to je odluka koju vrijedi izreći unaprijed, umjesto da je otkrijete tijekom poslovnog puta.
Druga kapija: neko mora posjedovati ključeve
WireGuard peerovi se autentificiraju ključevima, jedan par po sudioniku. To je jednostavno opisati i operativno zahtjevno, jer ništa u protokolu ne upisuje uređaj, ne prati ko drži koji ključ i ne uklanja pristup kad se laptop izgubi. Protokol pretpostavlja da su ključevi već ispravni, a ispravnost je nečiji posao.
Imenujte osobu koja upisuje uređaj, zapis koji javni ključ povezuje s osobom i uređajem, i postupak uklanjanja. Ako uklanjanje ovisi o sjećanju gdje su instalirane kopije konfiguracijske datoteke, postupak nije dovršen.
Odaberite jedan uređaj tijekom pilota i umirovite ga od početka do kraja. Ta vježba daje korisnije informacije od još jednog testa povezivosti, jer otkriva praznine u vašim zapisima.
Treća kapija: paket treba održavatelja
WireGuard može doći kao implementacija u jezgri, kao distribucijski paket ili kao korisnički klijent, a svaki ima vlastiti put ažuriranja. Operativno pitanje je koji pokrećete, odakle dolazi i ko primjenjuje sigurnosni bilten.
Koristimo WireGuard nije inventar. On ne označava paket koji treba zakrpati, verziju na pristupniku ni osobu koja može vratiti loše ažuriranje.
Četvrta kapija: prihvatite radni teret, a ne rukovanje
Kriteriji prihvaćanja trebaju opisivati što korisnici rade. Dosezanje interne aplikacije, razrješavanje njezina privatnog imena, odbijanje neovlaštenog odredišta i slijeđenje definiranog ponašanja kad je tunel pao — sve je to vidljivo, a uspješno rukovanje nije ništa od toga.
Provedite te provjere kroz promjenu mreže, ponovno pokretanje uređaja i prozor za održavanje pristupnika, jer se implementacije lome upravo na tim prijelazima.
Držite dokaze uz kriterije, uključujući lokalno stanje koje ih je proizvelo:
wg show
ss -lunp | grep 51820
ip -4 route get 10.63.0.1
Zeleni test na mirnoj mreži s jednim laptopom početno je zapažanje. To nije tvrdnja o pouzdanosti, i tretiranje kao takve je način na koji dizajn koji radi postaje dizajn kojem se vjeruje.