PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Komplexes Port-Tunneling Problem



KyroxX
07.11.04, 00:53
Folgendes komplexes Problem:
(daher auch der konfuse Titel...)

Ich habe auf einem Client einen Browser. (Ein Proxy sperrt sämmtliche Zugriffe auf Ports, welche nicht 80 heissen ;)
Mein Server hat Port 80 offen, darauf läuft mein Apache2.
Dann habe ich noch diverse andere Ports offen. Wie z.B. Webmin 10000(http), Usermin 20000(http), et cetera.

Darauf kann ich von meinem Clienten logischerweise nicht zugreifen.
Da ich dies aber gern möchte, gibt es 2 theoretische Möglichkeiten dieses Problem zu lösen.

Möglichkeit 1:
Ich bringe dem Apache bei, alle Packete die z.B. auf "server.domain/webmin" zeigen auf server.domain:10000 zu leiten und von dort aus alle Antwortenden Packete durch Port 80 an meinen Clienten zurück zu schicken.

Möglichkeit 2:
Ich baue mir ein Intelligentes Tool, welches anhand der Packet-Informationen erkennt ob eine Anfrage an: "server.domain/webmin" geht und daraufhin an "server.domain:10000" weiterleitet und deren Antworten zurück an Port 80 des Clients schickt.

Meine Frage:
Wie realisiere ich das?

Habe schon diverse Versuche gestartet
unter Anderem:
mod_rewrite,
mod_proxy,
verschiedene TCP-Wrapper
(denen allerdings Features fehlten)

Freue mich auf eure Antworten ;)

Grüße
KyroxX

IT-Low
07.11.04, 10:12
Meine Frage:
Wie realisiere ich das?


Hast du eine Shell auf deinem Server bzw. kommst du auch direkt drauf (nicht über den Proxy, z. B. mit SSH)? Wenn ja, dürfte httptunnel dein Freund sein:
http://www.nocrew.org/software/httptunnel.html

Terran Marine
07.11.04, 13:07
Möglichkeit 1:
Ich bringe dem Apache bei, alle Packete die z.B. auf "server.domain/webmin" zeigen auf server.domain:10000 zu leiten und von dort aus alle Antwortenden Packete durch Port 80 an meinen Clienten zurück zu schicken.


Hallo,

aus der c't 24/03 :


---
Der kleine Heim-Webserver macht es möglich, den digitalen Videorecorder VDR von überall aus über eine gesicherte Verbindung zu programmieren.


Würde man von außen direkt darauf zugreifen wollen, müsste man also zusätzlich Ports zu potenziell fehlerhaften und angreifbaren Serverdiensten öffnen. Außerdem laufen die Dienste erst einmal nicht über eine abhörsichere HTTPS-Verbindung.


An dieser Stelle kommt das Proxy-Modul mod_proxy des Webservers Apache ins Spiel. Es nimmt HTTPS-Anfragen aus dem Internet entgegen und leitet sie als HTTP-Anfragen an die entsprechenden Anwendungen weiter. Diese können sogar auf einem anderen Rechner im lokalen Netz laufen. Um beispielsweise einen auf dem Rechner 192.168.0.112 laufenden Linux-VDR unter der URL https://hostname/vdradmin/ von außen zugänglich zu machen, schreibt man folgende Zeilen in die Datei \xampp\apache\conf\httpd.conf:

<IfModule mod_proxy.c>
ProxyRequests On
ProxyPass /vdradmin/
http://192.168.0.112:8001/
</IfModule>
---

Bitte nicht verklagen, ist ja nur ein kleiner Ausschnitt.

Ist es das, was du meinst ?

Gruß
Terran

KyroxX
07.11.04, 14:38
hey ja genau -
das hab ich bisher nich auf die Reihe bekommen ;)
thx! =)

Grüße

KyroxX
07.11.04, 14:52
was sagst du dazu:
* Apache2 has detected a syntax error in your configuration files:
Syntax error on line 196 of /etc/apache2/conf/apache2.conf:
ProxyPass needs a path when not defined in a location
(hab gentoo linux drupp, da liegt alles inner apache2.conf)

Config:

Versuch 1:
"<IfModule mod_proxy.c>
ProxyRequests On
ProxyPass http://host.domain/webmin/
https://127.0.0.1:10000/
</IfModule>"

Versuch 2:
"<IfModule mod_proxy.c>
ProxyRequests On
ProxyPass /webmin/
https://127.0.0.1:10000/
</IfModule>"

Wenn das kein Path is den ich bei ProxyPass anegeben hab -.-
nagut kein vollständiger path - aber ich kann auch schlecht in meinem Client-Browser /var/www/ ... eingeben lol

Gruß

Terran Marine
07.11.04, 18:24
was sagst du dazu:
* Apache2 has detected a syntax error in your configuration files:
Syntax error on line 196 of /etc/apache2/conf/apache2.conf:
ProxyPass needs a path when not defined in a location

Wenn das kein Path is den ich bei ProxyPass anegeben hab -.-
nagut kein vollständiger path - aber ich kann auch schlecht in meinem Client-Browser /var/www/ ... eingeben lol



Hast du mal versucht, es einfach innerhalb einer location zu definieren ?

Gruß
Terran

KyroxX
07.11.04, 19:44
hmm wegen der config - das war nen einfacher syntaxfehler :/

Allerdings ist es nun das prob- das ich bei webmin Internal Server Error bekomm und bei allen anderen services "Bad Gateway" -

Hmm - muss da mal schaun -
Probiers jetzt mal mit location - guter tipp

EDIT: Brauchte ich alles nicht:
ein:
SSLProxyEngine On
hat ausgereicht -

aber wenn ich mich jetzt bei webmin anmelde:
"NO Cookie"

Aber das is quartsch - ich glaub der versucht den cookie jetzt auf dem serever abzulegen nicht auf meinem clienten. Hat jemand ne idee wie man cookies durch mod_proxy an den cleinten weiterleitet?

thx 4 info

Grüße