Twee commando’s genereren een WireGuard-sleutelpaar en beide komen mee met de standaardhulpmiddelen, dus deze taak heeft geen website nodig die aanbiedt een sleutel voor je te maken. Wat misgaat is nooit de kromme-rekenkunde; het zijn de permissiebits, de plek waar het bestand landt en wat er daarna naar de andere kant wordt gestuurd. De reeks hieronder begint in een lege map en eindigt bij een peer die verkeer draagt. Lees hem één keer voordat je hem uitvoert, want de eerste regel telt alleen als de volgende in dezelfde shell draait.

Het paar in één shell genereren

De gedocumenteerde werkwijze beperkt het aanmaken van bestanden voordat de private waarde bestaat, en leidt daarna de publieke waarde eruit af. Alle drie de regels horen bij elkaar in één shell-sessie:

umask 077  # applies to files created next, so keep the next line in this shell
wg genkey | tee privatekey | wg pubkey > publickey
wg pubkey < privatekey  # re-derive and compare with publickey

wg genkey schrijft een private Curve25519-sleutel van 32 byte in base64; wg pubkey leest hem en leidt de bijbehorende publieke sleutel af, en tee bewaart de private waarde terwijl het die door de pijp doorgeeft. Die volgorde is de reden dat de permissieregel eerst komt en dat het plakken van de pijplijn in een tweede terminal hem stil verliest. De bestandsnamen zijn illustratief, en het belangrijkste is dat beide bestanden ergens landen waar het eigenarende apparaat controle over heeft. Als er al een privébestand met standaardrechten bestaat, repareert chmod 600 privatekey het huidige bestand en doet niets aan kopieën die eerder zijn gemaakt.

Houd de private helft op één apparaat

De private waarde hoort op de machine die de identiteit zal bezitten, in een map die die machine beschermt en die haar back-ups als een inloggegeven behandelen. Hij hoort niet in een gedeelde map, in een bericht aan jezelf of in een fragment dat aan een supportticket hangt, en een ingebedde kopie maakt het configuratiebestand precies zo gevoelig als de sleutel. Een sleutel die op drie plekken heeft gewoond, kun je later niet meer doordenken, en dat is de praktische reden om hem op één plek te houden.

Een afgedankt bestand opzettelijk vernietigen hoort bij dezelfde gewoonte. Het in een downloadmap laten liggen tot iemand het opmerkt, niet.

Wat de operator van de peer van je nodig heeft

De andere kant heeft de publieke waarde en de adresindeling nodig die zijn operator heeft gekozen, niets anders. Stuur die publieke tekenreeks via het kanaal dat de operator verwacht, en bevestig daarna aan welke peer-regel hij is gekoppeld voordat iemand hem test, want een juiste sleutel in het verkeerde blok faalt op een manier die op een sleutelprobleem lijkt. Stuur hem als één ononderbroken regel, want een sleutel die over twee regels is gebroken plakt zonder klagen in een configuratiebestand en komt daarna nooit overeen.

Een sleutel genereren machtigt op zichzelf niets. De peer moet worden geconfigureerd om hem te accepteren, en de configuratiestap hoort bij wie dat uiteinde beheert.

Test het paar met een echte uitwisseling

Een sleutelpaar identificeert één uiteinde van een tunnel; het maakt geen route, geen resolver-regel, geen doorstuurregel en geen firewalltoestemming. Nadat de peer is ingericht, test je de uitwisseling in plaats van het bestand: een handshake die in wg show verschijnt, een adres dat binnen de tunnel antwoordt, en één applicatieverzoek dat van de route afhangt. Dat drietal scheidt een verkeerde sleutel van een juiste sleutel en van een ontbrekend pad.

Houd één identiteit per apparaat wanneer de uitrol dat toestaat, zodat een verloren eenheid op zichzelf kan worden ingetrokken in plaats van iedereen te dwingen opnieuw sleutels te genereren. Die beslissing is ook wat de vervangingsprocedure hieronder veilig maakt om te draaien.

Een sleutel vervangen zonder gat

Genereer de vervanging op het apparaat, voeg de nieuwe publieke sleutel toe als extra peer, bevestig dat die verkeer draagt, en verwijder pas daarna de oude. In die volgorde werken betekent dat de tunnel nooit een moment zonder geldige identiteit heeft, en de terugdraai is simpelweg het verwijderen van de regel die je zojuist hebt toegevoegd.

Bewaar het vervangen privébestand tot de nieuwe peer is bevestigd en vernietig het daarna opzettelijk. De WireGuard-snelstart is de referentie voor de commando’s zelf, en hij is kort genoeg om hem voor je begint helemaal te lezen.

Gerelateerde artikelen