27. Januar 2010

PHP SSL-VPN?

Category: Produkte — Christian @ 19:52

Ich suche ein Stück Software, das folgende Anforderungen erfüllen sollte:

Required:

  • SSL-Portforwarding, d.h. eine TCP-Verbindung (mind. SSHv2) über HTTPS
  • muss mit Web-Proxys und Proxy-Authentisierung zurechtkommen
  • muss im Kontext eines vorhandenen Apache Webservers laufen, weil nur eine IP-Adresse zur Verfügung steht und dort bereits ein Webserver läuft
  • Darf Geld kosten, muss aber nicht 😉

Nice to have:

  • SSL-VPN, d.h. eine echte IP-Verbindung über HTTPS
  • Open Source

Die Software soll auf einem meiner Webserver installiert werden und das Problem lösen, dass ich ab und an in fremden Firmen sitze, eine SSH-Verbindung nach Hause brauche aber nur HTTP und HTTPS über den Proxy bekomme. Es gibt nur eine (dynamische) IP-Adresse und ich kann auch nicht einfach einen SSH-Dienst an 443 binden, weil da weiterhin ein normaler Webserver laufen muss.

Insbesondere die Anforderung, dass das im Kontext einen vorhandenen Webservers laufen muss, scheint ein Problem zu sein. Die diversen SSL-VPN Appliances wollen alle den Port 443 alleine haben. Das ließe sich bei nur einer IP-Adresse zwar mittels Port-Forwarding auf dem DSL-Router lösen, nur brauche ich an Port 443 trotzdem noch einen normalen HTTPS-Webserver. Eine zweite IP-Adresse geht leider auch nicht.

Ich habe jetzt mit Webtunnel rumgespielt, das macht aber nicht so ganz das was ich gern hätte. Außerdem habe ich HTTPTunnel gefunden, das eine Version enthält die das in PHP implementiert. Nur kriege ich über die PHP-Version kein SSHv2 zum Laufen. Da bricht mein SSH-Server immer mit einer Fehlermeldung ab. Außerdem können beide nur TCP-Forwarding, kein echtes IP-VPN. Die üblichen Verdächtigen wie OpenVPN oder GNU HTTPTunnel scheiden aus, weil sie nicht im Kontext meines Webservers laufen. Und PHP kann ich nicht so gut programmieren, dass ich den HTTPTunnel-Fehler beheben könnte.

Alternativ wäre auch ein PHP-SSH, also ein SSH-Server im Kontext des Webservers ok. Ich finde nur gar nix, das mein Problem lösen würde. Open Source Lösungen werden bevorzugt, was nicht heißt, dass es nichts kosten darf.

Ach ja, und welchen PHP-Proxy (mit ähnlichen Anforderungen wie oben, d.h. muss über HTTPS im Kontext eines Apache Webservers laufen) würdet Ihr mir empfehlen?

5 Comments

  1. moin,
    guck dir mal folgendes an, vllt ist das ja was für dich:
    http://openvpn.net/index.php/open-source/documentation/manuals/69-openvpn-21.html
    –port-share host port
    When run in TCP server mode, share the OpenVPN port with another application, such as an HTTPS server. If OpenVPN senses a connection to its port which is using a non-OpenVPN protocol, it will proxy the connection to the server at host:port. Currently only designed to work with HTTP/HTTPS, though it would be theoretically possible to extend to other protocols such as ssh.

    Comment by Lufthansen — 27. Januar 2010 @ 20:21

  2. moin,

    ich würde SSLH empfehlen. Das ist ein Multiplexer für HTTPS- und SSH-Verbindungen. Am Port 443 lauscht der SSLH-Daemon. Eingehende HTTPS-Verbindungen leitet er an den lokalen Apachen weiter und eingehende SSH-Verbindungen an den opensshd.

    http://freshmeat.net/projects/sslh/

    Merkt egenlich keiner, dass auch SSH auf Port 443 erreichbar ist.

    Comment by name — 27. Januar 2010 @ 20:53

  3. Ah cool. Vielen Dank. Jetzt weiß ich was ich am Wochenende mache (und worüber sich meine Freundin ärgern wird). 😉

    Comment by Christian — 27. Januar 2010 @ 21:59

  4. OpenVPN läuft übrigens gut. Danke für den Tipp.

    Comment by Christian — 20. Februar 2010 @ 18:12

  5. Kommentare gesperrt wegen Spam

    Comment by Christian — 20. Februar 2010 @ 18:14

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.