{"id":459,"date":"2012-01-27T01:46:23","date_gmt":"2012-01-27T00:46:23","guid":{"rendered":"http:\/\/blog.embedded-system-design.de\/?p=459"},"modified":"2012-01-27T01:46:23","modified_gmt":"2012-01-27T00:46:23","slug":"ssh-ruckwarts-durch-den-tunnel","status":"publish","type":"post","link":"https:\/\/blog.embedded-system-design.de\/index.php\/2012\/01\/27\/ssh-ruckwarts-durch-den-tunnel\/","title":{"rendered":"SSH: R\u00fcckw\u00e4rts durch den Tunnel"},"content":{"rendered":"<p>Heute mal wieder etwas zum Tunnelgraben&#8230; Wie ein Benutzer durch eine Firewall von innen nach au\u00dfen tunneln kann, hatte ich einmal <a href=\"http:\/\/blog.embedded-system-design.de\/?p=174\">hier berichtet<\/a>. Jetzt stehe ich vor dem umgekehrten Problem, einen Server hinter einer Firewall erreichen zu wollen, die keine Verbindungen hinein l\u00e4sst &#8211; Fernwartung l\u00e4\u00dft gr\u00fc\u00dfen. Wenn eine Verbindung jedoch von drinnen nach draussen m\u00f6glich ist, hilft wieder einmal SSH weiter. Dazu m\u00fcssen auf beiden Rechnern SSH-Server installiert und ein Benutzer hinter der Firewall behilflich sein. Das ganze geht wie folgt&#8230;<\/p>\n<p>Nennen wir mal den Server, den wir hinter der Firewall erreichen wollen <em>ServerBehindTheWall<\/em> und den Benutzer <em>UserWhoWantsAccess<\/em> sowie den Computer mit dem wir zugreifen von Drau\u00dfen wollen <em>ClientWhoWantsAccess<\/em>. Den Benutzer, der uns hinter der Firewall unterst\u00fctzt, taufen wir <em>UserBehindTheWall<\/em>.<\/p>\n<ol>\n<li>Der Benutzer hinter der Firewall muss die Verbindung aufbauen. Er f\u00fchrt folgendes auf dem <em>ServerBehindTheWall<\/em>aus:\n<pre>ssh -nNT -R 6666:localhost:22 UserBehindTheWall@ClientWhoWantsAccess<\/pre>\n<p>Dieser Aufruf sorgt daf\u00fcr, dass Verbindungen auf Port 6666 am <em>ClientWhoWantsAccess<\/em> an den Port 22 auf <em>ServerBehindTheWall<\/em>umgeleitet werden. Die Parameter -nNT sind optional. Der Parameter <tt>-n<\/tt> f\u00fchrt dazu, dass SSH die Standardausgabe mit \/dev\/null verbindet; <tt>-N<\/tt> weist SSH an, nur den Tunnel aufbauen und keinen Befehlskanal aufzubauen und <tt>-T<\/tt> kein Pseudo-Terminal auf dem Remote-System zu allokieren.<\/li>\n<li>Der Benutzer vor der Firewall kann jetzt an <em>ClientWhoWantsAccess<\/em> seinen lokalen Port 6666 benutzen, um sich \u00fcber den aufgebauten Tunnel mit dem SSH-Server auf <em>ServerBehindTheWall<\/em>zu verbinden:\n<pre>ssh -p 6666 UserWhoWantsAccess@localhost<\/pre>\n<\/li>\n<\/ol>\n<p>Neben SSH &#8211; normalerweise auf Port 22 &#8211; funktioniert das ganze nat\u00fcrlich mit jedem anderen Dienst auf dem <em>ServerBehindTheWall<\/em>. So lassen sich z.B. Versionsverwaltungssysteme erreichen &#8211; vorrausgesetzt, jemand hinter der Firewall ist behilflich und initiiert die Verbindung nach Schritt 1.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heute mal wieder etwas zum Tunnelgraben&#8230; Wie ein Benutzer durch eine Firewall von innen nach au\u00dfen tunneln kann, hatte ich einmal hier berichtet. Jetzt stehe ich vor dem umgekehrten Problem, einen Server hinter einer Firewall erreichen zu wollen, die keine Verbindungen hinein l\u00e4sst &#8211; Fernwartung l\u00e4\u00dft gr\u00fc\u00dfen. Wenn eine Verbindung jedoch von drinnen nach draussen &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/blog.embedded-system-design.de\/index.php\/2012\/01\/27\/ssh-ruckwarts-durch-den-tunnel\/\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,3,8],"tags":[53],"_links":{"self":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/459"}],"collection":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/comments?post=459"}],"version-history":[{"count":0,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/459\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/media?parent=459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/categories?post=459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/tags?post=459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}