SSH server - nur von lokalem Netz erreichbar?


02.02.2024, 21:49

Die Lösung:

Wie es scheint war das Hauptproblem, dass bei der Auswahl des Geräts bei der Portweiterleitung im FritzBox-Menü diese zwar das richtige Gerät mit korrekter IPv4 Addresse angegeben hat, aber die (automatisch ausgefüllte) IPv6 Interface-ID nicht gestimmt hat.

Wenn jemand ein ähnliches Problem hat, dann solltet ihr eventuell mittels "ip -6 addr" (Befehl für Linux-Betriebssysteme) überprüfen, ob die Interface-ID der IPv6 Addresse, die dort an der angepeilten Schnittstelle aufgeführt wird, auch mit der in der FritzBox Portweiterleitungskonfiguration übereinstimmt und sie ggf abändern.

Die Interface-ID entspricht den letzten vier hexadezimal Gruppen (getrennt durch :) der IPv6 Addresse.

Dazu habe ich noch sichergestellt, dass privacy extensions auf dem Zielrechner deaktiviert ist, wobei das vermutlich gar nicht notwendig wäre.

tschaefer2023  31.01.2024, 08:50

Was für ein Router steht davor? Hast du DS-Lite?

AOMkayyy 
Fragesteller
 31.01.2024, 13:26

Ich habe eine FritzBox 7590, dementsprechend scheine ich DS-Lite zu haben. Kenne mich damit aber nicht wirklich aus, habe mich nur eben ganz kurz eingelesen.

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du musst am Router Port Forwarding einstellen. Ziel ist die IP des Notebooks, Port 22 TCP ist ssh.

Wenn du zu Hause keine feste IP hast, solltest du auch noch eine dynamisches DNS einrichten, damit du den Router von außen auch findest. Der sorgt dann dafür, das dein Router unter einem DNS-Namen erreichbar ist, egal welche IP der gerade hat.

Außerdem solltest du auch an das Absichern von SSH denken, wenn das dann weltweit erreichbar ist, also bestenfalls die Authentifikation nur per Key erlauben und Passwort abschalten.

Woher ich das weiß:Studium / Ausbildung – Informatiker
AOMkayyy 
Fragesteller
 30.01.2024, 21:37

Ich hatte vor den Server nur über einen Key erreichbar zu machen, sofern ich das Ganze zum laufen bekomme. Über DDNS hatte ich auch etwas gelesen, aber ich dachte mir auch da, dass das erstmal Zeit hat bis es mal im groben funktioniert.

Aktuell ist mein Server so konfiguriert, dass ListenAdress für jegliche IP gilt. Muss ich dann das SSH forwarding nur am Router konfigurieren oder gibt es dabei noch Einstellungen, welche in der sshd_config selbst getätigt werden müssten?

Danke für deine Antwort!

0
iQa1x  31.01.2024, 09:03
@AOMkayyy

DDNS und Port Forwarding am Router konfigurieren. Statt Port Forwarding kannst du auch einen VPN Zugang zu deinem Netz einrichten, das ist aber etwas komplizierter.

SSH Key kannst du einfach sss-keygen auf dem SuSE aufrufen und die .ssh/id_dsa.pub nach .ssh/authorized_keys umkopieren. Die .ssh/id_dsa (ohne pub) ist der private Schlüssel, der auf den Client muss.

In der sshd_config musst du dann (wenn der Login mit key geht) nur die Passwort-Authentifizierung abschalten, "PasswordAuthentication no".

1
AOMkayyy 
Fragesteller
 31.01.2024, 14:03
@iQa1x

Erstmal vielen Dank für die Antwort!

Also nur um darzustellen was ich alles gemacht habe:

Laut <sudo systemctl status sshd> ist mein ssh Server nach dem Booten sofort da

Die /etc/ssh/sshd_config ist konfiguriert mit

ListenAddress 0.0.0.0 (müsste dementsprechend für alle IPs gelten)
Port 22
PermitRootLogin no

Die Firewall habe ich mit folgenden Befehlen konfiguriert:

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd -- permanent --zone=public --add-port=22/tcp

Scheint auch so umgesetzt zu werden. Beim Router (FritzBox 7590) habe ich unter Freigaben > Portfreigaben meine Zielgerät ausgewählt und neue Freigaben für Port 22 erteilt (sowohl IPv4, als auch IPv6) und als Protokoll TCP ausgewählt. Weitere Einstellungen, wie selbstständige Portfreigaben oder Exposed Host habe ich nicht ausgewählt.

Bei den freigegebenen Ports steht auch jeweils eine Zelle mit dem Eintrag "IP-Addresse im Internet" dabei, jeweils für IPv4, als auch IPv6 (sind die selben wie in der Statusübersicht des Routers).

Mit denen habe ich die Verbindung versucht, es kam aber immer zu einem TimeOut. Habe danach noch wild alle möglichen anderen IP-Addressen ausprobiert, welche auch nur entfernt etwas mit der Verbindung zu tun haben, jedoch immer erfolglos.

Sobald ich es lokal versuche, funktioniert es immer reibungslos.

Einen Key habe ich noch nicht eingerichtet, wird aber das Erste sein was ich mache, sobald ich den Server einmal grundlegend zum laufen bekomme.

Hast du noch irgendwelche Ideen was die Fehlerquelle sein könnte bzw was ich noch machen könnte? Siehst du in meiner Konfiguration oder den Befehlen irgendwelche groben Fehler?

0
iQa1x  31.01.2024, 17:10
@AOMkayyy

Rufe mal Testweise aus deinem Netz wieistmeineip.de auf und vergleiche die IP mit der in der Fritzbox. Sind die verschieden, macht dein Provider selbst nochmal eine Adressübersetzung und du bist von außen nicht erreichbar. Zumindest nicht per IPv4. IPv6 sollte da aber eigentlich gehen. Da nimm aber bitte die IPv6 Adresse, die der Router bei der Portfreigabe anzeigt, nicht die IPv6 des Routers selbst, die sind ggf. verschieden, da du da ja ein ganzes Subnetz bekommst.

Deine Konfiguration sieht soweit gut aus, ich sehe da jetzt keinen Fehler. Firewall ist wahrscheinlich doppelt konfiguriert, eine von beiden Zeilen hätte gereicht, aber das schadet nicht.

1
AOMkayyy 
Fragesteller
 31.01.2024, 19:53
@iQa1x

Die IP Addresse die ich nach der Portfreigabe meistens versucht habe war die öffentliche IPv4 und IPv6 Addresse meines Routers. Das ist auch die Selbe die bei der Portaddresse als "IP im Internet" angezeigt wird, zumindest bei IPv4. Bei IPv6 sind die Addressen bei "IP Addresse im Internet" und der IP Addresse des Routers, welche auf der Statusseite der FritzBox angezeigt wird, unterschiedlich. Ich habe aber natürlich alle versucht.

Dazu kommen auch noch die öffentliche IPv4/IPv6 Addresse meines Computers selbst, die ich mittels What's my IP address abgerufen habe. Die Öffentliche des PCs wird mir nicht auf der FritzBox angezeigt, zumindest habe ich die auf die Schnelle nicht gefunden, bei der FritzBox sehe ich hauptsächlich die lokale IP meines Geräts. Ich habe IPv4/IPv6 beide versucht, aber eigentlich müssten das auch die falschen Adressen sein, oder? Sobald ich Port Forwarding verwende muss ich doch meinen FritzBox anfunken? Nichts destotrotz, beides versucht, beides fehlgeschlagen.

-network is unreachable (bei der IPv6 im Internet des Ports)

-connection refused (bei öffent. IPv6 meines Geräts, IPv6 meines Routers)

-connection timed out (bei IPv4 des Routers/Ports und öffentl IPv4 meines Geräts)

Ich habe so langsam keine Ahnung mehr was der Fehler sein könnte, ich bastel schon 3 Tage an einem einfachen SSH server rum, so schwer kann das doch nicht sein.

0
iQa1x  01.02.2024, 08:23
@AOMkayyy

IPv4: Wenn Whats My IP eine andere Adresse als die Fritzbox anzeigt (Die Fritzbox IP ist dann oft aus 100.64.0.0/10), dann macht dein Provider Carrier Grade NAT und du hast keine Chance, über IPv4 von außen auf deine Fritzbox /ssh zuzugreifen.

IPv6: Ich habe eigentlich noch nie gehört, dass Provider das auch bei IPv6 machen, habe aber selbst keine Erfahrung damit. Wenn du Whats my IP von dem SuSE aus aufrufst (curl -6 icanhazip.com), sollte die IP, die angezeigt wird, zu dem Präfix passen, dass die Fritzbox anzeigt. dann müsste es mit dieser IP aber auch von Außen gehen. Füge der sshd_config sicherheitshalber nochmal explizit eine Zeile "ListenAddress ::" hinzu, ich bin mir nicht sicher, ob 0.0.0.0 nur für IPv4 gilt. ssh dann neustarten.

1
AOMkayyy 
Fragesteller
 01.02.2024, 19:46
@iQa1x

Stimmt, sie hatten alle den selben IPv6 Prefix und das mit NAT erklärt bzgl der IPv4 auch einiges. Leider habe ich es bisher immer noch nicht hinbekommen. Hab auch einen Wechsel des Ports versucht und in der sshd_config ListenAddress 0.0.0.0 durch ListenAddress :: ersetzt, jedoch vergeblich.

Vermutlich mache ich irgendeinen dummen Fehler oder es ist irgendeine eigenartige Einstellung die irgendwo zwischen Gerät, Router, ISP, mobilem Handynetz und Tablet verborgen liegt. Ich komme aber leider nicht drauf.

Dennoch vielen Dank für die ausgiebige Unterstützung!

0
AOMkayyy 
Fragesteller
 02.02.2024, 21:59
@iQa1x

Ich hab mich jetzt doch nochmal drangewagt und das Problem lösen können. Dieses war wie erwartet absolut idiotisch (aber für mich auch nicht einfach, weil ich mich mit Netzwerkstrukturen und der Organisation von IPs null auskenne [bzw. ausgekannt habe]).

Hab die Frage um die Antwort ergänzt, aber tl;dr: Die Fritz.Box hatte bei der automatisch ausgefüllten IPv6 Interface-ID für die Konfiguration der Portweiterleitung einen Fehler.

Immerhin habe ich mich jetzt stundenlang mit Netzwerken auseinandergesetzt und bin dahingehend schlauer als zuvor.

Dir nochmal vielen Dank für die Unterstützung!

0

Um Dein Heimnetzwerk und damit auch Deine SSH Sitzung unterwegs verfügbar zu machen, bietet sich ein VPN an. Dieser baut von unterwegs eine gesicherte Verbindung über das Internet zu Deinem Heimnetzwerk Zuhause auf.

Eine SSH Sitzung im Internet verfügbar zu machen ist nämlich keine gute Idee.

Hier spielen einige Dinge mit rein, dass Verbindung per VPN am Ende aufgebaut werden kann.

  • Private Internetanschlüsse wechseln zumeist alle 24h durch eine Zwangstrennung des Providers die IP-Adresse.

Um diesen Problem entgegenzuwirken wird ein DynDNS Dienst benötigt, der als Software installiert (bspw. auf Deinem Notebook) periodisch Deine öffentliche IP abfragt und diese beim jeweiligen DynDNS Dienst aktualisiert.

  • Private Internetanschlüsse haben oftmals kein reines IPv4 mehr, hier kommt DS-Lite (Dual Stack Lite) ins Spiel. Du teilst Dir mit anderen Kunden die gleiche öffentliche IPv4 Adresse, erst im internen Netz Deines Providers wird weitergeroutet.

Dieses Problem lässt sich mit Portmappern lösen. Hier eine Anlaufstelle: https://www.feste-ip.net/

Das Ganze auch noch auszuführen endet sonst in einem Roman.

  • Dein Router muss eine Firewall-Regel hinterlegt bekommen, welche den Port für den VPN Server freischaltet.

Je nach gewählten VPN Protokoll ändert sich sowohl TCP als auch UDP und Port. Wenn auch meistens UDP verwendet wird.

Als zweite und wahrscheinlich sinnvollere Variante würde sich TeamViewer anbieten. Mit fest hinterlegten Zugangsdaten kannst Du Dein Notebook von unterwegs über TeamViewer steuern.

https://www.teamviewer.com/de/

AOMkayyy 
Fragesteller
 30.01.2024, 21:27

Vielen Dank für die ausführliche Antwort!

Ich werde mich mal in diese Optionen einlesen und schauen ob ich damit weiterkomme.

0
DebugDoktor  30.01.2024, 21:27
@AOMkayyy

Sehr gerne. Bei Fragen gerne nochmal hier melden und ich versuche sie zu beantworten.

1
julihan41  31.01.2024, 16:10

FS benutzt Fritz!Box und das hat einen integrierten DynDNS-Dienst, den man aber erst aktivieren muss.

0