ssh über Router & Firewall

06.02.2004, 15:13
Member

Beiträge: 15
#1 Hi

Beschäftige mich seit einiger Zeit mit ssh und sonstigem, um in Zukunft auf meinen Computer der sich in einem fremden unbekannten Netzwerk befindet(riesiges Schulnetz), von dem ich keine Rechte besitze, und auch nicht weis Welche ports wie und wohin freigeschalten sind. Dieses Netz ist filleicht mit Routern weiter unterteilt.
Ziemlich sicher ist auch eine Firewall zu Überwinden.:-)

Meine Fragen:

Kann ich Auf meinen PC hinter der Firewall eine Verbindung aufbauen, auch wenn keine Ports geöffnet sind?? Zb mit ssh -R
wenn nicht, welche ports sich dazu notwendig(wahrscheinlich 22)
Muss der port auf meinen pc Weitergeleitet sein??
Könnten die Router hinter der Firewall ein Problem darstellen??

Habe auch gelesen, das dies auch mit http-Tunneling moglich sei. Aber kann ich von außen mit http überhaupt packete nach innen schicken??

Was sind die Grundforaussetzungen, damit eine Verbindung überhaupt möglich ist

Bin Für jede Antwort Dankbar
Seitenanfang Seitenende
06.02.2004, 15:23
Member
Avatar Xeper

Beiträge: 5291
#2 Also generell geht das alles nicht - du hast ja kein Zugriff auf die Router oder Gateways oder wie auch immer das Schulnetz konzipiert ist. Wenn du von außen eine Verbindung aufbauene wolltest müßtest du ja irgendwo den port tcp/22 (ssh) ja zu deinem Rechner per NAT weiterleiten. Ist natürlich unmöglich. Auch über http-tunneling seh ich da keine möglichkeit auch hier gilt wieder das selbe wie oben - alle Pakete müssen ja im endeffekt zu dir geforwardet werden und das läßt sich nur über die entsprechende Instanz klären. Was auch immer sei es nun Router Gateway oder sonst was. Die Grund voraussetzungen sind einmal das dass erste Paket einer Verbindung (das mit der SYN flag) über NAT zu deiner internalen IP befördert wird, und der rest der Pakete muss geforwardet werden. All dies muss aber wie gesagt auf einem Router - wahrscheinlich die Maschine die am inet anschluss hängt bewerkstelligt werden. (hört sich ja ganz nach einem Internat an oder so was ähnlichem)
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
06.02.2004, 18:04
Member

Themenstarter

Beiträge: 15
#3 Internat trifft' s vollkommen.

Im Internet steht überall das die -R Funktion bei ssh zum tunneling hinter eine Firewall ist.
Wie funktioniert das im Deteil??

Weil wenn der 22er Port geforwardet sein muss, kann man ja gleich einen Tunnel mit -L bauen.
Ich tscheck den sinn drin nich, kannst du mir das mal erläutern??
Seitenanfang Seitenende
06.02.2004, 19:56
Member
Avatar Emba

Beiträge: 907
#4 eine möglichkeit ist, einen tunnel von innen zu initiieren: sprich vom internat aus zu dir nach hause (vorausgesetzt ssh geht nach außen):

user@internet: ssh -l user remote.maschine -R 12000:localhost:22

das setzt voraus,

- dass dein rechner zu haus remote.maschine heißt (oder halt ip einsetzen)
- auf dem schulrechner im internat auch ein ssh server läuft
- du entsprechend den passwortmechanismen die verbindung aufbaust (passwortabfrage, pubkey-auth, ...)
- du die verbindung dann von außen folgendermaßen initiierst

user@remote.maschine: ssh -l user-des-internatrechners localhost -p 12000

so mach ich des und des funzt ;)

greez
Dieser Beitrag wurde am 06.02.2004 um 19:57 Uhr von Emba editiert.
Seitenanfang Seitenende
06.02.2004, 21:18
Member

Themenstarter

Beiträge: 15
#5 Damit meinst du dass ich zuerst von meinem Internatsrechner aus zu meinem ZuHausePc einen Tunnel baue, und diesen Tunnel dann zum verbindungsaufbau hinter die Firewall verwende.

Wäre ja eine gute idee, wenn da nicht die dynamische ip meines ZuHauseRouters wäre, der nach einigen Stunden eine neue ip bekommt.
Aber dieses problem lässt sich wahrscheinlich mit DynDNS beheben.
_____________________________________________________________________
Nur so nebenbei: Liese sich der obige Tunnel auch mit
-L 22:PCzuHause:12000 realisieren??
_____________________________________________________________________

Besteht die möglichkeit, einen port auf xxx.xxx.xxx.255, also auf das gesamte Netzwerk freizugeben, und ist durch diesen port ein Verbindungsaufbau nach innen möglich??
(nicht gewollte PCs scheiden durch nicht antworten bzw durch falsche user/passw. aus)
Dieser Beitrag wurde am 06.02.2004 um 21:21 Uhr von rogi1 editiert.
Seitenanfang Seitenende
07.02.2004, 02:17
Member
Avatar Emba

Beiträge: 907
#6

Zitat

Damit meinst du dass ich zuerst von meinem Internatsrechner aus zu meinem ZuHausePc einen Tunnel baue, und diesen Tunnel dann zum verbindungsaufbau hinter die Firewall verwende.
ja

Zitat

Wäre ja eine gute idee, wenn da nicht die dynamische ip meines ZuHauseRouters wäre, der nach einigen Stunden eine neue ip bekommt.
Aber dieses problem lässt sich wahrscheinlich mit DynDNS beheben.
ja, nur weiß ich nicht wie sich der tunnel verhält, wenn die verbindung abbricht - damit ändert sich nämlich die host verification und ssh "traut" dem neuen gegenüber nicht (automatisch) - es sei denn eine option setzt dies außer kraft - probieren

Zitat

Nur so nebenbei: Liese sich der obige Tunnel auch mit
-L 22:pCzuHause:12000 realisieren??
nein, denn das ist lokales portforwarding

Zitat

Besteht die möglichkeit, einen port auf xxx.xxx.xxx.255, also auf das gesamte Netzwerk freizugeben, und ist durch diesen port ein Verbindungsaufbau nach innen möglich??
(nicht gewollte PCs scheiden durch nicht antworten bzw durch falsche user/passw. aus)
einen port kannst du für alles freigeben - das, was du meinst, ist, die verbindung, die du einmalig herstellst zu einem host, für alle freigeben

das geht nur insofern, dass alle anderen user, die sich auf die maschine im intranet einloggen sollen, zunächst über deinen rechner zu hause connecten und dann den bestehenden tunnel nutzen

ansonsten wird ein tunnel immer von client->server (bzw. v.v) aufgebaut - sprich punkt-zu-punkt

greez
Seitenanfang Seitenende
07.02.2004, 08:00
Member

Themenstarter

Beiträge: 15
#7 Das ist mir klar, was ich mit der letzten Frage gemeint hab ist, Wie machen es Netzwerkadminitrator, wenn sie für mehrere hundert ip's ports forwarden müssen. Dies ist natürlich mit geringem aufwand nicht möglich, aber mit so einem "broadcast" port schon!!

Oder??
_____________________________________________________
Schreib mir bitte mal den Unterschied zwichen -L und -R
Ist ja eigentlich das selbe, außer das einmal pc1 die verbindung aufbaut und das andermal pc2, oder gibts da nen unterschied mit den ports??;)
_____________________________________________________
Aus was setzt sich die host verification von ssh zusammen??
Dieser Beitrag wurde am 07.02.2004 um 08:15 Uhr von rogi1 editiert.
Seitenanfang Seitenende
07.02.2004, 12:58
Member
Avatar Xeper

Beiträge: 5291
#8 @rogi1

Da macht man nix mit broadcast - sowas geht mit localnet zb. 192.168.1.0 damit gibst du das ganze 192.168.1.* netz frei - und so weiter. Ich glaub nicht das der netfilter eine Broadcast addresse akzeptiert. Wofür auch. Broadcast geht ja an jedem client in einem bestimmten Netz.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
07.02.2004, 14:09
Member
Avatar Emba

Beiträge: 907
#9 @rogi

die unterschiede zw. -L und -R findest du mittels google oder in der manpage
genau so wie die host verification

nur soviel zu -L und -R:

bei -R nutzt du einen remote erzeugten tunnel, um von da aus durch diesen nun lokalen tunnel die verb. quasi reverse wieder aufzubauen

greez
Seitenanfang Seitenende
07.02.2004, 14:55
Member

Themenstarter

Beiträge: 15
#10 sorry dass ich so blöd frage, habs nochmal ausprobiert. Der Tunnel MUSS wohl vom Client zum Server gebaut werden. Wenn du aber bereits am Server sitzt, musst du -R verwenden, damit die richtung des Tunnels wieder Stimmt.

Sorry, diese Frage wäre unnötig gewesen, hab auch davor schon in google und man nachgeschaut, hab aber den sinn nicht kapiert.



Werd mich über dieses thema noch bei meinen Lehrern nach den Fehrien informieren.(sofern es dort so schlaue Köpfe gibt) Ich schreib euch dann ob es/wie es funktioniert.
Dieser Beitrag wurde am 07.02.2004 um 15:23 Uhr von rogi1 editiert.
Seitenanfang Seitenende
08.02.2004, 20:33
Member
Avatar Emba

Beiträge: 907
#11 @rogi1

mh, so richtig steig ich hinter deine logik nicht

schau mal hier [1] unter dem punkt "Hintertür ins interne Netz" - vllt. wird dann einiges klarer?

greez


[1]
http://www.linux-magazin.de/Artikel/ausgabe/2002/07/ssh2/ssh2.html
Seitenanfang Seitenende
09.02.2004, 22:49
Member

Themenstarter

Beiträge: 15
#12 Danke alles klar. Ist aber trotzdem eine Super Page
Bin grad im Internat und hab die verbindung getscheckt.Kann mit
ssh -g IPZUHAUSE keine verbindung aufbauen(ausgabe: "no route to host")

Von innen kann ich aber einen Tunnel bauen. Scheint alles ok.
Doch wenn ich durch den Tunnel mit ssh localhost:port ansprechen will kommt: "ssh_exchange_identification: Connection closed by remote host"
weiß aber nicht ob man einen Tunnel bauen kann UND gleichzeitig eine ssh-remote verbindung. mit telnet hats aber funktioniert.

Ist es eigentlich egal ob man auf beiden pc sshd laufen hat oder kan das probleme bringen??

den tunnel mit -R von außen aufzubauen hat auch nicht gefunkt(ich glaub ich habs falsch eingetippt. muss ich nochmal nachschlagen)
Seitenanfang Seitenende
09.02.2004, 23:02
Member
Avatar Emba

Beiträge: 907
#13

Zitat

Ist es eigentlich egal ob man auf beiden pc sshd laufen hat oder kan das probleme bringen??
muss beim "-R - Tunneln" sogar so sein, denn du musst dich jeweils mit einem ssh server verbinden

hier mal ne step-by-step-anleitung für dich:

folgender netzaufbau wird angenommen:

Rechner zu hause -> Internet -> Firewall Internat -> Internat-Client (Rechner1)

des weiteren erforderlich:

* ssh vom internat nach außen ins internet möglich (ansonsten ggf. mit ports wie port 80 versuchen, klappt meist - ist ein proxy dazwischen, dann kann es nicht gehen, da er meist nur http/ftp nach außen durchlässt - dann kannst du hier schon aufhören mit lesen) - also prüfen, ob du ssh nach hause machen kannst aus dem internat

* auf den internatsrechnern laufen jeweils sshd auf port 22 (ansonsten anpassen in der anleitung unten)

[...] - statements sind optional

1) ssh -l username-rechner-zu-hause [-p port] rechner.zu.hause.de -R 20000:localhost:22 (oder entsprechende WAN-IP einsetzen)

jetzt steht schon der remote tunnel, wenn du alles richtig konfiguriert hast

jetzt zu hause am pc:
2) ssh -l username-rechner1-internat -p 20000 localhost

du solltest eine passwortabfrage sehen

so mach ich das schon eine ganze weile und funzt - ist natürlich kein NAT-Proxy zwischen

Zitat

ssh -g IPZUHAUSE keine verbindung aufbauen(ausgabe: "no route to host")
wieso -g ? du brauchst remote hosts dies nicht erlauben, da rechner1 aus dem internat hier nicht als remote host gilt

no route to host ist schon eine fehlermeldung, die sagt, dass entweder die IP kein ziel (derzeit) darstellt oder dein interface/gateway falsch eingerichtet ist

Zitat

den tunnel mit -R von außen aufzubauen hat auch nicht gefunkt
wird es auch nicht, denn von außen wird das internat wohl kaum ssh erlauben - okay, man kann nie wissen ;)

greez
Seitenanfang Seitenende
10.02.2004, 18:29
Member

Themenstarter

Beiträge: 15
#14 Wird da der gateway aus der netzwerkkonfiguration verwendet oder muss diser händisch eingestellt werden (zb ssh config file)??

Kann Tunnel mit -L nach Hause öffnen, proxy scheint also keine probleme zu machen, oder verhält sich das mit -R anders??

was meinst du beim Tunnel öffnen mit:" (oder entsprechende WAN-IP einsetzen)"
Seitenanfang Seitenende
10.02.2004, 19:24
Member
Avatar Emba

Beiträge: 907
#15 es wird das default gw genommen, was deiner netzwerkschnittstelle zugewiesen wurde - nix mit ssh*.conf

nein, mit -R sollte sich das nicht anders verhalten
mit WAN-IP meine ich, wenn du kein dyndns verwendest, musst du einfach die externe IP deines ssh-servers zu hause nehmen - mehr net

warte auf erfolgsmeldungen ;)

greez
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: