L-ewwel tlaq: reġistrazzjoni għal flotta ta' apparati WireGuard
Immaġni waħda, ċavetta waħda għal kull bord u pass ta' awtorizzazzjoni li ma jafdax it-talba tal-apparat innifsu. Erba' stadji mit-tlaq sa peer stabbilit.
Il-bord jitlaq mill-immaġni komuni, jieħu lease DHCP, u script ta' proviżjonament jinħaddem qabel ma ħadd ikun mess l-apparat. X'imkien f'dak l-iskript irid jakkwista identità WireGuard li tappartjeni lil dan il-bord u lil ħadd ieħor, iġġib dik l-identità awtorizzata, u jikteb profil li l-gateway se jaċċetta. L-immaġni tista' ġġorr is-software tal-klijent, mudell rivedut u ċ-ċavetta pubblika tal-gateway. Dak li qatt m'għandha ġġorr huwa ċavetta privata waħda maqsuma mill-flotta kollha, għax dan ibiddel bord misruq wieħed f'inċident tal-flotta kollha. L-ordni hawn taħt iżżomm l-identità lokali u l-awtorizzazzjoni espliċita.
X'ġġorr l-immaġni, u x'ma ġġorrx
Ibgħat il-pakkett, il-mudell bil-placeholders, iċ-ċavetta pubblika tal-gateway u l-klijent tar-reġistrazzjoni. Il-mudell huwa forma, mhux sigriet: għandu jinqara mill-utent tal-proviżjonament u ma jkunx fih materjal taċ-ċavetta.
Iċ-ċavetta privata tiġi ġġenerata fuq l-apparat fl-ewwel tlaq u qatt ma tħallih. Jivvjaġġa biss in-nofs pubbliku, ġewwa talba ta' reġistrazzjoni li tiġi awtorizzata minn xi ħaġa oħra għajr it-talba tal-apparat innifsu dwar min hu. Dik id-differenza hija li twaqqaf bord misruq milli jsir problema tal-flotta kollha. U hija wkoll il-parti li l-biċċa l-kbira tal-iskripts tal-ewwel tlaq jagħmlu ħażin.
Pass 1: iġġenera ċ-ċavetta lokalment
Ħaddem il-ġenerazzjoni f'direttorju protett wara li l-konnessjoni tan-netwerk sottostanti tkun approvata u taħdem. Is-subshell iżżomm il-bidla tal-umask lokali għal din l-operazzjoni, u set -C jirrifjuta li jikteb fuq fajl eżistenti:
(
umask 077
set -C
wg genkey > /etc/wireguard/device.key &&
wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)
Bidu mgħaġġel ta' WireGuard jiddokumenta r-relazzjoni tal-ġenerazzjoni taċ-ċwievet li fuqha jiddependu dawn iż-żewġ kmandi. Jekk il-ġenerazzjoni tiġi interrotta, ħalli l-apparat mhux reġistrat u ħalli l-fluss tax-xogħol iġib il-fajls flimkien. Tħassarx identità eżistenti biss biex l-iskript jaħdem nadif mill-bidu.
Żomm iċ-ċavetta pendenti fost tentattivi mill-ġdid. Li terġa' tiġġenera identità wara kull falliment temporanju tan-netwerk huwa kif flotta tispiċċa b'peers orfni li ħadd ma jista' jqabbel ma' apparat.
Pass 2: tawtorizza rekord tal-apparat
Ejja ngħidu li l-inventarju jsejjaħ dan il-bord device-042 u jagħtih 10.90.0.42/32. Is-servizz tar-reġistrazzjoni għandu jivverifika li dan min qed jitlob għandu dritt għal dak ir-rekord. Numru tas-serje miktub f'formola mhuwiex prova, għax in-numri tas-serje huma stampati fuq barra tal-kaxxa.
Kredenzjali ta' bootstrap għal kull apparat, approvazzjoni ta' operatur jew attestazzjoni appoġġata mill-hardware jistgħu jistabbilixxu t-talba. Ipproteġi l-integrità tat-talba u l-awtentiċità tar-risposta, u tissostitwix sigriet VPN maqsum wieħed b'kredenzjali tal-fabbrika maqsuma waħda.
Ir-rekord reġistrat jorbot l-apparat, iċ-ċavetta pubblika tiegħu, l-indirizz assenjat u r-rwol tal-ġestjoni permess tiegħu. WireGuard innifsu ma jiddefinixxi l-ebda API tar-reġistrazzjoni, għalhekk dak is-servizz huwa xi ħaġa li tibni u tħaddem deliberatament.
Pass 3: ikteb żewġ konfigurazzjonijiet li jaqblu
L-apparat jeħtieġ profil li jirrotta l-prefissi tal-ġestjoni fit-tunnel, u l-gateway jeħtieġ entrata peer li tippermetti biss l-indirizz tas-sors tal-apparat stess. B'gateway fuq 10.90.0.1 u netwerk tal-ġestjoni ta' 10.60.0.0/16, in-naħa tal-apparat tidher hekk:
[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
Il-valuri fil-parentesi kwadri huma placeholders, mhux ċwievet. Il-keepalive jgħodd meta l-bord ikun wara NAT u jrid jibqa' jintlaħaq; mhuwiex meħtieġ kullimkien, u li żżidu bid-drawwa jħalli r-radju mqajjem mingħajr raġuni.
Fuq il-gateway, l-entrata peer hija dejqa b'diżinj:
[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32
Tikkupjax il-lista tad-destinazzjonijiet tal-apparat fuq il-peer tal-gateway. Fuq l-apparat dik il-lista tgħid x'għandu jiġi rrotta fit-tunnel; fuq il-gateway tgħid liema indirizzi tas-sors dan il-peer jista' juża, u dawk huma dikjarazzjonijiet differenti.
Il-forwarding, ir-regoli tal-firewall u t-triq lura lejn in-netwerk tal-ġestjoni xorta jridu jippermettu l-aċċess approvat. Peer reġistrat mhuwiex permess għal kull applikazzjoni warajh.
Pass 4: stabbilixxi r-reġistrazzjoni bħala stat taċ-ċiklu tal-ħajja
Applika r-rekord tal-gateway u l-profil tal-apparat permezz ta' min jippossjedi kull konfigurazzjoni, imbagħad immarka r-reġistrazzjoni kompluta biss meta l-identità u l-indirizz maħsuba jiġu aċċettati. Tentattivi mill-ġdid għandhom iġibu l-istess rekord flimkien minflok ma jallokaw it-tieni peer jew it-tieni indirizz.
Żomm triq tal-irkupru għall-proviżjonament interrott, inkluż il-każ fejn il-gateway aċċetta ċ-ċavetta u l-apparat qatt ma kiteb il-profil tiegħu.
Meta bord jiġi sostitwit jew irtirat, neħħi ċ-ċavetta pubblika tiegħu u l-awtorizzazzjoni tiegħu flimkien. Ċavetta ġdida hija avveniment ta' reġistrazzjoni mill-ġdid deliberat, mhux effett sekondarju ta' reimage. Ordni tax-xogħol: iġġenera lokalment, tawtorizza kontra l-inventarju, ikteb iż-żewġ naħat, stabbilixxi l-istat, imbagħad ittestja talba tal-ġestjoni waħda mit-tunnel.