Exit-Nodes

Ein Exit-Node ist ein Gerät in deinem Netz, über das die anderen ins Internet gehen. Im Café geht dein Laptop dann über deinen VPS ins Internet statt über das WLAN des Cafés.

So funktioniert es #

Normalerweise geht ein Gerät dort ins Internet, wo es sich gerade befindet. Mit einem Exit-Node schickt es seinen Internetverkehr zuerst durch den Tunnel zu einem anderen Mitglied deines Netzes, und das leitet ihn weiter. Webseiten sehen dann die Adresse des Exit-Nodes, und das WLAN des Cafés sieht nur verschlüsselten Verkehr.

Ein Gerät wird in zwei Schritten zum Exit-Node. Zuerst gibt ein Admin dem Gerät die Rolle exit. Dann stimmt der Operator des Geräts zu, indem er dort juist exit serve ausführt.

Ob ein Gerät einen Exit-Node nutzt, entscheidet es selbst. Solange du auf einem Gerät nicht juist exit use ausführst, ändert sich dort nichts.

Einen Exit-Node einrichten #

1auf dem Gerät eines Admins

Gib dem VPS die Rolle:

juist grant vps exit

Braucht eine Änderung mehr als einen Admin, wartet sie auf die anderen (wie Änderungen bestätigt werden).

2auf vps, dem Exit-Node

Stimm zu, den Internetverkehr des Netzes weiterzuleiten:

juist exit serve

Beim ersten Mal fragt der Befehl, ob er ein Einrichtungsskript mit sudo ausführen darf. Das Skript schaltet IP-Forwarding ein und lässt den weitergeleiteten Verkehr durch die Firewall. Danach erscheint serving as an exit node.

3auf laptop

Leite den Internetverkehr dieses Geräts über den VPS:

juist exit use vps

Die Ausgabe lautet internet via vps. juist status zeigt in der Zeile Exit node jetzt vps, DNS too.

Bist du wieder in deinem eigenen Netz, leitet juist exit off den Verkehr wieder direkt ins Internet und gibt internet direct aus.

Was über den Exit-Node läuft #

  • Verkehr zu öffentlichen Adressen im Internet geht über den Exit-Node.
  • Auch DNS geht darüber, außer juist set --dns=false hat es abgeschaltet. Wo systemd-resolved läuft, werden Namen aus der eigenen Domain des LANs, etwa der deines Routers, weiterhin im LAN aufgelöst.
  • Verkehr in dein LAN und zu den Geräten des Netzes geht weiter direkt.
  • Auch Antworten auf Verbindungen aus dem Internet, etwa auf eine ssh-Sitzung zu diesem Gerät, gehen direkt. So bleibt das Gerät unter seiner eigenen Adresse erreichbar.
  • Mit juist exit use vps --isolate gehen auch diese Antworten über den Exit-Node. Der Befehl bricht ab, wenn das die ssh-Sitzung beenden würde, in der du ihn ausführst.

Wenn der Exit-Node nicht nutzbar ist #

Kann der gewählte Exit-Node nicht genutzt werden, wird der Internetverkehr blockiert und nicht direkt verschickt. Das passiert, wenn der Exit-Node offline ist, seinen Dienst eingestellt oder seine Rolle verloren hat, oder wenn der Stand des Netzes auf diesem Gerät veraltet ist. DNS-Anfragen gehen dann ins Leere statt ins LAN. Ob du wieder direkt ins Internet gehst, entscheidest du selbst: mit juist exit off.

Wird juistd ordentlich beendet, hebt es die Blockade auf. Während eines Neustarts geht der Verkehr also kurz direkt ins Internet.

Gut zu wissen #

  • juist exit listet die Exit-Nodes auf und zeigt, ob sie jeweils bereitstehen und welcher gerade genutzt wird.
  • juist exit use vps --force wählt vps auch dann, wenn er noch nicht bereitsteht oder die Wahl deine ssh-Sitzung beenden würde.
  • juist exit serve --stop beendet den Dienst und macht die Einrichtung rückgängig. Mit juist revoke vps exit entzieht ein Admin auf seinem Gerät die Rolle wieder.
  • Ein Gerät, das einen Exit-Node nutzt, kann nicht selbst einer sein. Ein Gerät in mehreren Netzen leitet seinen Internetverkehr nur über eines davon.
  • Ohne Zugriffsregeln darf jedes Mitglied einen Exit-Node nutzen. Mit Zugriffsregeln nutzt ein Gerät nur die Exit-Nodes, die ihm eine Regel wie pass from laptop to internet via vps erlaubt, und der Exit-Node leitet nur diesen Verkehr weiter.
  • Hast du die Firewall des Exit-Nodes von Hand eingerichtet, muss sie UDP und TCP 41646 auf juist0 durchlassen. Dort beantwortet der Exit-Node die DNS-Anfragen seiner Mitglieder (Relays, Ports und Firewalls).
  • Läuft auf dem Exit-Node auch Tailscale, beantwortet er das DNS seiner Mitglieder über die normalen DNS-Server des Rechners, nie über den Resolver von Tailscale.
  • Unter FreeBSD arbeiten Exit-Nodes mit pf, und DNS läuft über resolvconf.

Fehlersuche #

Was du siehstWas du tun kannst
juist status: Exit node zeigt vps, internet refused: …Mach vps wieder erreichbar, oder geh mit juist exit off direkt ins Internet.
juist exit use vps: vps does not serve as an exit nodeFühre auf vps juist exit serve aus, oder häng --force an.
juist status: Exit node zeigt vps, internet refused: the access policy does not let this device use itErgänze eine Regel pass from … to internet via vps (Zugriffsregeln).
auf vps, juist status: this device does not serve: IP forwarding is off on this hostFühre juist exit serve noch einmal aus, es richtet das mit sudo ein.
juist health: warning: DNS goes to …, outside the tunnel: systemd-resolved refused juistdInstalliere juist als Paket, dessen polkit-Regel juistd das erlaubt, und installiere polkit.
juist health: warning: strict reverse-path filtering on … drops the exit node's answersFühre die Zeile sudo sysctl -w … aus dem Hinweis aus.
auf vps, juist health: warning: members' DNS is not answered here: …Sieh dir den Grund an, etwa ein anderes Programm auf Port 41646; juistd versucht es alle 30 Sekunden erneut.

Hinter internet refused: nennt der Status den Grund, etwa it cannot be reached, its operator has not agreed to serve oder the network has not made it an exit node.