Cos’è Tailscale
Tailscale è una VPN mesh basata su WireGuard che permette di connettere dispositivi in modo sicuro senza configurazioni complesse. Caratteristiche principali:
- Connessioni peer-to-peer crittografate tra dispositivi
- NAT traversal automatico (funziona anche dietro firewall e router)
- Autenticazione tramite identity provider (Google, Microsoft, GitHub, ecc.)
- Nessun server centrale per il traffico (solo per la coordinazione)
WireGuard
WireGuard è il protocollo VPN sottostante utilizzato da Tailscale. Offre:
- Crittografia moderna e veloce (ChaCha20, Curve25519, BLAKE2s)
- Codebase minimale (~4000 righe di codice vs ~100.000 di OpenVPN)
- Connessioni stateless con handshake rapido
- Integrato nel kernel Linux dalla versione 5.6
Mesh Network
A differenza delle VPN tradizionali (hub-and-spoke), Tailscale crea una rete mesh dove ogni dispositivo può comunicare direttamente con gli altri, riducendo latenza e evitando colli di bottiglia.
Configurazione
{ config, pkgs, ... }:
{
services.tailscale = {
enable = true;
interfaceName = "nome_interfaccia";
port = 41641;
package = pkgs.tailscale;
disableTaildrop = true;
openFirewall = true;
};
networking.firewall = {
extraCommands = ''iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns'';
enable = true;
allowedTCPPorts = [80 443 ];
trustedInterfaces = [ "tailscale0"];
allowedUDPPorts = [53 config.services.tailscale.port];
};
}