ssh-Verbindung aus dem Internet zulassen ohne Firewall zu öffnen
Hallo allerseits, ich mache gelegentlich die Wartung eines Linux-Rechners. Bisher war das immer "Turnschu-Administration", sprich hingehen, wenn's Probleme gibt. Der Rechner hängt im Internet, liegt einer Firewall, auf die ich keinen Einfluss habe. Diese Firewall ist aber für eingehenden Verkehr (inbes. Port 22) zu. Gibt es trotzdem eine Möglichkeit sich per ssh von aussen einzuloggen? Skype schafft es ja auch irgendwie, daß man angerufen werden kann, auch wenn man hinter der geschlossen FW sitzt. Ich hab' mal gelesen wie die's machen. Vielleicht gibt's ja sowas auch für ssh. Dazu kann es nötig sein, daß ein Benutzer am remote-Rechner etwas "freischalten" muß. Das ist ok. Bin für alle Hinweise dankbar. Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Hallo Jürgen, Dr. Jürgen Vollmer wrote:
Hallo allerseits,
ich mache gelegentlich die Wartung eines Linux-Rechners. Bisher war das immer "Turnschu-Administration", sprich hingehen, wenn's Probleme gibt.
Der Rechner hängt im Internet, liegt einer Firewall, auf die ich keinen Einfluss habe. Diese Firewall ist aber für eingehenden Verkehr (inbes. Port 22) zu.
Gibt es trotzdem eine Möglichkeit sich per ssh von aussen einzuloggen? Skype schafft es ja auch irgendwie, daß man angerufen werden kann, auch wenn man hinter der geschlossen FW sitzt. Ich hab' mal gelesen wie die's machen. Vielleicht gibt's ja sowas auch für ssh.
Dazu kann es nötig sein, daß ein Benutzer am remote-Rechner etwas "freischalten" muß. Das ist ok.
Bin für alle Hinweise dankbar.
wenn Du umgekehrt einen Rechner außen stehen hast, der von dem Client aus erreichbar ist, dann ist es mit Port-Forwarding möglich. Ich mache das mittels eines Cronjobs: Der Client öffnet eine ssh-Verbindung auf einen (externen) Server und macht dort einen Port zu sich selbst auf. Dann kann man auf dem Server mit ssh -p <jenerport> 127.0.0.1 den Client erreichen. Gruß Jan -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 26. März 2008 17:12:10 schrieb Jan Handwerker:
Hallo Jürgen,
Dr. Jürgen Vollmer wrote:
Hallo allerseits,
ich mache gelegentlich die Wartung eines Linux-Rechners. Bisher war das immer "Turnschu-Administration", sprich hingehen, wenn's Probleme gibt.
Der Rechner hängt im Internet, liegt einer Firewall, auf die ich keinen Einfluss habe. Diese Firewall ist aber für eingehenden Verkehr (inbes. Port 22) zu.
Gibt es trotzdem eine Möglichkeit sich per ssh von aussen einzuloggen? Skype schafft es ja auch irgendwie, daß man angerufen werden kann, auch wenn man hinter der geschlossen FW sitzt. Ich hab' mal gelesen wie die's machen. Vielleicht gibt's ja sowas auch für ssh.
Dazu kann es nötig sein, daß ein Benutzer am remote-Rechner etwas "freischalten" muß. Das ist ok.
Bin für alle Hinweise dankbar.
wenn Du umgekehrt einen Rechner außen stehen hast, der von dem Client aus erreichbar ist, dann ist es mit Port-Forwarding möglich. Ich mache das mittels eines Cronjobs: Der Client öffnet eine ssh-Verbindung auf einen (externen) Server und macht dort einen Port zu sich selbst auf. Dann kann man auf dem Server mit ssh -p <jenerport> 127.0.0.1 den Client erreichen.
Ich glaub' ich hab das verstanden, aber kannst Du mir trotzdem die Kommando's schicken, da gibt's doch sicherlich ein Shell-Skript, welches das macht. Danke&Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Dr. Jürgen Vollmer wrote:
Ich glaub' ich hab das verstanden, aber kannst Du mir trotzdem die Kommando's schicken, da gibt's doch sicherlich ein Shell-Skript, welches das macht.
Auf dem Client wird alle 10 Minuten gestartet: --snip-- #!/usr/bin/ksh aus=`/usr/bin/ssh -o ConnectTimeout=10 clientuser@server.domain.de sshclient` if [ "$aus" != "hallo" ] then # Es war nicht möglich, sich vom server aus wieder hier auf dem client anzumelden. # Das heisst, wir müssen die Verbindung neu aufbauen. Im Wesentlichen muss dazu # die ssh-Sitzung neu aufgebaut werden. Wir suchen aber zunaechst einmal nach einer # alten ssh-Sitzung, die man abschießen koennte. echo $aus pids=`/bin/ps aux | /usr/bin/grep beeper_server | /usr/bin/grep -v grep | /usr/bin/cut -c8-15` if [ -n "$pids" ] then kill -9 $pids fi /usr/bin/ssh -v -R 27667:127.0.0.1:27667 clientuser@server.domain.de beeper_server >> /users/data/connect_via_server.out & fi --snap-- Ich muss gestehen, dass ich hier alle ip-Nummern und echten Rechnernamen entfernt habe, wesha/users/data/connect_via_server.out lb aber vielleicht jetzt ein Fehler darin sein kann. Die erste Zeile (aus=...) macht vom Client aus ein ssh auf dem server und löst von dort wieder ein ssh zum Client aus. Wenn das klappt, dann wird auf dem Client (von hinten durch die Brust ins Auge) ein Programm ausgeführt, das hallo zurückliefert. Wenn das nicht klappt, wird die nicht mehr funktionierende alte ssh-Verbindung vom Client zum server gekillt und dann -- tata -- das eigentliche Programm. ssh -v -R... Dieses führt als clientuser auf dem Server ein Programm namens beeper_server aus, was so aussieht: --snip-- #!/bin/csh while 1 /bin/date /bin/sleep 30 end --snap-- Das soll nur dafür sorgen, dass auf der ssh-Verbindung Traffic ist, damit die nicht nach einem Timeout abbricht. Und in /users/data/connect_via_server.out finde ich dann alle 30 Sekunden das Datum (und weiß, wann die Verbindung gelaufen ist :-)). Schließlich noch sshclient (auf dem Server liegend) --snip-- /usr/bin/ssh -p 27667 data@localhost ./bin/hallo --snap-- und auf dem Client gibt es schließlich ./bin/hallo: --snip-- #!/bin/csh echo hallo --snap-- Das war's, wenn ich es richtig sehe. Das ganze komplizierte liegt darin, nachzuprüfen, ob die Verbindung noch existiert. Und das muss der Client machen, denn wenn die Verbindung nicht existiert, ist er ja von außen nicht erreichbar... War das klar genug? Gruß Jan -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 26. März 2008 17:50:56 schrieb Jan Handwerker:
Auf dem Client wird alle 10 Minuten gestartet:
vielen Dank für die Scripte. ssh -R war mir nicht so recht im Bewusstsein. Einen kleinen Haken hab'ich gefunden: ....
grep | /usr/bin/cut -c8-15` if [ -n "$pids" ] then kill -9 $pids fi /usr/bin/ssh -v -R 27667:127.0.0.1:27667
das muss doch /usr/bin/ssh -v -R 27667:127.0.0.1:22 --------------------------------------------------^^^^ heissen? War wohl ein Tippfehler. Also Danke mal. Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Dr. Jürgen Vollmer wrote:
Einen kleinen Haken hab'ich gefunden:
/usr/bin/ssh -v -R 27667:127.0.0.1:27667
das muss doch
/usr/bin/ssh -v -R 27667:127.0.0.1:22 --------------------------------------------------^^^^ heissen?
War wohl ein Tippfehler.
Jein. Auf meinem Client läuft ein zusätzlicher ssh-Daemon, der auf Port 27667 lauscht. Aber man kommt auch ohne aus. Da hast Du recht. Gruß Jan -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Jürgen, ganz brauchbar ist eine ssh Verbindung mit Port Weiterleitung in umgekehrter Richtung: vom entfernten Rechner aus verbindet sich jemand mit deiner Kiste gemäss einer Anleitung, dieer andere vorher erhält. Effektiv ist es ein Weiterleiten von Port z.B. 4422 deines Rechners zu 22 an seiner Kiste - anschliessend kannst Du per ssh localhost:4422 auf seinen Rechner. Wolfgang Hamann
Hallo allerseits,
ich mache gelegentlich die Wartung eines Linux-Rechners. Bisher war das=20 immer "Turnschu-Administration", sprich hingehen, wenn's Probleme gibt.
Der Rechner h=E4ngt im Internet, liegt einer Firewall, auf die ich keinen=20 Einfluss habe. Diese Firewall ist aber f=FCr eingehenden Verkehr (inbes. Po= rt=20 22) zu.
Gibt es trotzdem eine M=F6glichkeit sich per ssh von aussen einzuloggen? Skype schafft es ja auch irgendwie, da=DF man angerufen werden kann, auch w= enn=20 man hinter der geschlossen FW sitzt. Ich hab' mal gelesen wie die's machen.= =20 Vielleicht gibt's ja sowas auch f=FCr ssh.
Dazu kann es n=F6tig sein, da=DF ein Benutzer am remote-Rechner=20 etwas "freischalten" mu=DF. Das ist ok.
Bin f=FCr alle Hinweise dankbar.
Bye J=FCrgen
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Dr. Jürgen Vollmer
-
hamann.w@t-online.de
-
Jan Handwerker