Installare il software del server è la parte più breve di una VPN auto-ospitata, ed è il passo con cui le persone iniziano. Che il deployment funzioni dipende dal fatto che un client riesca a raggiungere l’endpoint, da cosa quel client può raggiungere dopo e da come rientri quando è proprio il tunnel a essersi rotto. Risolvi tutti e tre i punti prima che venga eseguito il gestore dei pacchetti.

Due sono decisioni di progettazione e il terzo è un’abitudine operativa. Tutti e tre costano meno da correggere sulla carta che durante un’interruzione.

Decidi cosa devono raggiungere i client

Un server per l’accesso remoto ha bisogno di una rotta verso la rete privata che annuncia e di un percorso di ritorno per le risposte, il che lo rende un router per quella rete e non solo un ascoltatore. Un server di uscita internet ha bisogno dell’inoltro più un assetto di indirizzamento o di traduzione, e un handshake completato non fornisce né l’uno né l’altro. Scegli il compito prima della topologia, perché i due progetti differiscono nel routing, nelle regole del firewall e in ciò che il client invia nel tunnel. Un server a cui si chiedono entrambe le cose ha bisogno di entrambi i set di regole e di una ripartizione coerente della rotta predefinita del client.

Scegli intervalli di tunnel e LAN che non possano entrare in collisione con reti che i tuoi client usano già, poiché un portatile che possiede già 192.168.1.0/24 continuerà a usare quella rotta invece di un tunnel che assegna lo stesso prefisso. Controlla IPv4 e IPv6 separatamente, perché molti azzeccano il primo e non si accorgono mai del secondo. Dove il server si trova dietro un altro router, conferma la raggiungibilità in ingresso dall’esterno invece di fidarti di un solo inoltro di porta per descrivere ogni livello.

Identità, chiavi e una via di rientro

Emetti un’identità separata per dispositivo dove il software lo consente, così un portatile perso significa revocare un solo peer invece di ricostruire il server. Le chiavi private vanno in uno spazio protetto e mai in un profilo incollato in un messaggio di chat. La via di recupero è la parte che le persone saltano: accesso alla console, una console seriale o un’interfaccia di gestione fuori banda che non dipenda dal tunnel. Senza una di queste, una brutta regola del firewall trasforma una piccola modifica in una visita in sede.

Scrivi la procedura di rimozione insieme a quella di iscrizione. Revocare un dispositivo è un’operazione che prima o poi ti servirà, ed è più facile descriverla mentre la configurazione è ancora fresca.

Endpoint a casa o affittato?

Tre condizioni decidono tra ospitare a casa e affittare una piccola istanza. La prima è se le connessioni in ingresso possono raggiungere la tua rete, poiché un uplink tradotto di livello operatore o una rete di edificio restrittiva eliminano l’opzione. La seconda è se l’uscita deve comparire altrove rispetto alla tua città, perché solo un endpoint affittato cambia questo. La terza è l’appetito per una seconda relazione di fiducia, perché un provider di hosting entra nel modello e può osservare l’endpoint anche quando non può leggere il traffico.

Se la prima condizione è soddisfatta e la seconda è irrilevante, ospitare a casa è la strada più breve. Un endpoint affittato compra posizione e disponibilità, non la privacy di per sé.

Provalo con un client e un riavvio

Avvia un client, conferma la risorsa che deve raggiungere e conferma che smette di raggiungere ciò che non dovrebbe. I comandi qui sotto mostrano lo stato dei peer, le rotte installate dal server e se l’inoltro è attivo. Eseguili prima di iscrivere chiunque altro.

wg show
sysctl net.ipv4.ip_forward
ip route get 10.8.0.2
ss -lunp | grep -E ':(51820|1194)'

Un peer con un handshake recente è connesso, mentre un peer senza handshake non ha mai negoziato, e sono guasti diversi. L’inoltro disattivato spiega un tunnel che sale e non trasporta nulla, quindi controlla il server prima di dare la colpa al client. Un ascoltatore mancante significa che il servizio non è partito con la configurazione che credi. Poi riavvia il server di proposito e ripeti l’intero set, perché un tunnel che funziona solo fino al riavvio è un risultato comune del testare il percorso felice.

Annota endpoint, peer, intervalli e metodo di recupero su un’unica pagina. Quella pagina è il runbook che leggerai nel momento meno comodo.

Articoli correlati