Prvé spustenie: registrácia flotily zariadení WireGuard
Jeden obraz, jeden kľúč na dosku a autorizačný krok, ktorý neverí vlastnému tvrdeniu zariadenia. Štyri fázy od spustenia k potvrdenému peeru.
Doska sa spustí zo spoločného obrazu, získa DHCP lease a predtým, než sa ktokoľvek dotkne zariadenia, sa spustí zriaďovací skript. Niekde v tom skripte musí získať identitu WireGuard, ktorá patrí tejto doske a žiadnej inej, nechať tú identitu autorizovať a zapísať profil, ktorý brána prijme. Obraz môže niesť klientsky softvér, skontrolovanú šablónu a verejný kľúč brány. Čo niesť nikdy nesmie, je jeden súkromný kľúč zdieľaný celou flotilou, pretože to z jednej ukradnutej dosky robí incident pre celú flotilu. Poradie nižšie drží identitu lokálnu a autorizáciu explicitnú.
Čo obraz nesie a čo nie
Dodávajte balík, šablónu so zástupnými symbolmi, verejný kľúč brány a klienta na registráciu. Šablóna je tvar, nie tajomstvo: má byť čitateľná pre zriaďovacieho používateľa a nesmie obsahovať žiadny kľúčový materiál.
Súkromný kľúč sa generuje na zariadení pri prvom spustení a nikdy ho neopustí. Putuje len verejná polovica, vnútri žiadosti o registráciu, ktorú autorizuje niečo iné než vlastné tvrdenie zariadenia o tom, kým je. Práve tento rozdiel bráni tomu, aby sa ukradnutá doska stala problémom pre celú flotilu. A je to aj časť, ktorú väčšina skriptov prvého spustenia robí nesprávne.
Krok 1: vygenerovať kľúč lokálne
Spustite generovanie v chránenom adresári po tom, čo je podkladové sieťové spojenie schválené a funguje. Podshell drží zmenu umask lokálnu pre túto operáciu a set -C odmieta prepísať existujúci súbor:
(
umask 077
set -C
wg genkey > /etc/wireguard/device.key &&
wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)
Rýchly štart WireGuard dokumentuje vzťah generovania kľúčov, na ktorý sa tieto dva príkazy spoliehajú. Ak sa generovanie preruší, nechajte zariadenie neregistrované a nechajte pracovný postup zosúladiť súbory. Nemažte existujúcu identitu len preto, aby skript bežal čisto od začiatku.
Zachovajte čakajúci kľúč naprieč opakovanými pokusmi. Nové generovanie identity po každom dočasnom sieťovom zlyhaní je spôsob, akým flotila skončí s osirelými peermi, ktoré nikto nedokáže priradiť zariadeniu.
Krok 2: autorizovať záznam zariadenia
Predpokladajme, že inventár nazýva túto dosku device-042 a prideľuje jej 10.90.0.42/32. Registračná služba musí overiť, že tento žiadateľ má na ten záznam nárok. Sériové číslo napísané do formulára nie je dôkaz, pretože sériové čísla sú vytlačené na vonkajšej strane škatule.
Bootstrapový údaj pre každé zariadenie, schválenie operátorom alebo atestácia podporená hardvérom môžu tvrdenie doložiť. Chráňte integritu žiadosti a pravosť odpovede a nenahrádzajte jedno zdieľané tajomstvo VPN jedným zdieľaným továrenským údajom.
Registrovaný záznam viaže zariadenie, jeho verejný kľúč, pridelenú adresu a povolenú rolu správy. WireGuard sám nedefinuje žiadne registračné API, takže táto služba je niečo, čo vedome staviame a prevádzkujeme.
Krok 3: zapísať dve zodpovedajúce konfigurácie
Zariadenie potrebuje profil, ktorý smeruje prefixy správy do tunela, a brána potrebuje záznam peera, ktorý povoľuje len vlastnú zdrojovú adresu tohto zariadenia. S bránou na 10.90.0.1 a sieťou správy 10.60.0.0/16 vyzerá strana zariadenia takto:
[Interface]
PrivateKey = <device-042 private key>
Address = 10.90.0.42/32
[Peer]
PublicKey = <trusted gateway public key>
Endpoint = vpn.example.com:51820
AllowedIPs = 10.90.0.1/32, 10.60.0.0/16
PersistentKeepalive = 25
Hodnoty v hranatých zátvorkách sú zástupné symboly, nie kľúče. Keepalive je dôležitý, keď doska sedí za NAT a musí zostať dostupná; nie je potrebný všade a jeho pridanie zo zvyku drží rádio bdelé bez dôvodu.
Na bráne je záznam peera zámerne úzky:
[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32
Nekopírujte zoznam cieľov zariadenia do záznamu peera na bráne. Na zariadení tento zoznam hovorí, čo smerovať do tunela; na bráne hovorí, ktoré zdrojové adresy tento peer smie použiť, a to sú rôzne tvrdenia.
Preposielanie, pravidlá firewallu a spätná cesta k sieti správy stále musia povoľovať schválený prístup. Registrovaný peer nie je povolením pre každú aplikáciu za ním.
Krok 4: potvrdiť registráciu ako stav životného cyklu
Aplikujte záznam brány a profil zariadenia prostredníctvom toho, kto vlastní príslušnú konfiguráciu, a potom označte registráciu za dokončenú až vtedy, keď sú zamýšľaná identita a adresa prijaté. Opakované pokusy majú zosúladiť ten istý záznam, namiesto toho aby pridelili druhý peer alebo druhú adresu.
Udržujte cestu obnovy pre prerušené zriaďovanie, vrátane prípadu, keď brána kľúč prijala a zariadenie svoj profil nikdy nezapísalo.
Keď sa doska vymení alebo vyradí, odstráňte jej verejný kľúč a jej autorizáciu spoločne. Nový kľúč je zámerná opakovaná registrácia, nie vedľajší účinok nového obrazu. Poradie práce: generovať lokálne, autorizovať voči inventáru, zapísať obe strany, potvrdiť stav a potom otestovať jednu žiadosť správy cez tunel.