Konfigurieren eines Tailscale-VPN-Servers

HINWEIS

Dies ist optional. Sie müssen diesen Abschnitt nur berücksichtigen, wenn Sie einen Node zu Hause betreiben und sich von außerhalb Ihres Heimnetzwerks damit verbinden möchten.

Wenn Sie sich aus der Ferne in Ihr Heimnetzwerk einloggen möchten, beispielsweise im Urlaub oder auf Geschäftsreise, ist der gängigste Weg die Nutzung eines Virtual Private Network-Servers. Dies ermöglicht es Ihnen, sich per SSH mit Ihrem Node zu verbinden und Ihr Grafana-Dashboard von überall auf der Welt zu überwachen, und das alles ohne Ihren SSH-Port dem Internet auszusetzen.

Viele Rocket Pool Node-Betreiber nutzen Tailscale als ihren VPN-Server der Wahl. Tailscale ist ein Open-Source-P2P-VPN-Tunnel und gehosteter Endpunkt-Discovery-Service. Es kümmert sich um Authentifizierung, Veröffentlichung und die NAT-Traversierung, die erforderlich ist, um einen Ende-zu-Ende-verschlüsselten Pfad zwischen Ihrer Maschine und Ihrem Node herzustellen, ohne sensiblen Traffic an einen zentralisierten Server zu senden. Es ist ein sehr mächtiges Tool.

Wir werden kurz eine Basiskonfiguration behandeln, aber Sie können gerne deren Dokumentation durchsehen für weitere Details.

Tailscale einrichten

Erstellen Sie zunächst ein kostenloses Tailscale-Konto. Tailscale erfordert die Nutzung eines SSO-Identitätsanbieters wie Google, GitHub, Okta, Microsoft usw. Für Details besuchen Sie deren SSO-Seite.

Es wird empfohlen, dass Sie 2FA (Zwei-Faktor-Authentifizierung) bei dem von Ihnen gewählten Identitätsanbieter für zusätzliche Sicherheit aktivieren.

Folgen Sie als Nächstes deren Onboarding-Anleitung, um Tailscale auf Ihrem Client zu installieren - die Maschine, mit der Sie sich mit Ihrem Netzwerk verbinden möchten. Dies könnte beispielsweise ein Laptop oder Ihr Telefon sein. Beachten Sie, dass dies nicht Ihr Rocket Pool Node ist!

Nach Abschluss sollten Sie Ihren Computer als 'verbunden' im Tailscale-Dashboard sehen.

Installieren Sie nun Tailscale auf Ihrem Rocket Pool Node. Sie finden Anleitungen dafür auf deren Website; hier sind beispielsweise die Installationsanweisungen für Ubuntu.

HINWEIS

Wenn Sie UFW konfiguriert haben, möchten Sie auch die UFW-Konfigurationsanweisungen befolgen.

Fügen Sie zunächst den Paket-Signaturschlüssel und das Repository von Tailscale auf Ihrem Rocket Pool Node hinzu:

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

Installieren Sie nun Tailscale auf Ihrem Rocket Pool Node:

sudo apt-get update
sudo apt-get install tailscale

Authentifizieren Sie sich schließlich und verbinden Sie Ihre Maschine mit Ihrem Tailscale-Netzwerk auf Ihrem Rocket Pool Node:

sudo tailscale up

Sie sind verbunden! Sie können Ihre Tailscale-IPv4-Adresse finden, indem Sie Folgendes ausführen:

tailscale ip -4

Sie sollten nun Ihre Node-Maschine im Tailscale-Dashboard hinzugefügt sehen. Sie können auch den Namen der Node-Maschine über das Dashboard ändern, z.B. in rocketnode.

Es wird empfohlen, den Schlüsselablauf zu deaktivieren für die Node-Maschine, um die Notwendigkeit einer regelmäßigen erneuten Authentifizierung zu vermeiden.

Hinweis

Wenn Sie auf Ihren Node mit einem einprägsamen Hostnamen wie rocketnode zugreifen möchten, können Sie dies tun, indem Sie MagicDNS in den Tailscale-Einstellungen aktivieren.

Sie sollten nun in der Lage sein, die SSH-Sitzung zu Ihrem Node auf Ihrem Client mit exit zu beenden und sich erneut über Tailscale mit ssh your.user@rocketnode in Ihren Node einzuloggen.

HINWEIS

Wenn Sie den SSH-Port der Node-Maschine in /etc/ssh/sshd_config bei der ersten Konfiguration geändert haben, verwenden Sie stattdessen ssh your.user@rocketnode -p <Ihr Port>.

Wenn Sie SSH beispielsweise Port 1234 zugewiesen haben, würden Sie Folgendes tun:

ssh your.user@rocketnode -p 1234

Sie können nun auch http://rocketnode:3100 in Ihrem Webbrowser besuchen, um von Ihrem Client auf Ihr Grafana-Dashboard zuzugreifen.

Wenn Sie UFW konfiguriert haben, können Sie jetzt eine Regel hinzufügen, um alle eingehenden SSH-Verbindungen über Tailscale zu akzeptieren.

WARNUNG

Die folgenden Schritte werden Ihre Firewall-Regeln ändern. **Sie müssen mindestens 2 SSH-Sitzungen zu Ihrer Node-Maschine geöffnet haben, bevor Sie fortfahren - eine zum Ändern der Konfiguration und zum anschließenden Testen, und eine, die als Backup eingeloggt bleibt, falls Ihre Änderungen SSH unterbrechen, damit Sie sie rückgängig machen können!

Führen Sie diese Befehle auf der Node-Maschine aus.

Erlauben Sie den Zugriff auf alle eingehenden SSH-Verbindungen über Tailscale.

sudo ufw allow in on tailscale0

Sie können auch den Zugriff auf den SSH-Port aus den Firewall aktivieren-Schritten entfernen, um Ihren Node vollständig abzusichern. Beachten Sie, dass Sie sich nicht mehr aus dem lokalen Netzwerk anmelden können, da Tailscale zur einzigen Login-Möglichkeit wird. Führen Sie den folgenden Befehl nur aus, wenn Sie damit einverstanden sind.

sudo ufw delete "22/tcp"

Sobald Sie Firewall-Regeln eingerichtet haben, um alle Nicht-Tailscale-Verbindungen zu beschränken, starten Sie UFW und SSH neu:

sudo ufw reload
sudo service ssh restart

Bestätigen Sie nun, dass alles wie erwartet funktioniert. Beenden Sie eine Ihrer aktuellen SSH-Sitzungen mit exit (aber denken Sie daran, die zweite als Backup geöffnet zu lassen).

Verbinden Sie sich als Nächstes per SSH mit der Node-Maschine über die Tailscale-IP-Adresse:

ssh your.user@rocketnode

Wenn es funktioniert, haben Sie alles richtig gemacht und können sich nun sicher in Ihr Heimnetzwerk einloggen, während Sie unterwegs sind!

TIPP

Wenn Sie zuvor den SSH-Port Ihres Nodes in Ihrem Router weitergeleitet haben, können Sie dies jetzt entfernen.