Prvi zagon: registracija flote naprav WireGuard
Ena slika, en ključ na ploščo in korak avtorizacije, ki ne zaupa trditvi same naprave. Štiri faze od zagona do potrjenega peera.
Plošča se zažene iz skupne slike, dobi zakup DHCP in skripta za pripravo se izvede, preden se kdorkoli dotakne naprave. Nekje v tej skripti mora pridobiti identiteto WireGuard, ki pripada tej plošči in nobeni drugi, dati to identiteto avtorizirati in zapisati profil, ki ga bo prehod sprejel. Slika lahko nosi programsko opremo odjemalca, pregledano predlogo in javni ključ prehoda. Česar ne sme nikoli nositi, je en zasebni ključ, ki si ga deli cela flota, ker to eno ukradeno ploščo spremeni v incident za celo floto. Spodnji vrstni red ohranja identiteto lokalno in avtorizacijo izrecno.
Kaj slika nosi in česa ne
Pošljite paket, predlogo z nadomestnimi znaki, javni ključ prehoda in odjemalca za registracijo. Predloga je oblika, ne skrivnost: biti mora berljiva za uporabnika priprave in ne sme vsebovati nobenega ključnega gradiva.
Zasebni ključ se ustvari na napravi ob prvem zagonu in je nikoli ne zapusti. Potuje le javna polovica, znotraj zahteve za registracijo, ki jo avtorizira nekaj drugega kot lastna trditev naprave o tem, kdo je. Prav ta razlika preprečuje, da bi ukradena plošča postala problem za celo floto. In to je tudi del, ki ga večina skript za prvi zagon naredi narobe.
Korak 1: ustvariti ključ lokalno
Ustvarjanje zaženite v zaščiteni mapi, potem ko je osnovna omrežna povezava odobrena in deluje. Podlupina ohrani spremembo umask lokalno za to operacijo, set -C pa zavrne prepis obstoječe datoteke:
(
umask 077
set -C
wg genkey > /etc/wireguard/device.key &&
wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)
Hitri začetek WireGuard dokumentira razmerje ustvarjanja ključev, na katerem temeljita ta dva ukaza. Če se ustvarjanje prekine, pustite napravo neregistrirano in pustite delovnemu toku, da uskladi datoteke. Ne brišite obstoječe identitete samo zato, da bi skripta čisto tekla od začetka.
Ohranite čakajoči ključ med ponovnimi poskusi. Ponovno ustvarjanje identitete po vsaki začasni omrežni napaki je način, kako flota ostane z osirotelimi peeri, ki jih nihče ne more povezati z napravo.
Korak 2: avtorizirati zapis naprave
Recimo, da inventar to ploščo imenuje device-042 in ji dodeli 10.90.0.42/32. Storitev registracije mora preveriti, da je ta prosilec upravičen do tega zapisa. Serijska številka, vtipkana v obrazec, ni dokaz, ker so serijske številke natisnjene na zunanji strani škatle.
Začetna poverilnica za vsako napravo, odobritev operaterja ali atestacija s strojno podporo lahko utemeljijo trditev. Zaščitite celovitost zahteve in pristnost odgovora ter ne nadomestite ene skupne skrivnosti VPN z eno skupno tovarniško poverilnico.
Registriran zapis poveže napravo, njen javni ključ, dodeljeni naslov in dovoljeno vlogo upravljanja. WireGuard sam ne opredeljuje nobenega API-ja za registracijo, zato je ta storitev nekaj, kar zavestno zgradite in upravljate.
Korak 3: zapisati dve usklajeni konfiguraciji
Naprava potrebuje profil, ki usmerja prefikse upravljanja v tunel, prehod pa potrebuje vnos peera, ki dovoljuje le lastni izvorni naslov te naprave. Pri prehodu na 10.90.0.1 in omrežju upravljanja 10.60.0.0/16 je stran naprave videti takole:
[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
Vrednosti v oglatih oklepajih so nadomestni znaki, ne ključi. Keepalive je pomemben, ko plošča stoji za NAT in mora ostati dosegljiva; ni potreben povsod, in dodajanje iz navade drži radio buden brez razloga.
Na prehodu je vnos peera namerno ozek:
[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32
Ne kopirajte seznama ciljev naprave v vnos peera na prehodu. Na napravi ta seznam pove, kaj usmeriti v tunel; na prehodu pove, katere izvorne naslove ta peer sme uporabljati, in to so različne trditve.
Posredovanje, pravila požarnega zidu in pot nazaj v omrežje upravljanja morajo še vedno dovoljevati odobren dostop. Registriran peer ni dovoljenje za vsako aplikacijo za njim.
Korak 4: potrditi registracijo kot stanje življenjskega cikla
Uporabite zapis prehoda in profil naprave prek tistega, ki ima v lasti posamezno konfiguracijo, nato označite registracijo kot dokončano šele, ko sta predvidena identiteta in naslov sprejeta. Ponovni poskusi naj uskladijo isti zapis, namesto da dodelijo drugi peer ali drugi naslov.
Ohranite pot obnovitve za prekinjeno pripravo, vključno s primerom, ko je prehod ključ sprejel, naprava pa svojega profila ni nikoli zapisala.
Ko ploščo zamenjajo ali umaknejo iz uporabe, odstranite njen javni ključ in njeno avtorizacijo skupaj. Nov ključ je zavestna ponovna registracija, ne stranski učinek ponovnega slikanja. Vrstni red dela: ustvariti lokalno, avtorizirati glede na inventar, zapisati obe strani, potrditi stanje in nato preizkusiti eno zahtevo upravljanja skozi tunel.