Je li WireGuard spreman za produkciju? Odgovor nije u protokolu
Spremnost se tiče UDP puta, vlasništva nad ključevima i održavanja paketa, a ne rukovanja. Četiri vrata odlučuju je li vaša implementacija doista 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 promet, tko upisuje i umirovljuje uređaje i tko krpa paket na oba kraja. Ti se odgovori razlikuju između dva poslužitelja u jednom ormaru i tisuću prijenosnika. Protokol je u oba slučaja isti; poslovi nisu.
Pitanje iza pitanja
Ono što ljudi obično žele znati jest mogu li se obvezati na dizajn koji ih neće osramotiti za šest mjeseci. To je pitanje implementacije s četiri dijela, a svaki dio može pasti neovisno o ostalima. Dobri odgovori na tri od njih ne nadoknađuju četvrti.
Staro upozorenje o predizdanju činjenica je o tom izdanju, 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 vrata koja ili prolazite ili bilježite kao otvorena. To raspravu pretvara u kontrolni popis s vlasnicima. Također čini otvorene stavke vidljivima svakome tko potpisuje, umjesto da ostanu zakopane u pilot izvješću.
Prva vrata: 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 priključka radi TCP ponašanja, gradi se na pretpostavci koju softver ne podržava.
Zato su prva vrata istraživanje, a ne test na jednom stroju. Popišite pristupna okruženja u kojima vaši korisnici doista 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 drukčije obrađuje UDP. 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 su vrata.
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 vrata: netko mora posjedovati ključeve
WireGuard partneri autentificiraju se ključevima, jedan par po sudioniku. To je jednostavno opisati i operativno zahtjevno, jer ništa u protokolu ne upisuje uređaj, ne prati tko drži koji ključ i ne uklanja pristup kad se prijenosnik 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 vrata: paket treba održavatelja
WireGuard može doći kao implementacija u jezgri, kao distribucijski paket ili kao klijent u korisničkom prostoru, a svaki ima vlastiti put ažuriranja. Operativno pitanje je koji pokrećete, odakle dolazi i tko primjenjuje sigurnosnu obavijest.
Koristimo WireGuard nije popis imovine. Ne označava paket koji treba zakrpati, inačicu na pristupniku ni osobu koja može vratiti loše ažuriranje.
Četvrta vrata: prihvatite radni teret, a ne rukovanje
Kriteriji prihvaćanja trebaju opisivati što korisnici rade. Dosezanje interne aplikacije, razrješavanje njezina privatnog imena, odbijanje na neovlaštenom odredištu 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 održavanja 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 prijenosnikom 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.