ubuntuusers.de

Mehrere Anwendungen über Port 80 oder 443 laufen lassen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

TobStro

Anmeldungsdatum:
27. Oktober 2007

Beiträge: 53

Ich habe zu Hause einen Ubuntu Server laufen. Ich bin noch nicht sicher, was ich damit alles anfange, aber für den Anfang sollte erstmal SSH und Sockso darauf laufen. Da ich gerne von überall darauf zugreifen würde, sollte jeder Service über Port 80 oder alternativ verschlüsselt über Port 443 erreichbar sein, da diese Ports im Normalfall nicht blockiert werden. Was ich mir vorstelle, ist folgendes Szenario:

Ich lasse einen Apache Server laufen und gebe jeder Anwendung eine andere URL, z.B.:

  • SSH: name.dyndns.org/ssh

  • Sockso: name.dyndns.org/sockso

Der Apache sollte die Daten dann über jeweils unterschiedliche Ports an die Anwendung weiterleiten. Ist das möglich? Ich habe mich schon versucht, etwas schlau zu machen, mod_proxy, mod_alias, mod_redirect, fühle mich da etwas verloren. Kann mich hier jemand in die richtige Richtung leiten?

Die nächste Frage wäre, ob und wie ich dann jede Anwendung auch über SSL laufen lassen kann. Auf dem Client bräuchte ich dann eventuell etwas wie stunnel, aber kann Apache die Daten dann entschlüsseln und unververschlüsselt an die Anwendung weiterleiten und umgekehrt?

Ich bin durchaus bereit, mich erstmal in das Thema einzulesen, weiß aber im Moment nicht genau, wo ich anfangen soll.

Vielen Dank schon mal im voraus.

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Du kannst den Diensten doch auch direkt sagen, dass sie an Port 80 bzw. 443 lauschen sollen. Ansonsten gibt es zumindest für SSH auch Dinge wie Ajaxterm, die den Zugriff auf SSH über HTTP(S) bereitstellen.

Gruß

TobStro

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2007

Beiträge: 53

Ich kann aber nicht mehrere Anwendungen auf Port 80 lauschen lassen und es werden sicherlich noch einige hinzukommen. Des Weiteren gibt es manchmal auch Content Filter, die ich gerne mittels eines SSL Tunnels umgehen möchte, auch wenn die Anwendung eventuell kein SSL unterstützt. Auch dies sollte für mehrere Anwendungen funktionieren.

Vielleicht gibt es dafür auch einfachere Lösungen als gleich einen Apache aufzusetzen?

TobStro

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2007

Beiträge: 53

Das ganze ließe sich auch super für Instant Messenger nutzen in unsicheren Netzwerken (z.B. öffentlichen Hotspots). Instant Messenger mittels SSL nach name.dyndns.org/icq tunneln und der Heimserver leitet es an den ICQ Server weiter.

Ich würde also gerne sämtliche Anwendungen über einen einzigen Port 443 tunneln. Der Apache würde den Datenverkehr dann an die richtigen Server weiterleiten. Damit könnte ich sämtliche Anwendungen von überall auf sicherem Weg erreichen und müsste mir keine Gedanken mehr über geschlossene Ports, Content Filter usw. machen, solange https nicht blockiert wird.

Kann mich hier niemand in die richtige Richtung leiten. Ist das ganze so überhaupt möglich?

Mike1

Avatar von Mike1

Anmeldungsdatum:
2. Januar 2008

Beiträge: 2092

Wohnort: Niederösterreich

Warum nicht einfach einen SSH-Tunnel?

ssh -D LOKALERPORT USER@HOST -p HOSTPORT
     -D [bind_address:]port
             Specifies a local “dynamic” application-level port forwarding.  This works by allocating a
             socket to listen to port on the local side, optionally bound to the specified bind_address.
             Whenever a connection is made to this port, the connection is forwarded over the secure
             channel, and the application protocol is then used to determine where to connect to from
             the remote machine.  Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will
             act as a SOCKS server.  Only root can forward privileged ports.  Dynamic port forwardings
             can also be specified in the configuration file.

             IPv6 addresses can be specified with an alternative syntax: [bind_address/]port or by
             enclosing the address in square brackets.  Only the superuser can forward privileged ports.
             By default, the local port is bound in accordance with the GatewayPorts setting.  However,
             an explicit bind_address may be used to bind the connection to a specific address.  The
             bind_address of “localhost” indicates that the listening port be bound for local use only,
             while an empty address or ‘*’ indicates that the port should be available from all inter‐
             faces.

Für Anwendungen die keine Proxies unterstützen kann man tsocks verwenden. Ist in der Schule ganz praktisch weil da alles außer Port 80 und 443 geschlossen ist und ich über den Tunnel auf den Router zuhause (ein Linksys WRT54GL ♥ ) trotzdem IRC&Co verwenden kann.

TobStro

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2007

Beiträge: 53

Mike1 schrieb:

Warum nicht einfach einen SSH-Tunnel?

Weil häufig ausschließlich SSL Verbindungen auf Port 443 gestattet werden. Ich benötige also definitiv einen SSL Tunnel, damit das ganze auch wirklich überall funktioniert.

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Hi!

TobStro schrieb:

Weil häufig ausschließlich SSL Verbindungen auf Port 443 gestattet werden. Ich benötige also definitiv einen SSL Tunnel, damit das ganze auch wirklich überall funktioniert.

Ähm da hast du was falsch verstanden... HTTPS und SSH Traffic ist nicht zu unterscheiden, da beide verschlüsselt sind (auf Basis von SSL) das macht es auch so schwierig, Tunnel zu unterbinden (glaub mir ich habe reichlich Erfahrung damit 😉) Brauchst du Apache unbedingt? Oder geht es nur ums Tunneln? Dann wäre folgendes einfach: SSH-Server an Port 443 binden, am Client einen dynamischen Port auf den Server weiterleiten und das wars! Der ganze Spaß funktioniert allerdings nur über Port 443, da der essentielle Befehl CONNECT auf Port 80 nicht erlaubt/implementiert ist.

MfG nefarius

TobStro

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2007

Beiträge: 53

Der Thread ist schon etwas älter, aber ich hatte keine Zeit mich damit zu beschäftigen.

@nefarius2k8 Also ich bin mir ziemlich sicher, dass SSH von SSL unterschieden werden kann. SSH verwendet auch kein SSL, sondern ein anderes Protokoll (nämlich SSH ☺ ) und kann deshalb auch gefiltert werden.

SSH über Port 443 habe ich bereits probiert und es funktioniert nicht immer, selbst wenn SSL funktioniert. Die einzige Möglichkeit, die ich derzeit sehe, ist, einen SSL Tunnel aufzubauen und darin einen SSH Tunnel. Diese doppelte Verschlüsselung verlangsamt die Verbindung jedoch sehr.

ig

Avatar von ig

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 199

Hallo

Ist nur so eine Idee aber wiso kein OpenVPN Tunnel auf Port 80/443

Die anderen Dienste könntest du auf den gewohnten Ports lassen, bis auf den Apache den könntest du auf 8080 oder so verschieben.

Und hier ist sonst noch DIE Lösung aus dem Linux-Magazin 01/10. Du installierst Sslh. dies ist ein SSl-SSh-Multiplexer. Er lauscht auf Port 443 und findet heraus ob eine Https oder eine SSH Verbindung angefordert wird und vermittelt entsprechend an den SSH/Https Dienst. http://www.rutschle.net/tech/sslh.shtml

Gruss Sebi

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Hoi,

nur so am Rande: SSL ist kein Protokoll, es ist eine Technologie 😉 Du kannst es ja mal mit OpenVPN probieren, so mach ich es zumindest (und es exisitieren bereits over9000 Threads zu diesem Thema). Wie so oft kann ich dir dazu nur mein Tutorial ans Herz legen, ahja

FROHES FEST EUCH ALLEN ☺

MfG nefarius

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

ig schrieb:

Und hier ist sonst noch DIE Lösung aus dem Linux-Magazin 01/10. Du installierst Sslh. dies ist ein SSl-SSh-Multiplexer. Er lauscht auf Port 403 und findet heraus ob eine Https oder eine SSH Verbindung angefordert wird und vermittelt entsprechend an den SSH/Https Dienst. http://www.rutschle.net/tech/sslh.shtml

Das kann OpenVPN schon von Haus aus, Port-Sharing mit 443 (was bitte ist Port 403?), man lese die zahlreichen Threads, auf die ich diesbezüglich schon geantwortet habe.

MfG nefarius

ig

Avatar von ig

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 199

nefarius2k8 sorry mit Port 403 da habe ich mich vertippt, sollte natürlich 443 heissen. Werde das gleich mal Editieren

Auch ja euch auch allen ein schönes Fest 😀

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Kein Problem, ja wie gesagt, OpenVPN unterstützt alles was man braucht, vor allem das Port-Sharing ist sehr nützlich, ist alles in meinem HowTo beschrieben 😉

TobStro

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2007

Beiträge: 53

nefarius2k8 schrieb:

Kein Problem, ja wie gesagt, OpenVPN unterstützt alles was man braucht, vor allem das Port-Sharing ist sehr nützlich, ist alles in meinem HowTo beschrieben 😉

Wie gesagt, ich kann ausschließlich SSL über Port 443 nutzen. Alles andere wird geblockt, nichts mit SSH, nichts mit VPN, nur SSL. Das habe ich schon auf verscheidenen Servern getestet. Es werden häufig Content-Filter eingesetzt, die SSH oder VPN Verbindungen erkennen und schon beim Aufbau blockieren.

Also stellt sich hier weiterhin die Frage, wie ich mehrere Anwendungen mit verschiedenen Ports über SSL tunneln kann?

prometheus0815

Anmeldungsdatum:
12. Juni 2006

Beiträge: 7478

TobStro schrieb:

Wie gesagt, ich kann ausschließlich SSL über Port 443 nutzen.

Wie gesagt: SSL ist kein Netzwerkprotokoll.

Alles andere wird geblockt, nichts mit SSH, nichts mit VPN, nur SSL.

OpenVPN verwendet SSL für Verschlüsselung und Schlüsselaustausch. Genau deshalb könnte es die Lösung für Dein Problem sein.

Antworten |