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

nix

{ 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];
    };

}