ssh extern erreichbar machen

thorsten.rehm

Neuer User
Mitglied seit
7 Apr 2009
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Servus,

ich hab mir schon ein paar Tutorials durchgelesen, welche mir auch geholfen haben ssh überhaupt auf meiner FritzBox 7270 einzurichten, aber ich bekomme das nicht ganz hin mit den forwardrules. Ich weiß das ich die ar7.cfg anpassen muss, aber die Frage ist wo? Wenn ich nach forwardrules suchen lasse, findet er keinen passenden Eintrag.

Ich hänge so am Internet:
PC -> FritzBox -> Thomson Kabelmodem -> Kabel Deutschland.

Das Kabelmodem ist transparent fürs Netzwerk und auch nicht konfigurierbar. Das Kabelmodem ist am LAN1 Port der Fritzbox angeschlossen.

Ich könnte mir jetzt vorstellen, dass ich unter
ethinterfaces
die forwardrules eintragen muss. Aber ich bin mir da nicht sicher.

Wenn mir da jemand von euch helfen könnte, was und wo ich das einzutragen habe, wäre das ne super Sache ;)

Danke im Voraus.
 
Zuletzt bearbeitet:
Hab die Lösung gefunden und das Ganze sieht jetzt so aus:

Code:
              weight = 0;
                shapingrate = 0;
                shapingburst = 0;
                allow_more = yes;
                ceilrate = 0;
        } {
                enabled = yes;
                with_sfq = yes;
                                policy = "permit";                             
                        }                                                      
                        highoutput {                                           
                                policy = "permit";                             
                                accesslist =                                   
                                             "reject ip any 242.0.0.0 255.0.0.0"
                                             "deny ip any host 255.255.255.255",
                                             "reject ip any 169.254.0.0 255.255.
                                             "reject udp any any range 161 162",
                                             "reject udp any any eq 111";      
                        }                                                      
                        forwardrules = "tcp 0.0.0.0:443 0.0.0.0:443 0",           
                                       "tcp 0.0.0.0:[I]port[/I] 0.0.0.0:22 0";
                }                                                              
                hansenet_manual_mode = no;                                     
        } {                                                                    
                enabled = yes;                                                 
                name = "voip";                                                 
                dsl_encap = dslencap_inherit;

Danke trotzdem ;)
 
Es geht nur um die Zeile forwardrules.
Der Rest ist nur zum besseren finden...
 
Sicherlich nur abgeschnitten...
 
Habe hier auch die "Kabelmodem-Konstellation": eine 7270 spielt hier die Rolle eines Kabelmodem und macht brav Portforwarding, eingestellt über die Web-Oberfläche. Mit einem anderen Linux PC ist das korrekte Portforwarding getestet, nur die 7170 blockt noch.

Hab die Lösung gefunden und das Ganze sieht jetzt so aus:

Code:
           [...]     
                        highoutput {                                           
                                policy = "permit";                             
                                accesslist =                                   
                                             "reject ip any 242.0.0.0 255.0.0.0"
                                             "deny ip any host 255.255.255.255",
                                             "reject ip any 169.254.0.0 255.255.
                                             "reject udp any any range 161 162",
                                             "reject udp any any eq 111";      
                        }                                                      
                        forwardrules = "tcp 0.0.0.0:443 0.0.0.0:443 0",           
                                       "tcp 0.0.0.0:[I]port[/I] 0.0.0.0:22 0";
                }
so habe ich es gemacht bei mir:
forwardrules = "tcp 0.0.0.0:22 0.0.0.0:22 0";

Habe auch schon "tcp 0.0.0.0:22 192.168.0.11:22"; also IP der 7170 auf LAN2,3,4 und ebenso "tcp 0.0.0.0:22 192.168.1.250:22"; IP auf LAN1 = wan versucht.

Aber ein ssh von einem PC im Internet oder von einem PC hier lokal (Kabel in die ata LAN1-Buche eingesteckt) geht nicht:

inetserver:~ # ssh -vvv meine.dyndns.org
OpenSSH_4.4p1, OpenSSL 0.9.8d 28 Sep 2006
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to meine.dyndns.org [85.180.67.178] port 22.
debug1: connect to address 85.XXX.YY.178 port 22: Connection timed out
ssh: connect to host meine.dyndns.org port 22: Connection timed out

Die IP 85.XXX.YY.178 ist tatsächlich gerade meine, per whatismyip.de geprüft. Das 7170 habe ich schon neu gestartet, in der /var/flash/ar7.cfg bleibt alles korrekt erhalten. ssh hier im LAN funktioniert einwandfrei. Ich verwende

# ./busybox1.9.0
BusyBox v1.9.0 (2008-01-16 01:35:36 CET) multi-call binary

Die 7170 habe ich per AVM-Anleitung für Kabelmodem als Router konfiguriert. Surfen funktioniert auch prima.

Hat jemand eine Idee was ich vergessen haben könnte?
danke schon mal
Eckard
 
Was meinst Du mit "eingetragenen" IP-Adressen? - Also vom LAN aus kann ich von jeder Linux-Maschine hier ein ssh 192.168.0.11 machen, das geht.
Ein PC direkt an die LAN1-Buchse angeschlossen macht ein ping 192.168.1.250, ein portscan auf die 192.168.1.250 sagt aber: nichts offen.
 
hallo, teletux

natürlich geht es nicht bei dir, wenn ich dich richtig verstanden habe: die fritzbox kann ja nicht wissen, ob sie den port 22 an sich selbst, an 192.168.1.250 oder an 192.168.0.11 umleiten soll. falls es wirlich mehrere ssh-server sind, solltest du nach außen verschiedene ports verwenden, dann ist es eindeutig.

gruß
 
radislav;1506728 [... schrieb:
wirlich mehrere ssh-server

Mehrere ssh-Server? Verstehe ich nicht. Ich habe dropbear installiert (sogar nach der Anleitung auf Deiner Homepage!!) und dann war ssh-Dienst im LAN verfügbar. Jetzt soll ssh *zusätzlich* von extern erreichbar sein, *genauso* wie der thread-starter es vor 3 Jahren mit seinem Kabelmodem wollte. Er hat ein
Code:
forwardrules = "tcp 0.0.0.0:port 0.0.0.0:22 0";
in die ar7.cfg eingetragen und offenbar mehr nicht und schon funktionierte ssh *zusätzlich* von extern. Kann dropbear nur *ein* Interface versorgen mit einem forwarding zu sich selbst, also auf die 0.0.0.0:22? Warum hat der OP vor 3 Jahren nur "tcp 0.0.0.0:port 0.0.0.0:22 0"; eingetragen, also keine IP eines der Interfaces und es funktionierte? Wie funktioniert die Lösung Deiner Meinung nach? - Also mehrere ssh-server will ich nicht installieren.
Eckard
 
reicht "tcp 0.0.0.0:22 0.0.0.0:22 0" nicht aus? was sagt dann putty oder console nach ssh root@[deineIpAdresseImNetz]?
 
Wie oben schon geschrieben. Ich wiederhole:

Code:
inetserver:~ # ssh -vvv meine.dyndns.org
OpenSSH_4.4p1, OpenSSL 0.9.8d 28 Sep 2006
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to meine.dyndns.org [85.180.67.178] port 22.
debug1: connect to address 85.XXX.YY.178 port 22: Connection timed out
ssh: connect to host meine.dyndns.org port 22: Connection timed out
in dem Test ist "root@" nicht vor meineAdresse.dyndns.org, ich bin aber immer root bei meinen Tests, vor allem wenn's skuril wird.

Oder wenn ich hier ein LAN-Kabel vom Switch direkt auf die LAN1-Buche der 7170 stecke, die ja sonst mit dem "Kabelmodem"(=hier FB7270) verbunden ist:

Code:
rex4:~ # ssh -vvv [email protected]
OpenSSH_5.1p1, OpenSSL 0.9.8h 28 May 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.250 [192.168.1.250] port 22.
debug1: connect to address 192.168.1.250 port 22: No route to host
ssh: connect to host 192.168.1.250 port 22: No route to host
rex4:~ # ping 192.168.1.250
PING 192.168.1.250 (192.168.1.250) 56(84) bytes of data.
64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=0.829 ms
64 bytes from 192.168.1.250: icmp_seq=2 ttl=64 time=0.817 ms
[...]

Intern im LAN hier auf die LAN2,3 oder 4-Buchse des 7170 geht ssh bestens:
Code:
rex4:~ # ssh  192.168.0.11
[email protected]'s password:


BusyBox v1.8.2 (2009-04-22 13:54:57 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/1"
weitere telnet Verbindung aufgebaut

Vielen Dank für Deine Ideen, radislav! Sonst noch weitere Ideen?

Hier noch meine ar7.cfg:
Code:
# cat /var/flash/ar7.cfg | grep forwardrules -C 5
                                             "deny ip any host 255.255.255.255",
                                             "reject ip any 169.254.0.0 255.255.0.0",
                                             "reject udp any any range 161 162",
                                             "reject udp any any eq 111";
                        }
                        forwardrules = "tcp 0.0.0.0:22 0.0.0.0:22 0";
                }
        }
        budget {
                Enabled = no;
                Period = 2;
--
                ipbridgeing_igmp = no;
                pppoeforwarding = no;
                connections = "internet", "voip";
        }
        mcupstream = "internet";
        voip_forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
                            "tcp 0.0.0.0:5060 0.0.0.0:5060",
                            "udp 0.0.0.0:7078+32 0.0.0.0:7078";
        tr069_forwardrules = "tcp 0.0.0.0:8089 0.0.0.0:8089";
        internet_in_nat_rules_enabled = yes;
        internet_out_nat_rules_enabled = yes;
        dslifaces {
                enabled = yes;
                name = "internet";

Eckard
 
Zuletzt bearbeitet:
Intern ist 1.250 erreichbar, siehe ping-Ergebnisse. ssh aber geht nicht!

ssh von extern: Die FB 7270 macht 100% Portforwarding von 22 auf 22 bei 1.250. Das funktionierte monatelang auf einen anderen Linux-Router, der jetzt ersetzt werden soll.
Habe mich gerade per telnet auf der FB7270 (="Kabelmodem") eingeloggt und ein ping auf die 192.168.1.250 (LAN1-Buchse) gemacht: geht ebenso wie von meinem linux-PC rex4 hier!

Habe hier noch eine zweite FB7170, gleiche Firmware 29.04.76. Ebenso als Router konfiguriert, den USB-Stick hinten rein, die debug.cfg und ar7.cfg eingespielt, neu gestartet und das tupfegleich Phänomen: ssh von extern geht nicht, ping wohl.
Merkwürdigerweise ist bei gleicher Firmware das AVM-Web-Front anderst zum Einstellen des Router:

http://www.aiai.de/foren/fb7170_neuereGeraet.png

Die andere FB7170:
http://www.aiai.de/foren/fb7170.png

Habe ich bei der Einstellung als Router vielleicht was falsch gemacht? - Surfen geht ja .. Ich habe eigentlich die AVM-Anleitung befolgt:
http://www.avm.de/de/Service/FAQs/F...ortal=FRITZ!Box_Fon_WLAN_7170&weitere=weitere
 
Zuletzt bearbeitet von einem Moderator:
Die Forwardrules hatte ich vermutlich schon gesehen.

Da aber nicht klar ist, welche Adressen für welche Geräte stehen und wo tatsächlich ein SSH-Server läuft, bringt das nicht viel.
 
so läuft der dropbear:
Code:
870 root  568 S   /var/tmp/dropbear -p 22 -r /var/tmp/dropbear_rsa_host_key -d /var/tmp/dropbear_dss_host_key

meine debug.cfg, von radislav's Homepage:
Code:
HDD='USBMass-StorageDevice-01'  
HDD_ABSOLUT='/var/media/ftp/'$HDD
PASSWD=XXXXXXXXXX
TEMP=/var/tmp

while !([ -d $HDD_ABSOLUT ]); do sleep 5; done

cd $TEMP
cp $HDD_ABSOLUT/7170/busybox1.9.0 $TEMP/busybox
cp $HDD_ABSOLUT/7170/dropbearmulti $TEMP
cp $HDD_ABSOLUT/7170/dropbear+sftp-server.diff $TEMP
cp $HDD_ABSOLUT/7170/sftp-server $TEMP
cp $HDD_ABSOLUT/7170/dropbear_rsa_host_key $TEMP
cp $HDD_ABSOLUT/7170/dropbear_dss_host_key $TEMP

chmod +x busybox
chmod +x sftp-server
chmod +x dropbearmulti
$TEMP/busybox sed -e "/root:/s#^root:[^:]*:#root:$PASSWD:#" -i $TEMP/shadow
ln -s $TEMP/dropbearmulti dropbearkey
ln -s $TEMP/dropbearmulti dropbear
$TEMP/dropbear -p 22 -r $TEMP/dropbear_rsa_host_key -d $TEMP/dropbear_dss_host_key

nutzt diese Einsicht mehr?
 
Du hast anscheinend mindestens drei Boxen herumstehen, in wer weiß welchen Konfigurationen. Wenn auf der Zielbox ein SSH-Server läuft und aus dem internen Netzwerk erreichbar ist, dann ist es egal, wie er gestartet wird. Wenn er aber aus dem internen Netzwerk nicht erreichbar ist, dann ist es kein Problem der Port-Weiterleitung.

Und zwischen den beiden Bildern, die mittlerweile am Beitrag #14 hängen, ist mir auch kein Unterschied aufgefallen.
 
ich würde allgemein raten, sich mal ein bisschen mit portforwarding zu beschäftigen: was beide adressen mit ports zu bedeuten haben, was sinnvoll ist und was nicht. ich habe z.b. für einen ssh-server auf dem notebook folgende zeile definiert:
Code:
"tcp 0.0.0.0:2222 192.168.178.20:22 0 # ssh notebook",
somit läuft auf dem notebook ein weiterer ssh-server auf dem port 22 (intern). ich kann aber von extern über den port 2222 darauf zugreifen...
 
habe bei mir auch eingetragen: "tcp 0.0.0.0:2222 0.0.0.0:22 0" (@korrigiert nachträglich von 192.168.178.20!!) , aber hat nicht geholfen, Port 2222 der FB ist nach wie vor nicht offen. Wie immer ein von meinem Switch in LAN1-Buchse gesteckt:

Code:
rex4:~ # ssh -p 2222 [email protected]
ssh: connect to host 192.168.1.250 port 2222: No route to host
rex4:~ # ping 192.168.1.250
PING 192.168.1.250 (192.168.1.250) 56(84) bytes of data.
64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=0.525 ms
64 bytes from 192.168.1.250: icmp_seq=2 ttl=64 time=0.657 ms

Sonst noch Ideen?

Code:
# ./busybox netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:49443           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5060            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:49000           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 localhost:1011          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN
tcp        0      0 localhost:8888          0.0.0.0:*               LISTEN
udp        0      0 0.0.0.0:2048            0.0.0.0:*
udp        0      0 0.0.0.0:2049            0.0.0.0:*
udp        0      0 0.0.0.0:2050            0.0.0.0:*
udp        0      0 0.0.0.0:2051            0.0.0.0:*
udp        0      0 0.0.0.0:2052            0.0.0.0:*
udp        0      0 0.0.0.0:7077            0.0.0.0:*
udp        0      0 0.0.0.0:53              0.0.0.0:*
udp        0      0 0.0.0.0:5060            0.0.0.0:*
udp        0      0 0.0.0.0:5353            0.0.0.0:*
udp        0      0 0.0.0.0:5355            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
raw        0      0 0.0.0.0:2               0.0.0.0:*               7
raw        0      0 0.0.0.0:2               0.0.0.0:*               7
raw        0      0 0.0.0.0:2               0.0.0.0:*               7
nichts auf port 2222 listening, merkwürdig ... FB ist frisch gebootet, spätestens dann sollte die neue /var/flash/ar7.cfg eingelesen worden sein. Mit dsld stop -> start mache ich es sonst eigentlich. Ich vermute, dass meine fordwardrules gar nicht berücksichtigt werden. Warum? Kann man sich irgenwie die iptables ansehen?

Habe mir mal die ar7.cfg angesehen: die fordwardrules stehen unter:

Code:
        pppoefw {                      
                interfaces = "lan", "usbrndis", "eth0", "wlan", "wan";
                [...]
                 forwardrules = "tcp 0.0.0.0:2222 0.0.0.0:22 0";
                [...]

Ich mache aber gar kein pppoe , die FB 7170 ist ja router. Habe selbst mal "wan" angehängt, hat aber nichts geholfen. Da ich jetzt nicht Lust habe mir meine ar7.cfg mit allerlei Experimenten zu zerschiesse und dann eine tote Fritzbox zu haben, eine Frage in die Runde: was ist da faul? - in der ar7.cfg sind auch die interfaces eth0, wlan, ... definiert, das "wan" das AVM nach der Konfiguation zum router ins Leben gerufen hat, wird aber nirgends definiert. Ich schreibe den OP dieses thread mal an. Meine ar7.cfg hier zum Download, vielleicht habt Ihr Ideen. Aber bitte nicht allzuviele Experimente, ich will eigentlich nicht eine tote FritzBox wieder zum Leben erwecken.

@22Uhr: gelöst! forwardrule darf nicht im Abschnitt pppoefw stehen, sondern unter dslifaces. Dann darf hinter forwardrules = "tcp 0.0.0.0:2222 0.0.0.0:22 KEINE "0" und KEIN Kommentar stehen! Jetzt gehts! Waoh! :))
 
Zuletzt bearbeitet:
Du hältst wohl nicht viel davon, Deinen Konfiguration zu beschreiben?
Du machst eine Weiterleitung nach 192.168.178.20, und schreibst dann, daß es mit 192.168.1.250 nicht funktioniert. Das 'root@' vorne kannst Du Dir übrigens sparen, solange keine Verbindung aufgebaut wird.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,695
Beiträge
2,216,692
Mitglieder
371,315
Neuestes Mitglied
jack-mack
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.