Unang boot: pagpapatala para sa isang pulutong ng mga aparatong WireGuard
Isang imahe, isang susi bawat board, at isang hakbang ng awtorisasyon na hindi nagtitiwala sa sariling pag-aangkin ng aparato. Apat na yugto mula sa boot hanggang sa kumpirmadong peer.
Nagbo-boot ang board mula sa karaniwang imahe, nakakakuha ng DHCP lease, at may provisioning script na tumatakbo bago pa man may makahawak sa aparato. Sa isang bahagi ng script na iyon, kailangan nitong makakuha ng pagkakakilanlang WireGuard na pag-aari ng board na ito at wala nang iba, mapa-awtorisa ang pagkakakilanlang iyon, at makapagsulat ng profile na tatanggapin ng gateway. Maaaring magdala ang imahe ng software ng kliyente, isang sinuring template at ang pampublikong susi ng gateway. Ang hindi dapat dalhin nito kahit kailan ay isang pribadong susi na pinagsasaluhan ng buong pulutong, dahil ginagawa nitong insidente para sa buong pulutong ang isang nakaw na board. Pinapanatili ng pagkakasunod-sunod sa ibaba na lokal ang pagkakakilanlan at hayag ang awtorisasyon.
Ano ang dinadala ng imahe, at ano ang hindi
Ipadala ang pakete, ang template na may mga placeholder, ang pampublikong susi ng gateway at ang kliyente ng pagpapatala. Ang template ay isang anyo, hindi isang lihim: dapat itong mabasa ng gumagamit ng provisioning at walang anumang materyal ng susi.
Ang pribadong susi ay nalilikha sa aparato sa unang boot at hindi ito kailanman iniiwan. Ang pampublikong kalahati lamang ang naglalakbay, sa loob ng isang kahilingan sa pagpapatala na awtorisado ng ibang bagay maliban sa sariling pag-aangkin ng aparato tungkol sa kung sino ito. Ang pagkakaibang iyon ang pumipigil sa isang nakaw na board na maging problema ng buong pulutong. At ito rin ang bahaging mali ang ginagawa ng karamihan sa mga script sa unang boot.
Hakbang 1: likhain ang susi nang lokal
Patakbuhin ang paglikha sa isang protektadong direktoryo pagkatapos maaprubahan at gumana ang pinagbabatayang koneksyon sa network. Pinapanatili ng subshell na lokal sa operasyong ito ang pagbabago ng umask, at tumatanggi ang set -C na patungan ang isang umiiral na file:
(
umask 077
set -C
wg genkey > /etc/wireguard/device.key &&
wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)
Mabilisang pagsisimula ng WireGuard ay nagdodokumento ng kaugnayan ng paglikha ng susi na pinagbabasehan ng dalawang utos na ito. Kung maputol ang paglikha, iwanang hindi nakatala ang aparato at hayaang isaayos ng workflow ang mga file. Huwag burahin ang umiiral na pagkakakilanlan para lamang tumakbo nang malinis ang script mula sa simula.
Panatilihin ang nakabinbing susi sa mga muling pagtatangka. Ang muling paglikha ng pagkakakilanlan pagkatapos ng bawat pansamantalang pagkabigo ng network ang paraan para matapos ang isang pulutong na may mga ulilang peer na walang makakapagtugma sa isang aparato.
Hakbang 2: awtorisahin ang rekord ng aparato
Ipagpalagay na tinatawag ng imbentaryo ang board na ito na device-042 at binibigyan ito ng 10.90.0.42/32. Kailangang i-verify ng serbisyo ng pagpapatala na ang humihiling na ito ay may karapatan sa rekord na iyon. Ang serial number na tinipa sa isang form ay hindi patunay, dahil ang mga serial number ay nakalimbag sa labas ng kahon.
Ang bootstrap credential bawat aparato, pag-apruba ng operator, o attestation na may suporta ng hardware ay maaaring magtatag ng pag-aangkin. Protektahan ang integridad ng kahilingan at ang pagiging tunay ng tugon, at huwag palitan ang isang pinagsasaluhang lihim ng VPN ng isang pinagsasaluhang credential ng pabrika.
Binibigkis ng nakatalang rekord ang aparato, ang pampublikong susi nito, ang itinalagang address at ang pinapayagang tungkulin sa pamamahala. Ang WireGuard mismo ay walang tinutukoy na API ng pagpapatala, kaya ang serbisyong iyon ay isang bagay na sinasadya mong itayo at patakbuhin.
Hakbang 3: magsulat ng dalawang tugmang configuration
Kailangan ng aparato ng profile na nagruruta ng mga prefix ng pamamahala papasok sa tunnel, at kailangan ng gateway ng entry ng peer na pinapayagan lamang ang sariling source address ng aparatong ito. Sa gateway na nasa 10.90.0.1 at network ng pamamahala na 10.60.0.0/16, ganito ang hitsura ng panig ng aparato:
[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
Ang mga halaga sa loob ng mga square bracket ay mga placeholder, hindi mga susi. Mahalaga ang keepalive kapag ang board ay nasa likod ng NAT at kailangang manatiling maabot; hindi ito kailangan sa lahat ng dako, at ang pagdaragdag nito dahil sa ugali ay nagpapanatiling gising ng radyo nang walang dahilan.
Sa gateway, ang entry ng peer ay sadyang makitid:
[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32
Huwag kopyahin ang listahan ng destinasyon ng aparato sa peer ng gateway. Sa aparato, sinasabi ng listahang iyon kung ano ang iruruta papasok sa tunnel; sa gateway, sinasabi nito kung aling mga source address ang maaaring gamitin ng peer na ito, at magkaibang pahayag ang mga iyon.
Ang pagpapasa, mga tuntunin ng firewall at ang daan pabalik sa network ng pamamahala ay kailangan pa ring payagan ang aprubadong access. Ang nakatalang peer ay hindi permiso para sa bawat aplikasyon sa likod nito.
Hakbang 4: kumpirmahin ang pagpapatala bilang estado ng lifecycle
Ilapat ang rekord ng gateway at ang profile ng aparato sa pamamagitan ng nagmamay-ari ng bawat configuration, pagkatapos markahan ang pagpapatala bilang kumpleto kapag tinanggap lamang ang inilaan na pagkakakilanlan at address. Ang mga muling pagtatangka ay dapat itugma ang parehong rekord sa halip na maglaan ng pangalawang peer o pangalawang address.
Panatilihin ang daan ng pagbawi para sa naputol na provisioning, kabilang ang kaso kung saan tinanggap ng gateway ang susi at hindi kailanman isinulat ng aparato ang profile nito.
Kapag pinalitan o itiniwalag ang isang board, alisin ang pampublikong susi at ang awtorisasyon nito nang sabay. Ang bagong susi ay isang sadyang kaganapan ng muling pagpapatala, hindi isang epekto ng muling paggawa ng imahe. Ayos ng trabaho: likhain nang lokal, awtorisahin laban sa imbentaryo, isulat ang dalawang panig, kumpirmahin ang estado, pagkatapos subukan ang isang kahilingan sa pamamahala sa tunnel.