Come Creare una VPN Mesh P2P Leggera con Tinc

Tinc è un adattatore di rete privata virtuale (VPN) open-source che offre un modo semplice per creare una rete mesh privata peer-to-peer (P2P) su Linux, Windows e macOS. Simile a OpenVPN e Wireguard, può collegare più computer attraverso diverse topologie di rete in una singola LAN virtuale. Qui mostriamo i vantaggi di utilizzare Tinc e come installarlo e creare una semplice rete mesh basata su Tinc.
Perché Usare Tinc al Posto di Wireguard e OpenVPN?
Un punto di forza unico di Tinc rispetto ad altri demoni VPN è che è progettato per essere una rete mesh. Questo significa che, a differenza di Wireguard, può facilmente adattarsi ai cambiamenti nelle condizioni di rete. Questo lo rende più resistente, specialmente per i computer con una connessione di rete scarso.

A parte questo, Tinc gode della maggior parte delle funzionalità che ci si aspetterebbe da una VPN tradizionale come OpenVPN. Ciò include la capacità di attraversare ambienti NAT, creare tunnel crittografati e collegare applicazioni solo LAN.

Infine, Tinc si sforza anche di rendere ogni connessione che fai all’interno della rete P2P. Questo potrebbe avvenire tramite scoperta automatica dei peer o coordinandosi con un server Tinc accessibile pubblicamente. Di conseguenza, le connessioni all’interno di una VPN Tinc non sono solo resistenti ma anche veloci e reattive.
Buono a sapersi: sei ancora indeciso su quale VPN scegliere? Dai un’occhiata al nostro articolo in cui confrontiamo Wireguard e OpenVPN tra loro.
Installare Tinc su Linux
Il primo passo per installare Tinc è assicurarti che il tuo sistema sia aggiornato. Su Ubuntu, esegui il seguente comando:
sudo apt update && sudo apt upgrade -yScarica e installa Tinc direttamente dai repository di pacchetti di Ubuntu:
sudo apt install tinc
Per installare Tinc su altre distribuzioni Linux, utilizza il gestore di pacchetti appropriato per quel sistema. Ad esempio, devo eseguire sudo dnf install tinc per scaricare il programma su Fedora.

Conferma di aver installato correttamente Tinc aprendo una sessione del terminale e eseguendo tincd --version.

Creare una Rete Mesh di Base con Tinc
Con Tinc sulla tua macchina, puoi ora configurare la tua prima rete basata su Tinc. Crea una nuova cartella all’interno di “/etc/tinc.” Questa conterrà tutti i file relativi al tuo nodo Tinc:
sudo mkdir -p /etc/tinc/mynetwork/hostsCrea un nuovo file di configurazione utilizzando il tuo editor di testo preferito:
sudo nano /etc/tinc/mynetwork/tinc.confIncolla il seguente blocco di codice nel tuo nuovo file di configurazione:
Name = mynode
Device = /dev/net/tunNota: alcune distribuzioni Linux potrebbero cambiare la posizione dell’adattatore tun all’interno di “/dev.” Per trovare il suo percorso esatto per il tuo sistema, esegui:
find /dev -name *tun* -type cCrea un file di testo all’interno della cartella “hosts” con il nome del tuo nodo Tinc e incolla il seguente dentro:
Subnet = 192.168.11.1/32
Address = TUO-INDIRIZZO-IP-MACCHINA-QUI
Port = 655Sostituisci il valore della variabile “Address” con l’indirizzo IP della tua macchina. Puoi trovarlo eseguendo ip addr.

Nota: devi fornire l’indirizzo IP pubblico della tua macchina se desideri creare una VPN accessibile pubblicamente.
Salva il file hosts della tua macchina, quindi crea due file sotto “/etc/tinc/mynetwork:”
sudo touch /etc/tinc/mynetwork/tinc-{up,down}
sudo chmod +x /etc/tinc/mynetwork/tinc-{up,down}Apri il file “tinc-up” e incolla il seguente codice Bash all’interno. Questo crea l’interfaccia di rete virtuale per Tinc e assegna l’indirizzo IP a tale interfaccia:
#!/bin/sh
ip link set $INTERFACE up
ip addr add 192.168.11.1/32 dev $INTERFACE
ip route add 192.168.11.0/24 dev $INTERFACESalva il file, poi apri il file “tinc-down” e incolla anche qui il seguente:
#!/bin/sh
ip route del 192.168.11.0/24 dev $INTERFACE
ip addr del 192.168.11.1/32 dev $INTERFACE
ip link set $INTERFACE down
Genera una coppia di chiavi per il tuo nodo Tinc eseguendo tincd:
sudo tincd -n mynetwork --generate-keys=4096Premi Invio due volte per accettare la posizione di salvataggio predefinita per entrambe le chiavi, privata e pubblica, sul tuo nodo Tinc.

Aggiungere il Primo Client Tinc
Per aggiungere un nuovo client Tinc, inizia assicurandoti di aver installato correttamente Tinc sulla tua seconda macchina.

Crea la struttura delle directory per la tua configurazione Tinc usando mkdir -p.
Usa il tuo editor di testo preferito per creare il file di configurazione per il tuo client Tinc:
sudo nano /etc/tinc/mynetwork/tinc.confIncolla le seguenti righe di codice nel file di configurazione della tua seconda macchina:
Name = myclient
Device = /dev/net/tun
ConnectTo = mynodeCrea un file con il nome della tua macchina Tinc sotto “/etc/tinc/mynetwork/hosts.” In questo caso, ho chiamato la mia seconda macchina “myclient,” quindi creerò un file con il nome “myclient:”
sudo nano /etc/tinc/mynetwork/hosts/myclientIncolla il seguente blocco di codice nel tuo nuovo file hosts. Simile al tuo primo nodo, questo stabilisce la configurazione di rete del tuo demone Tinc:
Subnet = 192.168.11.2/32
Port = 655Salva il tuo nuovo file hosts, quindi crea uno script “tinc-up” e “tinc-down” sulla tua seconda macchina:
sudo touch /etc/tinc/mynetwork/tinc-{up,down}
sudo chmod +x /etc/tinc/mynetwork/tinc-{up,down}Apri il file tinc-up usando il tuo editor di testo preferito, quindi incolla il seguente blocco di codice all’interno:
#!/bin/sh
ip link set $INTERFACE up
ip addr add 192.168.11.2/32 dev $INTERFACE
ip route add 192.168.11.0/24 dev $INTERFACESalva il tuo file tinc-up, quindi apri tinc-down e incolla anche qui le seguenti righe di codice:
#!/bin/sh
ip route del 192.168.11.0/24 dev $INTERFACE
ip addr del 192.168.11.2/32 dev $INTERFACE
ip link set $INTERFACE downCompleta la tua configurazione del client Tinc generando la sua coppia di chiavi:
sudo tincd -n mynetwork --generate-keys=4096
Eseguire la Rete Mesh Tinc
A questo punto, hai ora due demoni Tinc configurati correttamente. Tuttavia, devi ancora collegare questi due demoni Tinc per creare la tua VPN P2P in Linux. Per questo, devi copiare il file di configurazione hosts dal tuo nodo Tinc al tuo client e viceversa.
Inizia aprendo la sessione del terminale del tuo nodo e navigando nella sua directory “/etc/tinc/mynetwork/hosts”:
cd /etc/tinc/mynetwork/hostsCopia il file di configurazione all’interno di questa directory e trasferiscilo al tuo client. Nel mio caso, userò scp per inviare questo file tramite ssh:
scp ./mynode TUO-INDIRIZZO-CLIENT-IP:~
Nota: mentre in questo esempio ho usato scp, puoi anche trasferirli manualmente utilizzando chiavette USB.
Vai alla tua macchina client e copia il file hosts che hai appena trasferito nella cartella “/etc/tinc/mynetwork/hosts” del client:
sudo cp -v ~/mynode /etc/tinc/mynetwork/hosts/Dopo, esegui scp sul lato della macchina client per trasferire il suo file hosts indietro al tuo nodo:
scp /etc/tinc/mynetwork/hosts/myclient TUO-INDIRIZZO-NODO-IP:~Copia il file hosts del tuo client nella directory hosts del tuo nodo:
sudo cp ~/myclient /etc/tinc/mynetwork/hosts/Nota a margine: preoccupato per la tua privacy personale su internet? Scopri come puoi migliorare la privacy e la sicurezza del tuo PC Linux.
Avviare la Rete Mesh Tinc
Avvia la tua rete Tinc completamente configurata eseguendo il seguente comando su ciascuno dei tuoi host:
sudo tincd -n mynetworkConferma di essere in grado di comunicare con i tuoi nodi attraverso l’interfaccia Tinc facendo un semplice ping:
ping -c 5 192.168.11.2
Infine, abilita il servizio Tinc per garantire che la tua VPN funzioni all’avvio del sistema:
sudo systemctl enable --now [email protected]Imparare a creare la tua VPN mesh P2P in Linux con Tinc è solo il primo passo per esplorare questo meraviglioso mondo delle reti informatiche. Approfondisci le complessità di questa tecnologia consultando la nostra panoramica completa sulle VPN.
Crediti immagine: Growtika tramite Unsplash. Tutte le alterazioni e schermate di Ramces Red.