Vai al contenuto

Tailscale a senso unico

Il problema

Con la policy predefinita ogni nodo della rete privata raggiunge tutti gli altri. Un server esposto a Internet, se compromesso, avrebbe quindi accesso alla rete di casa.

La soluzione

Dare un tag ai server esterni e scrivere una policy con due sole regole:

  1. i dispositivi dell'utente raggiungono tutto;
  2. i server con il tag raggiungono solo il DNS interno.
{
  "tagOwners": { "tag:vps": ["autogroup:admin"] },
  "grants": [
    { "src": ["autogroup:member"], "dst": ["*"], "ip": ["*"] },
    { "src": ["tag:vps"], "dst": ["100.64.0.1"], "ip": ["53"] }
  ]
}

L'indirizzo nell'esempio va sostituito con quello del proprio DNS. La regola predefinita che permette tutto va tolta: finché c'è, il tag non ha alcun effetto.

Conseguenze da conoscere

  • I server con il tag non si raggiungono nemmeno tra loro.
  • Tutto ciò che controlla i server deve partire da casa: monitoraggio, gestione dei container, raccolta dei log.
  • Un nuovo dispositivo di casa ha accesso completo solo se intestato all'utente e senza tag.
  • Sui server conviene non accettare le reti annunciate da altri nodi.

Verifica

Da un server, provare a raggiungere un nodo di casa: deve fallire. Da casa, raggiungere il server: deve funzionare. Vanno provate entrambe le direzioni dopo ogni modifica alla policy.