Due comandi generano una coppia di chiavi WireGuard ed entrambi arrivano con gli strumenti standard, quindi questo compito non ha bisogno di un sito che proponga di creare una chiave per voi. Ciò che si rompe non è mai l’aritmetica della curva; sono i bit dei permessi, il posto in cui atterra il file e ciò che viene poi inviato all’altro capo. La sequenza qui sotto parte da una directory vuota e finisce su un peer che trasporta traffico. Leggetela una volta prima di eseguirla, perché la prima riga conta solo se la successiva gira nella stessa shell.

Generare la coppia in una sola shell

Il flusso di lavoro documentato limita la creazione di file prima che esista il valore privato, poi ne deriva il valore pubblico. Le tre righe vanno insieme in un’unica sessione di shell:

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 scrive una chiave privata Curve25519 da 32 byte in base64; wg pubkey la legge e ne deriva la chiave pubblica corrispondente, e tee salva il valore privato mentre lo passa lungo la pipe. È quest’ordine il motivo per cui la riga dei permessi viene per prima e per cui incollare la pipeline in un secondo terminale la perde in silenzio. I nomi dei file sono esemplificativi, e ciò che conta è che entrambi i file atterrino dove il dispositivo proprietario ha il controllo. Se un file privato esiste già con i permessi predefiniti, chmod 600 privatekey corregge il file attuale e non fa nulla per le copie fatte prima.

Tenere la metà privata su un solo dispositivo

Il valore privato appartiene alla macchina che possiederà l’identità, in una directory che quella macchina protegge e che i suoi backup trattano come una credenziale. Non appartiene a una cartella condivisa, a un messaggio a se stessi o a un frammento allegato a un ticket di assistenza, e una copia incorporata rende il file di configurazione esattamente sensibile quanto la chiave. Una chiave che ha vissuto in tre posti non si può più ragionare dopo, ed è questa la ragione pratica per tenerla in uno.

Distruggere deliberatamente un file ritirato fa parte della stessa abitudine. Lasciarlo in una cartella di download finché qualcuno non se ne accorge, no.

Che cosa serve al gestore del peer da voi

L’altro lato ha bisogno del valore pubblico e della disposizione degli indirizzi scelta dal suo gestore, nient’altro. Inviate quella stringa pubblica sul canale che il gestore si aspetta, poi confermate a quale voce di peer è stata associata prima che qualcuno la provi, perché una chiave corretta nella sezione sbagliata fallisce in un modo che sembra un problema di chiave. Inviatela come una sola riga non spezzata, perché una chiave spezzata su due righe si incolla in un file di configurazione senza protestare e poi non corrisponde mai.

Generare una chiave non autorizza nulla di per sé. Il peer deve essere configurato per accettarla, e il passo di configurazione spetta a chi gestisce quel lato.

Provare la coppia con uno scambio reale

Una coppia di chiavi identifica un capo di un tunnel; non crea alcuna rotta, alcuna voce del resolver, alcuna regola di inoltro e alcun permesso del firewall. Una volta predisposto il peer, provate lo scambio invece del file: una stretta di mano che appare in wg show, un indirizzo che risponde dentro il tunnel e una richiesta applicativa che dipende dalla rotta. Quel trio separa una chiave sbagliata da una chiave giusta e da un percorso mancante.

Tenete un’identità per dispositivo quando la distribuzione lo consente, così un’unità persa può essere revocata da sola invece di costringere tutti a rigenerare le chiavi. Questa decisione è anche ciò che rende sicura da eseguire la procedura di sostituzione qui sotto.

Sostituire una chiave senza vuoto

Generate il sostituto sul dispositivo, aggiungete la nuova chiave pubblica come peer aggiuntivo, confermate che trasporti traffico e solo allora rimuovete la vecchia. Farlo in quest’ordine significa che il tunnel non ha mai un momento senza identità valida, e il ritorno indietro è semplicemente cancellare la voce appena aggiunta.

Tenete il file privato sostituito finché il nuovo peer non è confermato, poi distruggetelo di proposito. La guida di avvio rapido di WireGuard è il riferimento per i comandi stessi, ed è abbastanza breve da leggerla per intero prima di iniziare.

Articoli correlati