Homeserver SSH Zugriff über Tor Hidden Service

Wer einen Homeserver betreibt und diesen gerne von unterwegs über SSH erreichen will, kann sich entweder mit wechselnden IP Adressen und Port Forwarding herumschlagen, oder aber einfach einen Tor Hidden Service aufsetzen :slight_smile:

Ich setze voraus, dass du bereits SSH eingerichtet hast und der Zugriff im lokalen (Heim)Netzwerk ohne Probleme funktioniert. Falls nicht, wäre hier eine passende Anleitung dafür: SSH › Wiki › ubuntuusers.de

Schritt 1: ufw konfigurieren
Weil SSH nach dem Tutorial öffentlich über die Tor Adresse erreichbar ist, bietet es sich an die Firewall so zu konfigurieren, dass Anmeldeversuche limitiert werden. Dazu einfach die folgenden Befehle verwenden:

ufw enable
ufw limit 22

Schritt 2: Tor installieren
sudo apt install tor

Schritt 3: Tor konfigurieren
Nun muss die Datei /etc/tor/torrc mit dem Editor deiner Wahl angepasst werden (ich nutze nano)
Im Abschnitt

############### This section is just for location-hidden services ###

muss folgender Inhalt eingefügt werden:

HiddenServiceDir /var/lib/tor/ssh/
HiddenServicePort 22 127.0.0.1:22

Anschließend Tor mit sudo service tor restart neustarten.

Schritt 4: Tor Adresse auslesen
Nach dem Neustart von Tor werden automatisch alle benötigten Schlüssel und Dateien in dem /var/lib/tor/ssh/Verzeichnis angelegt. Um von außen auf den SHH Server zuzugreifen brauchen wir nur noch die .onion Tor Adresse. Diese erhalten wir aus dieser Datei:

sudo cat /var/lib/tor/ssh/hostname
foobarvkiwibfiwucd6vxijskbhpjdyajmzeor4mc4i7yopvpo4p7cyd.onion

Schritt 5: Verbinden von anderem Computer
Auf dem Computer, von dem du die SSH Verbindung aufbauen willst, muss dann natürlich auch Tor installiert sein. Läuft das und ist verbunden, kannst du nun mit dem Befehl:

ssh -o ProxyCommand="ncat --proxy-type socks5 --proxy 127.0.0.1:9050 %h %p" sshuser@foobarvkiwibfiwucd6vxijskbhpjdyajmzeor4mc4i7yopvpo4p7cyd.onion

eine Verbindung aufbauen :slight_smile:

16 „Gefällt mir“

1A Basti! :+1:

1 „Gefällt mir“

Das klappt. :+1:
Funktioniert das auch für VNC oder gar RDP?

In der Theorie spricht nichts dagegen. In der Praxis könnte allerdings die mäßige Geschwindigkeit dafür sorgen, dass die Bedienung „keinen Spaß“ macht. Außerdem sollte man (wie auch bei SSH) darauf achten eine sichere Authentifizierung zu nutzen. Bei SHH geht das mit Private Keys ziemlich easy. Ob und wie gut VNC und RDP das unterstützen, kann ich gerade nicht sagen.

Danke dafür!

Nur eine Nachfrage: Wäre es nicht sinnvoller bei relativ sicherer Adresse (onion), nicht auch den gemappten (Standard-)Port zu verändern?

Klar, mehr Sicherheit ist immer gut. Es spricht absolut nichts dagegen den SSH Port zu ändern.

Hi ich habe über die Anleitung versucht mir die Möglichkeit einzurichten von Remote auf meinen RaspiBlitz zuzugreifen.
Leider hat es nicht funktioniert.
Ich habe alles nach Anleitung eingerichtet. Wenn ich mich dann von einem anderem Netzwerk mit dem „ssh -o ProxyCommand…“ Befehl übers Cmd einloggen will kommt folgende Fehlermeldung:

CreateProcessW failed error:2
posix_spawnp: No such file or directory

Was mach ich falsch?

Deine Beschreibung klingt als würdest du Windows nutzen. Der SSH Client von Windows hat eventuell andere Parameter oder unterstützt das Tunneln vielleicht auch gar nicht. Was aber gehen sollte, ist Folgendes:

Damit sollte es dann klappen :slight_smile:

2 „Gefällt mir“

Hi Basi,

danke für deine Antwort.
Ich habe die von dir beschriebenen Schritte durchgeführt und hänge noch in der Putty-Konfiguration.

Ich habe Putty wie in der Anleitung „Putty - Wiki …“ beschrieben konfiguriert und anschließend muss man zwei Command Lines im Terminal eingeben. dort hänge ich fest.

  1. Muss ich die Command Lines im Terminal des Servers auf dem ich zugreifen will eingeben?
  2. Nutze ich in der Command Line anstelle von [email protected] meine Raspiblitz IP (admin@192…)?

Ich hoffe meine Fragen sind nicht allzu abwägig. Ich bin noch realtiv neu in der Thematik.

Der Punkt mit den Command Line Tools ist komplett optional/überflüssig :wink:

Bei Session im Feld Host Name muss auf jeden Fall deine Tor Adresse rein und nicht die lokale IP mit 192

Außerdem ist mir noch folgender Punkt aufgefallen: In der Proxy Konfiguration tragen die unten einen Telnet Command ein. Es könnte sein dass das falsch ist bzw. nicht benötigt wird. Fall es also nicht klappt, versuch mal den Eintrag in dem Feld zu entfernen.

Hi Basti,

ich habe im Reiter „Session“ im Feld „Host Name“ meine .Onion Adresse rein, welche ich vorher ermittelt hatte.

Nun öffnet sich auch ein Terminal, wenn ich meine Einstellungen im Putty lade und unten auf „open“ gehe.

Leider kommt dann nach kurzer Zeit folgende Fehlermeldung:
Network error: Connection refused

Bin etwas radlos.

Hast du noch einen Tipp oder Hilfestellung für mich?

Danke

1 „Gefällt mir“

Hatte gerade das gleiche Problem. Das Umstellen des Ports auf 9150 statt 9050 hat es behoben.
„When Tor runs as an installed application instead of a background process it uses port 9150.“

1 „Gefällt mir“

Vielen Dank für die gute Anleitung, hat danach auf Anhieb geklappt.

Den Punkt:

finde ich so noch einfacher:

torify ssh [email protected]

Gibt von Einundzwanzig auch eine sehr schöne Video-Anleitung dazu: