Das Homelab im Internet

Dein Anbieter gibt dir keine öffentliche IPv4-Adresse, oder du willst zu Hause keinen Port öffnen. Ein kleiner VPS in deinem Netz nimmt die Verbindungen für docs.example.org an und reicht sie durch den Tunnel an dein NAS weiter, wo TLS endet.

Was du bekommst #

docs.example.org lässt sich in jedem Browser öffnen, und das NAS zu Hause liefert die Seite aus. Das NAS baut die Verbindung zum VPS selbst auf, dein Router öffnet also keinen Port, und seine Adresse steht in keinem öffentlichen DNS-Eintrag. Der VPS, der Ingress, liest nur den Namen, den ein Browser anfragt, und reicht die Verbindung weiter. TLS endet erst auf dem NAS, mit einem Zertifikat von Let’s Encrypt, der Ingress sieht den Inhalt also nie.

Mitglieder des Netzes gehen nicht über den Ingress, sondern erreichen den Namen direkt am NAS, durch den Tunnel.

Was du brauchst #

  • Eine Domain, hier example.org, und Zugriff auf ihre DNS-Einträge.
  • Einen VPS mit öffentlicher Adresse unter Linux oder FreeBSD, der Mitglied des Netzes ist. Öffne dort 41643/udp, mit sudo ufw allow juist, damit sich das NAS direkt mit ihm verbindet (Ports).
  • Das NAS unter Linux oder FreeBSD, mit dem Dienst auf einem lokalen Port, hier 127.0.0.1:8080.

Einrichten #

1auf dem Gerät eines Admins

Leg die Domain des Netzes fest und mach den VPS zum Ingress:

juist network domain example.org
juist grant vps ingress
2auf der Website deines DNS-Anbieters

Lass *.example.org auf die öffentliche Adresse des VPS verweisen, oder nur docs.example.org.

3auf vps, der Ingress
juist ingress serve

Der Befehl fragt einmal nach sudo, startet den Ingress und öffnet 443 und 80 in firewalld oder ufw.

4auf nas, dem Ziel

Veröffentliche den Namen, mit HTTP/3 für Browser, die es können:

juist publish add docs 127.0.0.1:8080 --http3

Die Ausgabe lautet ending TLS for docs.example.org to 127.0.0.1:8080, with HTTP/3. Danach folgen zwei DNS-Einträge für deinen DNS-Anbieter. Mit dem HTTPS-Eintrag beginnen Browser gleich mit HTTP/3. Der CAA-Eintrag bindet die Zertifikate des Namens an das ACME-Konto dieses Geräts.

Darauf achten #

  • Trag den CAA-Eintrag ein. Ohne ihn könnte sich, wer den Ingress kontrolliert, ein Zertifikat für deinen Namen holen und den Verkehr von Besuchern aus dem Internet mitlesen.
  • Ein veröffentlichter Server erreicht nach einem Einbruch dein Netz. Das NAS ist ein vollwertiges Mitglied. Veröffentliche von dort nur, was du ohnehin ins Internet stellen würdest, und betreibe alles andere als Service-Mitglied, von dem kein Gerät Verbindungen annimmt.
  • Der Ingress sieht den Namen, die Adresse des Clients, Datenmengen und Zeitpunkte und protokolliert jede Verbindung in einer Zeile.
  • Veröffentlichen ist eine Änderung der Admins. Hat das NAS keinen Admin-Schlüssel, nennt der Befehl den, den ein Admin ausführt.

Weiterlesen #