Cychwyn cyntaf: cofrestru fflyd o ddyfeisiau WireGuard
Un ddelwedd, un allwedd y bwrdd, a cham awdurdodi nad yw'n ymddiried yng ngherdd y ddyfais ei hun. Pedwar cam o gychwyn i gyfoed wedi'i gymeradwyo.
Mae'r bwrdd yn cychwyn o'r ddelwedd gyffredin, yn cael les DHCP, ac mae sgript darparu yn rhedeg cyn i unrhyw un gyffwrdd â'r ddyfais. Yn rhywle yn y sgript honno mae'n rhaid iddi gael hunaniaeth WireGuard sy'n perthyn i'r bwrdd hwn ac i nunlle arall, cael yr hunaniaeth honno wedi'i hawdurdodi, ac ysgrifennu proffil y bydd y porth yn ei dderbyn. Gall y ddelwedd gario'r meddalwedd cleient, templed wedi'i adolygu ac allwedd gyhoeddus y porth. Yr hyn na ddylai byth ei gario yw un allwedd breifat a rennir gan y fflyd gyfan, oherwydd mae hynny'n troi un bwrdd wedi'i ddwyn yn ddigwyddiad ar draws y fflyd. Mae'r drefn isod yn cadw'r hunaniaeth yn lleol a'r awdurdodiad yn eglur.
Beth mae'r ddelwedd yn ei gario, a beth nad yw
Anfonwch y pecyn, y templed gyda deiliaid lle, allwedd gyhoeddus y porth a'r cleient cofrestru. Mae'r templed yn ffurf, nid yn gyfrinach: dylai fod yn ddarllenadwy i'r defnyddiwr darparu ac ni ddylai gynnwys unrhyw ddeunydd allwedd.
Mae'r allwedd breifat yn cael ei chynhyrchu ar y ddyfais ar y cychwyn cyntaf ac ni fydd byth yn ei gadael. Dim ond yr hanner cyhoeddus sy'n teithio, y tu mewn i gais cofrestru a awdurdodir gan rywbeth heblaw cerdyn y ddyfais ei hun am bwy ydyw. Y gwahaniaeth hwnnw sy'n atal bwrdd wedi'i ddwyn rhag dod yn broblem ar draws y fflyd. A dyma'r rhan y mae'r rhan fwyaf o sgriptiau cychwyn cyntaf yn ei chael yn anghywir.
Cam 1: cynhyrchu'r allwedd yn lleol
Rhedwch y gynhyrchu mewn cyfeiriadur gwarchodedig ar ôl i'r cysylltiad rhwydwaith sylfaenol gael ei gymeradwyo a gweithio. Mae'r is-gragen yn cadw'r newid umask yn lleol i'r llawdriniaeth hon, ac mae set -C yn gwrthod trosysgrifo ffeil sy'n bodoli eisoes:
(
umask 077
set -C
wg genkey > /etc/wireguard/device.key &&
wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)
Cychwyn cyflym WireGuard yn dogfennu'r berthynas cynhyrchu allweddi y mae'r ddau orchymyn hyn yn dibynnu arni. Os yw'r gynhyrchu'n cael ei thorri, gadewch y ddyfais heb ei chofrestru a gadewch i'r llif gwaith gysoni'r ffeiliau. Peidiwch â dileu hunaniaeth sy'n bodoli dim ond er mwyn i'r sgript redeg yn lân o'r dechrau.
Cadwch yr allwedd sy'n disgwyl ar draws ymgais eto. Ailgynhyrchu hunaniaeth ar ôl pob methiant rhwydwaith dros dro yw sut y mae fflyd yn gorffen gyda chyfoedion amddifad na all neb eu cysylltu â dyfais.
Cam 2: awdurdodi cofnod dyfais
Tybier bod y rhestr eiddo yn galw'r bwrdd hwn yn device-042 ac yn neilltuo 10.90.0.42/32 iddo. Mae'n rhaid i'r gwasanaeth cofrestru wirio bod gan y gofynnwr hwn hawl i'r cofnod hwnnw. Nid yw rhif cyfresol wedi'i deipio i ffurflen yn brawf, oherwydd mae rhifau cyfresol wedi'u hargraffu ar du allan y blwch.
Gall credyn cychwyn fesul dyfais, cymeradwyaeth gweithredwr, neu dystiolaeth wedi'i chefnogi gan galedwedd sefydlu'r haeriad. Diogelwch gyfanrwydd y cais a dilysrwydd yr ateb, a pheidiwch â disodli un gyfrinach VPN a rennir ag un credyn ffatri a rennir.
Mae'r cofnod cofrestredig yn rhwymo'r ddyfais, ei hallwedd gyhoeddus, y cyfeiriad a neilltuwyd iddi a'i rôl rheoli a ganiateir. Nid yw WireGuard ei hun yn diffinio unrhyw API cofrestru, felly mae'r gwasanaeth hwnnw'n rhywbeth rydych chi'n ei adeiladu a'i redeg yn fwriadol.
Cam 3: ysgrifennu dau ffurfweddiad sy'n cyd-fynd
Mae ar y ddyfais angen proffil sy'n llwybro'r rhagddodiaid rheoli i'r twnnel, ac mae ar y porth angen cofnod cyfoed nad yw'n caniatáu ond cyfeiriad ffynhonnell y ddyfais hon ei hun. Gyda phorth ar 10.90.0.1 a rhwydwaith rheoli o 10.60.0.0/16, dyma sut mae ochr y ddyfais yn edrych:
[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
Mae'r gwerthoedd mewn cromfachau yn ddeiliaid lle, nid yn allweddi. Mae'r keepalive yn bwysig pan fo'r bwrdd y tu ôl i NAT ac yn gorfod aros yn gyrhaeddadwy; nid yw'n ofynnol ym mhob man, ac mae ei ychwanegu o arfer yn cadw radio'n effro heb reswm.
Ar y porth, mae'r cofnod cyfoed yn gul yn fwriadol:
[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32
Peidiwch â chopïo rhestr gyrochfan y ddyfais i gofnod cyfoed y porth. Ar y ddyfais mae'r rhestr honno'n dweud beth i'w lwybro i'r twnnel; ar y porth mae'n dweud pa gyfeiriadau ffynhonnell y caiff y cyfoed hwn eu defnyddio, ac mae'r rheini'n ddatganiadau gwahanol.
Rhaid i'r anfon ymlaen, rheolau'r wal dân a'r llwybr dychwelyd i'r rhwydwaith rheoli barhau i ganiatáu'r mynediad a gymeradwywyd. Nid yw cyfoed cofrestredig yn ganiatâd i bob cymhwysiad y tu ôl iddo.
Cam 4: cadarnhau'r cofrestriad fel cyflwr cylch bywyd
Cymhwyswch gofnod y porth a phroffil y ddyfais drwy bwy bynnag sy'n berchen ar bob ffurfweddiad, yna marciwch y cofrestriad yn gyflawn dim ond pan dderbynnir yr hunaniaeth a'r cyfeiriad a fwriadwyd. Dylai ymgeisiau eto gysoni'r un cofnod hwnnw yn hytrach na neilltuo ail gyfoed neu ail gyfeiriad.
Cadwch lwybr adfer ar gyfer darparu wedi'i dorri, gan gynnwys yr achos lle mae'r porth wedi derbyn yr allwedd ac nad yw'r ddyfais wedi ysgrifennu ei phroffil erioed.
Pan fydd bwrdd yn cael ei ddisodli neu ei ddecomisiynu, tynnwch ei allwedd gyhoeddus a'i awdurdodiad gyda'i gilydd. Mae allwedd newydd yn ddigwyddiad ailgofrestru bwriadol, nid yn sgil-effaith ail-ddychmygu. Trefn gwaith: cynhyrchu'n lleol, awdurdodi yn erbyn y rhestr eiddo, ysgrifennu'r ddwy ochr, cadarnhau'r cyflwr, yna profi un cais rheoli drwy'r twnnel.