It bord start fan 'e mienskiplike image, krijt in DHCP-lien, en in provisioning-skript rint foardat immen it apparaat oanrekke hat. Earne yn dat skript moat it in WireGuard-identiteit krije dy't by dit bord heart en by gjin oar, dy identiteit autorisearje litte, en in profyl skriuwe dat de gateway akseptearret. De image kin de kliïntsoftware, in neisjoen sjabloan en de iepenbiere kaai fan 'e gateway drage. Wat it nea drage mei is ien priveekaai dy't de hiele float dielt, want dat makket fan ien stellen bord in ynsidint foar de hiele float. De folchoarder hjirûnder hâldt de identiteit lokaal en de autorisaasje eksplisyt.

Wat de image draacht, en wat net

Stjoer it pakket, it sjabloan mei plakhâlders, de iepenbiere kaai fan 'e gateway en de ynskriuwkliïnt mei. It sjabloan is in foarm, gjin geheim: it moat lêsber wêze foar de provisioning-brûker en gjin kaaimateriaal befetsje.

De priveekaai wurdt by de earste opstart op it apparaat oanmakke en ferlit it nea. Allinnich de iepenbiere helte reizget, binnen in ynskriuwfersyk dat autorisearre wurdt troch eat oars as de eigen bewearing fan it apparaat oer wa't it is. Krekt dat ûnderskie hâldt tsjin dat in stellen bord in probleem foar de hiele float wurdt. It is ek it part dat de measte skripts foar de earste opstart ferkeard dogge.

Stap 1: de kaai lokaal oanmeitsje

Fier de oanmakking út yn in beskerme map neidat de ûnderlizzende netwurkferbining goedkard is en wurket. De subskulp hâldt de umask-feroaring lokaal foar dizze operaasje, en set -C wegeret in besteand bestân te oerskriuwen:

(
    umask 077
    set -C
    wg genkey > /etc/wireguard/device.key &&
        wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)

WireGuard flugge start dokumintearret de kaai-oanmakrelaasje dêr't dizze twa opdrachten op stypje. Wurdt de oanmakking ûnderbrutsen, lit it apparaat dan net-ynskreaun en lit de wurkstream de bestannen gearbringe. Wiskje gjin besteande identiteit allinnich om it skript skjin fan boppeôf rinne te litten.

Bewarje de wachtjende kaai oer nije besykjen hinne. In identiteit opnij oanmeitsje nei elke tydlike netwurkflater is hoe't in float efterbliuwt mei wees-peers dy't nimmen oan in apparaat keppelje kin.

Stap 2: in apparaatrekord autorisearje

Stel dat de ynventaris dit bord device-042 neamt en der 10.90.0.42/32 oan tawiist. De ynskriuwtsjinst moat ferifiearje dat dizze oanfreger rjocht hat op dat rekord. In searjenûmer dat yn in formulier typt is, is gjin bewiis, want searjenûmers wurde op 'e bûtenkant fan 'e doaze printe.

In bootstrap-bewiis per apparaat, in goedkarring fan in operator of in hardware-stipe attestearring kinne de bewearing fêstigje. Beskermje de yntegriteit fan it fersyk en de echtheid fan it antwurd, en ferfange net ien dielde VPN-geheim troch ien dield fabryksbewiis.

It registrearre rekord bynt it apparaat, syn iepenbiere kaai, syn tawiisd adres en syn tastiene behearrol. WireGuard sels definiearret gjin ynskriuw-API, dus dy tsjinst is eat dat jo bewust bouwe en beheare.

Stap 3: twa byinoar passende konfiguraasjes skriuwe

It apparaat hat in profyl nedich dat de behearprefiksen de tunnel yn rjochtet, en de gateway hat in peer-ynskriuwing nedich dy't allinnich it eigen boarne-adres fan dit apparaat tastiet. Mei in gateway op 10.90.0.1 en in behearnetwurk fan 10.60.0.0/16 sjocht de apparaatkant der sa út:

[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

De wearden tusken heakjes binne plakhâlders, gjin kaaien. De keepalive is fan belang as it bord efter NAT sit en berikber bliuwe moat; it is net oeral nedich, en it út gewoante tafoegjen hâldt in radio sûnder reden wekker.

Op 'e gateway is de peer-ynskriuwing bewust smel:

[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32

Kopiearje de bestimmingslist fan it apparaat net nei de gateway-peer. Op it apparaat seit dy list wat de tunnel yn rjochte wurde moat; op 'e gateway seit se hokker boarne-adressen dizze peer brûke mei, en dat binne ferskillende bewearings.

Trochstjoere, firewall-regels en de weromwei nei it behearnetwurk moatte de goedkarde tagong noch altyd tastean. In registrearre peer is gjin tastimming foar elke tapassing dêrefter.

Stap 4: ynskriuwing as libbenssyklusstatus fêstlizze

Pas it gateway-rekord en it apparaatprofyl ta fia wa't de byhearrende konfiguraasje besit, en markearje de ynskriuwing pas foltôge as de bedoelde identiteit en it adres akseptearre binne. Nije besykjen moatte dat itselde rekord gearbringe ynstee fan in twadde peer of in twadde adres ta te wizen.

Hâld in herstelpaad foar ûnderbrutsen provisioning, ynklusyf it gefal wêryn't de gateway de kaai akseptearre hat en it apparaat syn profyl nea skreaun hat.

As in bord ferfongen of út tsjinst nommen wurdt, ferwiderje dan syn iepenbiere kaai en syn autorisaasje tegearre. In nije kaai is in bewuste wer-ynskriuwing, gjin by-effekt fan in reimage. Wurkoarder: lokaal oanmeitsje, autorisearje tsjin 'e ynventaris, beide kanten skriuwe, de tastân fêstlizze, en dan ien behearfersyk troch de tunnel testen.

Relatearre artikelen