Hallo,
ich habe ein merkwürdiges phänomen: Ich kann mich auf meinem entfernten PC (PC-fern) nicht über mein PC von zuhause (PC-heim) via SSH einloggen.
Grundsätzlich ist es aber möglich sich auf dem PC-fern mit meinem account anzumelden.
zur strucktur:
* PC-fern befindet sich hinter einem router und betreffende Ports werden weitergeleitet. SSH verbindung mit meinem android smartphone via umts (nicht wlan) funktioniert auch.
* PC-heim befindet sich ebenfalls hinter einem router, den habe ich aber aus einem ausgedienten PC selbst gebaut.
wenn ich mit meinem android von außen (umts) verbinde, dann funktioniert es.
wenn ich mich jedoch von meinem android vom WLAN zuhause verbinden will, funktioniert das auch nicht.
Das WLAN und mein PC-heim befinden sich im selben netz. und da es ja über umts funktioniert, muß das problem in meinem Heimnetz liegen.
nur weiß ich nicht wo ich anfangen soll zu suchen?
*nachtrag*
auf meinem linux-router zu hause läuft ebenfalls ein sshd. nun ist mir gerade aufgefallen, das wenn ich von PC-heim in
der konsole "ssh url_PC-fern -l user_des_linux_router" eingebe und dann das dazu passende passwort, dann "funktioniert" der login und ich bin local auf meinem heim router. obwohl ich die url des PC-fern eingegeben habe.
nslookup liefert mir ja die ip zur url und diese ist nicht lokal sondern wirklich außerhalb (87.x.x.x). das selbe tritt auch auf, wenn ich statt der url die ip eingebe. dann bin ich trotzdem lokal auf dem router..!?!
anbei zeige ich euch mal die iptables des routers betreffend SSH:
iptables -A INPUT -p tcp --dport 22 -i $IF_LAN -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 2022 -j DNAT --to 192.168.243.1:22
iptables -A INPUT -p tcp -d 192.168.243.1 --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 11000:11200 -j DNAT --to 192.168.243.1:11000-11200
iptables -A INPUT -p tcp -d 192.168.243.1 --dport 11000:11200 -j ACCEPT
was muß ich ändern, damit ich im LAN port 22 und von außen port 2022 meinen linux-router erreiche
und ich im LAN jeden anderen SSH-server außen auch erreichen kann?
ich bedanke mich schon mal im voraus...
SSH verbindungs problem
- Stratovarius
- Beiträge: 297
- Registriert: 07.04.2004 13:00:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 53° 27' 20,31'' N 9° 57' 29,31'' E
-
Kontaktdaten:
Re: SSH verbindungs problem
Moin moin
SSH nimmt es sehr übel wenn du den Port durch einen Router verbiegen willst (Sicherheitsrisiko). Oder hast du dich da vielleicht nur verschrieben (2022 auf 22) ?
Ein Beispiel:
Du hast 3 Rechner hinter einem Linux-Router und willst alle von außen per ssh erreichen. Wenn du jetzt per Port 22 kommst, dann weiß der Router nicht an welchen PC er weiterleiten soll (bzw. nimmt es selbst entgegen). Also machst du für alle 3 Rechner (inkl. des Routers) eine Weiterleitung auf einem anderen Port und lässt die entsprechenden Rechner nur auf diesen Port lauschen.
Rechner 1: 192.168.1.2 : 2022 - iptables -t nat -A PREROUTING -p tcp --dport 2022 -j DNAT --to 192.168.1.2:2022
Rechner 2: 192.168.1.3 : 2023 - iptables -t nat -A PREROUTING -p tcp --dport 2023 -j DNAT --to 192.168.1.3:2023
Rechner 3: 192.168.1.4 : 2024 - iptables -t nat -A PREROUTING -p tcp --dport 2024 -j DNAT --to 192.168.1.4:2024
Router: 192.168.1.1 : 2021
Diese Ports trägst du in den Configs der Rechner ein, startest ssh neu und solltest dann mit "ssh -p 2023 öffentliche_IP" direkt auf Rechner 2 landen. Innerhalb des LAN musst du die Ports natürlich auch angeben.
Da ich von iptables nicht sooo viel Plan habe, kann ich dir aber nicht sagen wie es von innen nach außen geht, bzw. wie der Router von außen erreichbar ist - da muss jemand anders übernehmen ...
Hoffe schon mal ein bisschen geholfen zu haben
Gruß Strato
SSH nimmt es sehr übel wenn du den Port durch einen Router verbiegen willst (Sicherheitsrisiko). Oder hast du dich da vielleicht nur verschrieben (2022 auf 22) ?
Wenn du einen anderen Port als 22 nutzen willst (was bei mehreren PCs im LAN mit NAT Sinn macht), dann musst du die Ports auch auf den einzelnen Rechnern entsprechend einstellen (/etc/ssh/sshd_config)iptables -t nat -A PREROUTING -p tcp --dport 2022 -j DNAT --to 192.168.243.1:22
Ein Beispiel:
Du hast 3 Rechner hinter einem Linux-Router und willst alle von außen per ssh erreichen. Wenn du jetzt per Port 22 kommst, dann weiß der Router nicht an welchen PC er weiterleiten soll (bzw. nimmt es selbst entgegen). Also machst du für alle 3 Rechner (inkl. des Routers) eine Weiterleitung auf einem anderen Port und lässt die entsprechenden Rechner nur auf diesen Port lauschen.
Rechner 1: 192.168.1.2 : 2022 - iptables -t nat -A PREROUTING -p tcp --dport 2022 -j DNAT --to 192.168.1.2:2022
Rechner 2: 192.168.1.3 : 2023 - iptables -t nat -A PREROUTING -p tcp --dport 2023 -j DNAT --to 192.168.1.3:2023
Rechner 3: 192.168.1.4 : 2024 - iptables -t nat -A PREROUTING -p tcp --dport 2024 -j DNAT --to 192.168.1.4:2024
Router: 192.168.1.1 : 2021
Diese Ports trägst du in den Configs der Rechner ein, startest ssh neu und solltest dann mit "ssh -p 2023 öffentliche_IP" direkt auf Rechner 2 landen. Innerhalb des LAN musst du die Ports natürlich auch angeben.
Da ich von iptables nicht sooo viel Plan habe, kann ich dir aber nicht sagen wie es von innen nach außen geht, bzw. wie der Router von außen erreichbar ist - da muss jemand anders übernehmen ...
Hoffe schon mal ein bisschen geholfen zu haben
Gruß Strato