Configurazione di un Server VPN Tailscale

NOTA

Questo è opzionale. Devi considerare questa sezione solo se esegui un nodo a casa e vorresti connetterti ad esso da fuori della tua rete domestica.

Se vorresti accedere alla tua rete domestica da remoto, ad esempio mentre sei in vacanza o in viaggio di lavoro, il percorso più comune è utilizzare un server Virtual Private Network. Questo ti permetterà di connetterti al tuo nodo tramite SSH e monitorare il tuo dashboard Grafana da qualsiasi parte del mondo, tutto senza esporre la tua porta SSH a internet.

Molti operatori di nodi Rocket Pool usano Tailscale come server VPN di scelta per questo. Tailscale è un tunnel VPN P2P open source e un servizio di scoperta endpoint ospitato. Si occupa dell'autenticazione, pubblicazione e attraversamento NAT necessario per stabilire un percorso crittografato end-to-end tra la tua macchina e il tuo nodo senza inviare traffico sensibile a un server centralizzato. È uno strumento molto potente.

Copriremo brevemente una configurazione di base, ma sentiti libero di rivedere la loro documentazione per maggiori dettagli.

Configurazione di Tailscale

Innanzitutto, crea un account Tailscale gratuito. Tailscale richiede l'uso di un provider di identità SSO come Google, GitHub, Okta, Microsoft, ecc. Per i dettagli, visita la loro pagina SSO.

Si consiglia di abilitare la 2FA (Autenticazione a Due Fattori) su qualsiasi provider di identità tu scelga per una maggiore sicurezza.

Successivamente, segui la loro guida di onboarding per installare Tailscale sul tuo client - la macchina con cui vuoi connetterti alla tua rete. Ad esempio, questo potrebbe essere un laptop o il tuo telefono. Nota che non è il tuo nodo Rocket Pool!

Una volta completato, dovresti vedere il tuo computer come 'connesso' sul dashboard Tailscale.

Ora, installa Tailscale sul tuo nodo Rocket Pool. Puoi trovare le istruzioni per questo sul loro sito web; ad esempio, ecco le istruzioni di installazione per Ubuntu.

NOTA

Se hai configurato UFW, vorrai anche seguire le Istruzioni di Configurazione UFW).

Innanzitutto, aggiungi la chiave di firma del pacchetto Tailscale e il repository sul tuo nodo Rocket Pool:

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

Ora, installa Tailscale sul tuo nodo Rocket Pool:

sudo apt-get update
sudo apt-get install tailscale

Infine, autentica e connetti la tua macchina alla tua rete Tailscale sul tuo nodo Rocket Pool:

sudo tailscale up

Sei connesso! Puoi trovare il tuo indirizzo IPv4 Tailscale eseguendo:

tailscale ip -4

Ora dovresti vedere la tua macchina nodo aggiunta al dashboard Tailscale. Puoi anche cambiare il nome della macchina nodo tramite il dashboard, ad es. in rocketnode.

Si suggerisce di disabilitare la scadenza della chiave per la macchina nodo per evitare la necessità di ri-autenticarsi periodicamente.

Nota

Se vorresti accedere al tuo nodo usando un hostname memorabile come rocketnode, puoi farlo abilitando MagicDNS nelle impostazioni di Tailscale.

Ora dovresti essere in grado di uscire dalla sessione SSH al tuo nodo sul tuo client con exit, e connetterti nuovamente al tuo nodo tramite SSH attraverso Tailscale usando ssh your.user@rocketnode.

NOTA

Se hai modificato la porta SSH della macchina nodo in /etc/ssh/sshd_config quando l'hai configurata per la prima volta, usa invece ssh your.user@rocketnode -p <tua porta>.

Ad esempio, se hai assegnato SSH alla porta 1234, faresti:

ssh your.user@rocketnode -p 1234

Ora puoi anche visitare http://rocketnode:3100 nel tuo browser web per accedere al tuo dashboard Grafana dal tuo client.

Se hai configurato UFW, ora puoi aggiungere una regola per accettare qualsiasi connessione SSH in entrata su Tailscale.

AVVISO

I seguenti passaggi modificheranno le tue regole del firewall. **Devi avere almeno 2 sessioni SSH aperte alla tua macchina nodo prima di procedere - una per modificare la configurazione e testarla dopo, e una che rimarrà connessa come backup nel caso in cui le tue modifiche rompano SSH così puoi ripristinarle!

Esegui questi comandi sulla macchina nodo.

Consenti l'accesso a tutte le connessioni ssh in entrata su Tailscale.

sudo ufw allow in on tailscale0

Puoi anche rimuovere l'accesso alla porta SSH aggiunta dai passaggi di abilitazione di un firewall per bloccare completamente il tuo nodo. Nota che non sarai in grado di accedere dalla rete locale poiché tailscale diventerà l'unico modo per accedere. Esegui il seguente comando solo se sei d'accordo con questo.

sudo ufw delete "22/tcp"

Una volta impostate le regole del firewall per limitare tutte le connessioni non-Tailscale, riavvia UFW e SSH:

sudo ufw reload
sudo service ssh restart

Ora, conferma che tutto funzioni come previsto. Esci da una delle tue sessioni SSH correnti con exit (ma ricorda di mantenere aperta la seconda come backup).

Successivamente, connettiti alla macchina nodo tramite SSH usando l'indirizzo IP Tailscale:

ssh your.user@rocketnode

Se funziona, hai fatto tutto correttamente e ora puoi accedere in modo sicuro alla tua rete domestica quando sei all'estero!

SUGGERIMENTO

Se in precedenza hai inoltrato la porta SSH del tuo nodo nel tuo router, ora puoi rimuoverla.