Ploča se podiže sa zajedničke slike, dobija DHCP zakup i skripta za pripremu se pokreće prije nego što je iko dodirnuo uređaj. Negdje u toj skripti mora dobiti WireGuard identitet koji pripada ovoj ploči i nijednoj drugoj, dati taj identitet na autorizaciju i napisati profil koji će gateway prihvatiti. Slika može nositi klijentski softver, pregledan predložak i javni ključ gatewaya. Ono što nikada ne smije nositi jest jedan privatni ključ koji dijeli cijela flota, jer to jednu ukradenu ploču pretvara u incident za cijelu flotu. Redoslijed ispod drži identitet lokalnim, a autorizaciju eksplicitnom.

Šta slika nosi, a šta ne

Pošaljite paket, predložak sa rezerviranim mjestima, javni ključ gatewaya i klijenta za registraciju. Predložak je oblik, ne tajna: treba biti čitljiv korisniku za pripremu i ne smije sadržavati nikakav ključni materijal.

Privatni ključ se generiše na uređaju pri prvom podizanju i nikada ga ne napušta. Putuje samo javna polovina, unutar zahtjeva za registraciju koji se autorizuje nečim drugim osim vlastite tvrdnje uređaja o tome ko je. Upravo ta razlika sprječava da ukradena ploča postane problem za cijelu flotu. To je i dio koji većina skripti za prvo podizanje pogreši.

Korak 1: generisati ključ lokalno

Pokrenite generisanje u zaštićenom direktoriju nakon što je osnovna mrežna veza odobrena i radi. Podljuska drži promjenu umask lokalnom za ovu operaciju, a set -C odbija prepisati postojeću datoteku:

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

WireGuard brzi početak dokumentuje odnos generisanja ključeva na koji se oslanjaju ove dvije komande. Ako se generisanje prekine, ostavite uređaj neregistrovanim i neka tok rada uskladi datoteke. Ne brišite postojeći identitet samo zato da bi skripta čisto prošla od početka.

Sačuvajte ključ na čekanju kroz ponovne pokušaje. Ponovno generisanje identiteta nakon svakog privremenog mrežnog kvara je način na koji flota ostaje sa siročadima peer-ovima koje niko ne može povezati s uređajem.

Korak 2: autorizovati zapis uređaja

Pretpostavite da inventar ovu ploču naziva device-042 i dodjeljuje joj 10.90.0.42/32. Servis za registraciju mora provjeriti da ovaj podnosilac zahtjeva ima pravo na taj zapis. Serijski broj otkucan u obrazac nije dokaz, jer su serijski brojevi odštampani na vanjskoj strani kutije.

Bootstrap akreditiv po uređaju, odobrenje operatera ili atestacija potpomognuta hardverom mogu uspostaviti tvrdnju. Zaštitite integritet zahtjeva i autentičnost odgovora, i ne zamjenjujte jednu zajedničku VPN tajnu jednim zajedničkim fabričkim akreditivom.

Registrovani zapis vezuje uređaj, njegov javni ključ, dodijeljenu adresu i dozvoljenu upravljačku ulogu. WireGuard sam ne definiše nikakav API za registraciju, pa je taj servis nešto što svjesno gradite i vodite.

Korak 3: napisati dvije usklađene konfiguracije

Uređaju treba profil koji usmjerava upravljačke prefikse u tunel, a gatewayu treba peer zapis koji dozvoljava samo vlastitu izvornu adresu ovog uređaja. Uz gateway na 10.90.0.1 i upravljačku mrežu 10.60.0.0/16, strana uređaja izgleda ovako:

[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

Vrijednosti u zagradama su rezervirana mjesta, ne ključevi. Keepalive je važan kada ploča stoji iza NAT-a i mora ostati dostupna; nije potreban svuda, a dodavanje iz navike drži radio budnim bez razloga.

Na gatewayu je peer zapis namjerno uzak:

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

Ne kopirajte listu odredišta uređaja na gateway peer. Na uređaju ta lista kaže šta usmjeriti u tunel; na gatewayu kaže koje izvorne adrese ovaj peer smije koristiti, a to su različite tvrdnje.

Prosljeđivanje, firewall pravila i povratni put do upravljačke mreže i dalje moraju dozvoljavati odobreni pristup. Registrovani peer nije dozvola za svaku aplikaciju iza njega.

Korak 4: potvrditi registraciju kao stanje životnog ciklusa

Primijenite gateway zapis i profil uređaja preko onoga koji posjeduje odgovarajuću konfiguraciju, pa označite registraciju završenom tek kada su predviđeni identitet i adresa prihvaćeni. Ponovni pokušaji treba da usklade taj isti zapis umjesto da dodijele drugi peer ili drugu adresu.

Držite put oporavka za prekinutu pripremu, uključujući slučaj kada je gateway prihvatio ključ, a uređaj nikada nije napisao svoj profil.

Kada se ploča zamijeni ili povuče iz upotrebe, uklonite njen javni ključ i njenu autorizaciju zajedno. Novi ključ je svjesna ponovna registracija, a ne nuspojava ponovnog snimanja slike. Redoslijed rada: generisati lokalno, autorizovati prema inventaru, napisati obje strane, potvrditi stanje, pa testirati jedan upravljački zahtjev kroz tunel.

Povezani članci