Esimene käivitus: WireGuard-seadmete parve registreerimine
Üks kujutis, üks võti plaadi kohta ja autoriseerimissamm, mis ei usalda seadme enda väidet. Neli etappi käivitusest kinnitatud peerini.
Plaat käivitub ühisest kujutisest, saab DHCP-rendi ja seadistusskript jookseb enne, kui keegi on seadet puudutanud. Kusagil selles skriptis peab see hankima WireGuard-identiteedi, mis kuulub sellele plaadile ja mitte ühelegi teisele, laskma selle identiteedi autoriseerida ja kirjutama profiili, mille lüüs vastu võtab. Kujutis võib kanda klienditarkvara, ülevaadatud malli ja lüüsi avalikku võtit. Mida see kunagi kanda ei tohi, on üks privaatvõti, mida jagab kogu parv, sest see muudab ühe varastatud plaadi kogu parve intsidendiks. Alljärgnev järjekord hoiab identiteedi kohaliku ja autoriseerimise selgesõnalise.
Mida kujutis kannab ja mida mitte
Saatke pakett, kohatäitjatega mall, lüüsi avalik võti ja registreerimisklient. Mall on vorm, mitte saladus: see peaks olema seadistuskasutajale loetav ega tohi sisaldada võtmematerjali.
Privaatvõti genereeritakse seadmes esimesel käivitusel ja ei lahku sealt kunagi. Reisib ainult avalik pool, registreerimispäringu sees, mille autoriseerib miski muu kui seadme enda väide selle kohta, kes ta on. Just see erinevus hoiab ära, et varastatud plaat muutub kogu parve probleemiks. Ja see on ka osa, mille enamik esimese käivituse skripte valesti teeb.
Samm 1: genereerige võti kohapeal
Käivitage genereerimine kaitstud kataloogis pärast seda, kui alusvõrguühendus on heaks kiidetud ja töötab. Alamkest hoiab umaski muudatuse selle toimingu jaoks kohalikuna ja set -C keeldub olemasoleva faili ülekirjutamisest:
(
umask 077
set -C
wg genkey > /etc/wireguard/device.key &&
wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)
WireGuardi kiirstart dokumenteerib võtmegeneratsiooni seose, millele need kaks käsku toetuvad. Kui genereerimine katkeb, jätke seade registreerimata ja laske töövoog failid kooskõlla viia. Ärge kustutage olemasolevat identiteeti ainult selleks, et skript algusest puhtalt jookseks.
Hoidke ootel võti korduskatsete vahel alles. Identiteedi uuesti genereerimine pärast iga ajutist võrguvea korral on viis, kuidas parvele jäävad orvuks jäänud peerid, keda keegi ei suuda seadmega siduda.
Samm 2: autoriseerige seadme kirje
Oletame, et inventuur nimetab selle plaadi device-042 ja määrab sellele 10.90.0.42/32. Registreerimisteenus peab kontrollima, et sellel taotlejal on õigus sellele kirjele. Vormi trükitud seerianumber ei ole tõestus, sest seerianumbrid on trükitud kasti välisküljele.
Seadmepõhine alglaadimistunnus, operaatori kinnitus või riistvaraga toetatud attestatsioon võivad väite kinnitada. Kaitske päringu terviklikkust ja vastuse autentsust ning ärge asendage üht jagatud VPN-saladust ühe jagatud tehasekinnitusega.
Registreeritud kirje seob seadme, selle avaliku võtme, määratud aadressi ja lubatud haldusrolli. WireGuard ise ei määratle ühtegi registreerimis-API-t, seega on see teenus midagi, mida te teadlikult ehitate ja käitate.
Samm 3: kirjutage kaks sobivat konfiguratsiooni
Seade vajab profiili, mis suunab halduse prefiksid tunnelisse, ja lüüs vajab peer-kirjet, mis lubab ainult selle seadme enda lähteaadressi. Kui lüüs on 10.90.0.1 ja haldusvõrk 10.60.0.0/16, näeb seadme pool välja nii:
[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
Suludesse pandud väärtused on kohatäitjad, mitte võtmed. Keepalive on oluline, kui plaat asub NAT-i taga ja peab jääma kättesaadavaks; seda ei ole kõikjal vaja ja harjumusest lisamine hoiab raadiot ilma põhjuseta ärkvel.
Lüüsil on peer-kirje meelega kitsas:
[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32
Ärge kopeerige seadme sihtloendit lüüsi peer-kirjele. Seadmes ütleb see loend, mida tunnelisse suunata; lüüsil ütleb see, milliseid lähteaadresse see peer tohib kasutada, ja need on erinevad väited.
Edastamine, tulemüürireeglid ja tagasitee haldusvõrku peavad endiselt lubama heakskiidetud juurdepääsu. Registreeritud peer ei ole luba iga rakenduse jaoks selle taga.
Samm 4: kinnitage registreerimine elutsükli olekuna
Rakendage lüüsi kirje ja seadme profiil selle kaudu, kellele vastav konfiguratsioon kuulub, ja märkige registreerimine lõpetatuks alles siis, kui kavandatud identiteet ja aadress on vastu võetud. Korduskatsed peaksid kooskõlastama sama kirjet, mitte eraldama teist peeri või teist aadressi.
Hoidke katkenud seadistamise jaoks taastamistee, sealhulgas juhul, kui lüüs võttis võtme vastu ja seade ei kirjutanud kunagi oma profiili.
Kui plaat asendatakse või kasutusest kõrvaldatakse, eemaldage selle avalik võti ja autoriseering koos. Uus võti on teadlik uuesti registreerimise sündmus, mitte kujutise uuendamise kõrvalmõju. Töö järjekord: genereerige kohapeal, autoriseerige inventuuri vastu, kirjutage mõlemad pooled, kinnitage olek ja seejärel testige ühte halduspäringut läbi tunneli.