Papan but daripada imej bersama, mendapat pajakan DHCP, dan skrip penyediaan berjalan sebelum sesiapa menyentuh peranti. Di suatu tempat dalam skrip itu ia mesti memperoleh identiti WireGuard yang menjadi milik papan ini dan bukan yang lain, membenarkan identiti itu, dan menulis profil yang akan diterima oleh gateway. Imej boleh membawa perisian klien, templat yang disemak dan kunci awam gateway. Apa yang tidak boleh dibawanya ialah satu kunci peribadi yang dikongsi seluruh armada, kerana itu menjadikan satu papan yang dicuri sebagai insiden seluruh armada. Urutan di bawah mengekalkan identiti secara setempat dan kebenaran secara eksplisit.

Apa yang dibawa oleh imej, dan apa yang tidak

Hantar pakej, templat dengan pemegang tempat, kunci awam gateway dan klien pendaftaran. Templat ialah bentuk, bukan rahsia: ia harus boleh dibaca oleh pengguna penyediaan dan tidak mengandungi sebarang bahan kunci.

Kunci peribadi dijana pada peranti semasa but pertama dan tidak pernah meninggalkannya. Hanya separuh awam bergerak, di dalam permintaan pendaftaran yang dibenarkan oleh sesuatu selain dakwaan peranti itu sendiri tentang siapa dirinya. Perbezaan itulah yang menghalang papan yang dicuri daripada menjadi masalah seluruh armada. Dan itulah bahagian yang kebanyakan skrip but pertama lakukan dengan salah.

Langkah 1: jana kunci secara setempat

Jalankan penjanaan dalam direktori terlindung selepas sambungan rangkaian asas diluluskan dan berfungsi. Subshell mengekalkan perubahan umask secara setempat untuk operasi ini, dan set -C enggan menimpa fail sedia ada:

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

Mula pantas WireGuard mendokumenkan hubungan penjanaan kunci yang dijadikan asas oleh kedua-dua arahan ini. Jika penjanaan terganggu, biarkan peranti tidak berdaftar dan biarkan aliran kerja mendamaikan fail. Jangan padam identiti sedia ada semata-mata supaya skrip berjalan bersih dari awal.

Simpan kunci yang belum selesai merentas percubaan semula. Menjana semula identiti selepas setiap kegagalan rangkaian sementara ialah cara armada berakhir dengan peer yatim yang tiada siapa dapat padankan dengan peranti.

Langkah 2: benarkan rekod peranti

Katakan inventori memanggil papan ini device-042 dan memberinya 10.90.0.42/32. Perkhidmatan pendaftaran mesti mengesahkan bahawa pemohon ini berhak ke atas rekod itu. Nombor siri yang ditaip ke dalam borang bukan bukti, kerana nombor siri dicetak di bahagian luar kotak.

Kelayakan butstrap setiap peranti, kelulusan pengendali atau atestasi yang disokong perkakasan boleh menegakkan dakwaan itu. Lindungi integriti permintaan dan ketulenan respons, dan jangan gantikan satu rahsia VPN bersama dengan satu kelayakan kilang bersama.

Rekod berdaftar mengikat peranti, kunci awamnya, alamat yang diberikan dan peranan pengurusan yang dibenarkan. WireGuard sendiri tidak mentakrifkan sebarang API pendaftaran, jadi perkhidmatan itu ialah sesuatu yang anda bina dan kendalikan dengan sengaja.

Langkah 3: tulis dua konfigurasi yang sepadan

Peranti memerlukan profil yang menghalakan awalan pengurusan ke dalam terowong, dan gateway memerlukan entri peer yang hanya membenarkan alamat sumber peranti ini sendiri. Dengan gateway pada 10.90.0.1 dan rangkaian pengurusan 10.60.0.0/16, bahagian peranti kelihatan seperti ini:

[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

Nilai dalam kurungan segi empat sama ialah pemegang tempat, bukan kunci. Keepalive penting apabila papan berada di belakang NAT dan mesti kekal boleh dicapai; ia tidak diperlukan di mana-mana, dan menambahnya kerana kebiasaan mengekalkan radio berjaga tanpa sebab.

Pada gateway, entri peer sengaja sempit:

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

Jangan salin senarai destinasi peranti ke entri peer gateway. Pada peranti senarai itu mengatakan apa yang perlu dihalakan ke dalam terowong; pada gateway ia mengatakan alamat sumber mana yang boleh digunakan oleh peer ini, dan itu adalah kenyataan yang berbeza.

Pemajuan, peraturan firewall dan laluan balik ke rangkaian pengurusan masih mesti membenarkan akses yang diluluskan. Peer berdaftar bukan kebenaran untuk setiap aplikasi di belakangnya.

Langkah 4: sahkan pendaftaran sebagai keadaan kitaran hayat

Gunakan rekod gateway dan profil peranti melalui pemilik setiap konfigurasi, kemudian tandakan pendaftaran selesai hanya apabila identiti dan alamat yang dimaksudkan diterima. Percubaan semula harus mendamaikan rekod yang sama itu dan bukannya memperuntukkan peer kedua atau alamat kedua.

Kekalkan laluan pemulihan untuk penyediaan yang terganggu, termasuk kes apabila gateway menerima kunci itu dan peranti tidak pernah menulis profilnya.

Apabila papan diganti atau dipersarakan, buang kunci awamnya dan kebenarannya bersama-sama. Kunci baharu ialah peristiwa pendaftaran semula yang disengajakan, bukan kesan sampingan imej semula. Urutan kerja: jana secara setempat, benarkan terhadap inventori, tulis kedua-dua belah, sahkan keadaan, kemudian uji satu permintaan pengurusan melalui terowong.

Artikel berkaitan