Exit-Nodes

Ein Exit-Node ist ein Gerät deines Netzes, das den Internetverkehr der anderen trägt. Im Café geht dein Laptop dann über deinen VPS ins Netz statt über das WLAN des Cafés.

Worum es geht

Normalerweise geht ein Gerät dort ins Internet, wo es gerade ist. Mit einem Exit-Node schickt es seinen Internetverkehr zuerst durch den Tunnel zu einem anderen Mitglied, einem Gerät, das zu deinem Netz gehört (So funktioniert juist). Dieses Mitglied schickt ihn weiter. Webseiten sehen dann die Adresse des Exit-Nodes, und das WLAN des Cafés sieht nur verschlüsselten Verkehr.

Zwei Schritte machen ein Gerät zum Exit-Node. Ein Admin, also eine Person, deren Schlüssel Änderungen am Netz bestätigt, gibt dem Gerät die Rolle exit. Eine Rolle ist eine Berechtigung, die das Netz für ein Gerät festhält. Dann stimmt der Operator des Geräts zu, mit juist exit serve auf dem Gerät. Der Operator ist der lokale Benutzer, der ein Gerät ohne sudo verwaltet.

Jedes Gerät entscheidet selbst, ob es einen Exit-Node nutzt. Auf einem Gerät ändert sich nichts, bis du dort juist exit use ausführst.

Einen Exit-Node einrichten

1auf dem Gerät eines Admins

Dem VPS die Rolle geben:

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

Zustimmen, den Internetverkehr des Netzes zu tragen:

juist exit serve

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

3auf laptop

Den Internetverkehr dieses Geräts über den VPS schicken:

juist exit use vps

Es gibt internet via vps aus. Wo systemd-resolved läuft, steht in juist status in der Zeile Exit node jetzt vps, DNS too.

Zurück im eigenen Netz schickt juist exit off den Verkehr wieder direkt und gibt internet direct aus.

Was hindurchgeht und was direkt bleibt

  • Verkehr zu öffentlichen Adressen im Internet geht über den Exit-Node.
  • DNS geht auch darüber, wo auf dem Gerät systemd-resolved läuft. Namen der eigenen Domain des LANs, etwa die deines Routers, werden weiter im LAN gefragt.
  • Dein LAN und die Geräte des Netzes bleiben direkt.
  • Antworten auf Verbindungen aus dem Internet, etwa auf ssh zu diesem Gerät, bleiben ebenfalls direkt. So ist das Gerät weiter unter seiner eigenen Adresse erreichbar.
  • juist exit use vps --isolate schickt 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 abgewiesen und nicht direkt gesendet. Das passiert, wenn er offline ist, nicht mehr bedient, seine Rolle verloren hat, oder wenn der Stand des Netzes auf diesem Gerät veraltet ist. DNS-Anfragen gehen dann nirgendwohin statt ins LAN. Ob du direkt ins Internet gehst, entscheidest du selbst, mit juist exit off.

Gut zu wissen

  • juist exit listet die Exit-Nodes, ob jeder bedient, und den, der genutzt wird.
  • juist exit use vps --force wählt vps, auch wenn er noch nicht bedient oder die Wahl deine ssh-Sitzung beenden würde.
  • juist exit serve --stop hört auf zu bedienen und macht die Einrichtung rückgängig. juist revoke vps exit auf dem Gerät eines Admins entzieht die Rolle.
  • Ein Gerät, das einen Exit-Node nutzt, ist selbst keiner. Ein Gerät in mehreren Netzen schickt das Internet nur durch eines davon.
  • Ein Exit-Node steht jedem Mitglied offen: Es gibt noch keine Zugriffsregeln (ACLs), die einschränken, wer ihn nutzen darf.
  • Eine von Hand eingerichtete Firewall auf dem Exit-Node muss UDP und TCP 41646 auf juist0 hereinlassen; dort beantwortet er das DNS seiner Mitglieder (Relays, Ports und Firewalls).
  • Unter FreeBSD arbeiten Exit-Nodes mit pf, und DNS geht über resolvconf.
  • Ein sauberer Stopp von juistd hebt das Abweisen auf. Während eines Neustarts des Dienstes geht der Verkehr also kurz direkt.

Wenn etwas nicht klappt

Du siehstWas zu tun ist
juist status: Exit node zeigt vps, internet refused: …vps wieder erreichbar machen, oder mit juist exit off direkt gehen
juist exit use vps: vps does not serve as an exit nodeauf vps juist exit serve ausführen, oder --force anhängen
auf vps, juist status: this device does not serve: IP forwarding is off on this hostjuist exit serve noch einmal ausführen; es richtet das mit sudo ein
warning: DNS goes to …, outside the tunnel: systemd-resolved refused juistddas Paket installieren; seine polkit-Regel erlaubt juistd das
warning: strict reverse-path filtering on … drops the exit node's answersdie Zeile sudo sysctl -w … ausführen, die der Hinweis ausgibt

Nach 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.