PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH-Tunnel für Server ohne Internet Zugriff


Acid-Beatz
2014-12-22, 14:29:02
Guten Tag zusammen,
mal eine prinzipielle Frage:
Wenn man einen Server hat, auf den nur Zugriff per SSH in eine Richtung besteht (PC mit SSH -> Server), ist es dann trotzdem möglich den Server temporär durch einen/den Tunnel mit dem Internet zu verbinden?
Die Möglichkeiten, die ich bis jetzt gesehen habe, gingen nämlich alle in die Richtung "Server hat SSH-Only Verbindung ins Internet, worüber man dann den Tunnel per Proxy einrichtet" - diese Möglichkeit habe ich eben nicht, da man von der Maschine keine Verbindung nach außen aufbauen kann.

Vielen Dank an Euch, Greez

lumines
2014-12-22, 14:30:57
Wahrscheinlich bräuchte der PC einen SSH-Server, von dem du dich vom Server aus einloggst. Dann könnte man in die andere Richtung einen Tunnel machen.

„Reverse SSH Tunnel“ könnte als Stichwort vielleicht auch etwas bringen.

Acid-Beatz
2014-12-22, 14:52:49
Mhm, auf der Spur war ich schon aber das ging leider alles in die Richtung, die für mich keine Option ist - ich komme von der Maschine nicht nach außen, keine Pings, keine wgets, keine ... !

Greez

lumines
2014-12-22, 15:16:40
Ich meine auf den PC, mit dem du dich auch per SSH auf den Server verbindest.

nalye
2014-12-22, 15:48:22
Schau Dir mal diese Anleitung hier an:

http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

Acid-Beatz
2014-12-22, 16:20:21
Genau hier
ssh -fN -R 7000:localhost:22 username@yourMachine-ipaddress
ist das Ganze meiner Meinung nach zum Scheitern verurteilt:
Auch wenn ich die IP-Adresse meines Computers hier logischerweise kenne und ihm den Port freischalte, dann kommt er trotzdem nicht raus, hier wird ja wieder eine neue Verbindung initiiert ...


Greez

lumines
2014-12-22, 16:49:04
Aber warum solltest du dich nicht vom Server auf den PC verbinden können, wenn du dich offenbar vom PC auf den Server verbinden kannst? Ich kann jedenfalls nicht ganz nachvollziehen, warum dieser Server zwar Verbindungen im LAN annehmen kann, aber von sich aus keine Verbindung zu anderen Rechnern initiieren kann. Du meintest doch nur, dass er keine Verbindung ins Internet hat. Dein persönliches LAN ist ja nicht das Internet.

Acid-Beatz
2014-12-23, 11:15:00
Hey,
danke für die Antwort - ich glaube, ich habe mich etwas unverständlich ausgedrückt:
Der Server hängt direkt am Internet - nicht im LAN. Eingehende SSH-Verbindungen (aus dem Internet) sind erlaubt, von innen werden sämtliche Verbindungen ins Netz geblockt, deswegen auch meine Klimmzüge :)


Greez

Tyrann
2014-12-23, 11:45:02
du kannst auf deinem PC einen Proxy aufsetzen und dann einen Reversetunnel dafür per ssh einrichten

sei laut
2014-12-23, 13:15:26
Hey,
danke für die Antwort - ich glaube, ich habe mich etwas unverständlich ausgedrückt:
Der Server hängt direkt am Internet - nicht im LAN. Eingehende SSH-Verbindungen (aus dem Internet) sind erlaubt, von innen werden sämtliche Verbindungen ins Netz geblockt, deswegen auch meine Klimmzüge :)


Greez
Das Problem an der Aussage ist: Dein PC bekommt ja irgendeine Antwort vom Server, sonst könntest du auch nichts per ssh machen. Wenn eine Antwort zurückkommt, kann der Server deinem PC Pakete senden.

SSH ist ja grundsätzlich verschlüsselt - eine Firewall sollte also nicht in der Lage sein, anhand des Inhalts die Pakete zu blockieren und du müsstest dich vom Server aus problemlos auf die SSH-Verbindung klemmen können.

Acid-Beatz
2014-12-23, 14:51:03
Vom Gedankengang war ich quasi auch so weit - irgendwas muss ja rauskommen, File-Transfers per scp sind in beide Richtungen auch kein Problem!
Was sich aber (zumindest für mich) als nicht trivial erwiesen hat: Wie bekomme ich den Traffic so "verpackt", dass er raus kann?
Jetzt ist erst mal Urlaub angesagt, da werd ich mich noch mal eingehender damit beschäftigen, in diesem Sinne: "Frohe Weihnachten" und wenn jemandem noch was einfällt, dann her damit ;)


Greez

sei laut
2014-12-23, 17:03:07
Das ist normal der Moment, wo man mit einem Packetsniffer wie Wireshark oder tcpdump schaut, was da über die Leitung geht. Begrenzt auf den ssh Traffic.

fezie
2014-12-23, 17:16:27
Du kannst bei dir auf den PC einen Proxy installieren und dann per ssh den Port weiterleiten auf den Server. Das müsste auch funktionieren wenn du dich vom PC aus mit dem Server verbindest

nalye
2014-12-23, 19:16:59
Das ist normal der Moment, wo man mit einem Packetsniffer wie Wireshark oder tcmdump schaut, was da über die Leitung geht. Begrenzt auf den ssh Traffic.
Alternativ auch den sshd mit -vvv invoken, dann ist der auch recht hilfreich

Acid-Beatz
2014-12-24, 10:10:22
Guten Morgen Jungs,
nachdem ich mir gerade gedacht habe, was -vvv in diesem Fall bringen soll - ich vergaß zu erwähnen :freak: , dass der Weg nach Außen durch eine Firewall unterbunden ist - wollte es eigentlich reinschreiben, habs aber dann irgendwie verschwitzt ;(


Greez

vanquish
2014-12-24, 10:53:02
Das mit der Firewall braucht man auch nicht erwähnen. Sonst würde die Eingangs gestellte Frage erst gar nicht aufkommen.

ssh -D 11000 server-ip:port
export SOCKS_SERVER=127.0.0.1:11000
wget http://www.blahblahblah

Für komplexere Dinge hilft evtl. diese Lektüre weiter:
http://polishlinux.org/apps/ssh-tunneling-to-bypass-corporate-firewalls/

Acid-Beatz
2015-01-03, 19:55:46
Guten Abend,
das Wichtige zu erst, es funktioniert - NICHT :freak:

Wenn ich ins Netz will, dann bekomme ich die Meldung:

curl#7 - "Failed connect to 127.0.0.1:1080; Verbindungsaufbau abgelehnt"

jetzt bin ich allerdings etwas ratlos, wo die Verbindung abgelehnt wird: Als "legale" Verbindungsmittel stehen Putty unter Windows und CentOS 7 unter VMware zur Auswahl, das System hinter der Firewall läuft ebenfalls unter CentOS-7-Minimal-Install.


Greez

vanquish
2015-01-03, 21:55:44
Funktioniert denn wget? Falls nicht ist die Firewall wohl sehr restriktiv eingestellt. Normalerweise sind die Ports > 1024 offen. Ein Portscan von außen schafft hier dann Klarheit.

Mit curl würde ich es so probieren (ohne Gewähr da selbst so noch nicht gemacht). wget reicht mir eigentlich. außer es wäre natürlich am server nicht verfügbar. :D

curl --socks5 127.0.0.1:1080 http://www.blahblahblah
oder evtl.:
curl --proxy 127.0.0.1:1080 http://www.blahblahblah

--help -> socks[x]