Configurazione di una VPN con WireGuard

WireGuard https://www.wireguard.com/ permette di creare una rete privata virtuale (VPN) basata sul protocollo UDP e su coppie di chiavi pubblica/privata, e che secondo l’autore ha gli obiettivi di essere facile da usare, veloce e presentare pochi punti che possano essere sfruttati da malintenzionati.

L’unico requisito per usare WireGuard è che il computer che si intende usare accetti in ingresso delle connessioni UDP su una porta nota agli altri computer; in una configurazione a stella, in genere solo il nodo centrale fornisce dei servizi tramite la VPN ed è configurato per rimanere in ascolto su una porta fissa sempre aperta sul firewall e conosciuta dai nodi satellite, mentre i nodi satellite non forniscono servizi tramite la VPN, quindi non hanno necessità di ricevere traffico in ingresso non richiesto e lo ricevono solo in risposta alle proprie richieste, se però devono fornire servizi possono usare il meccanismo “hole punching” che in WireGuard si configura tramite il parametro “keepalive” come spiegato più avanti.

Questo articolo descrive come realizzare una VPN con un nodo centrale che funziona anche come server DNS per la VPN e fa da router per i nodi satellite.

Se si usa un servizio di DNS dinamico, non è necessario usare IP pubblici statici, mentre è sempre necessario usare IP privati statici sulla VPN perché WireGuard non implementa un meccanismo per assegnare IP dinamici dal momento che per trasferire i propri pacchetti usa il protocollo UDP che funziona a livello IP.

La configurazione del client è spiegata in un articolo separato.

La configurazione del server è spiegata in un articolo separato.

© CC-BY-SA Gruppo Utenti Linux Livorno

Pubblicato in Vari

Proseguono gli incontri online

Proseguono due cicli di incontri in teleconferenza: il ciclo organizzato dai LUG toscani, solitamente il mercoledì (maggiori informazioni qui) e il ciclo dis-organizzato dal Gulli, solitamente il giovedì (maggiori informazioni sulla mailing list e sul gruppo Telegram qui).

  • 04/02/2021: Arduino (Blynk)
  • 11/02/2021: Blender
  • 25/02/2021: argomento libero
  • 04/03/2021: Arduino
  • 11/03/2021: Blender
  • 25/03/2021: Python e database (“Theater History of Operations (THOR) Data: World War II”)
  • 01/04/2021: Arduino (Wemos); Python+SQL con Blender
  • 08/04/2021: Arduino; Blender
  • 15/04/2021: Blender
  • 22/04/2021: Database (THOR)
  • 06/05/2021: Database (THOR)
  • 20/05/2021: Arduino
  • 27/05/2021: SQL e Database (THOR)
  • 10/06/2021: Arduino; Blender
  • 17/06/2021: Arduino; Blender
  • 24/06/2021: progetto