PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port teilen: Apache und OpenVPN gleichzeitig?



xplod
04.12.10, 18:26
Hallo zusammen.

Ich habe mal eine Frage zur Machbarkeit:
Ist es möglich, den Apache so zu konfigurieren, dass er bei Domäne x auf Port 80 und 443 lauscht, und bei Domäne y nur auf Port 80, dafür Port 443 einem anderen Programm wie OpenVPN zur Verfügung stellt?

Port 443 ist bei vielen Firmen nicht geblockt. Wenn man also mal Daten "nach Hause telefonieren" muss wäre 443 der ideale Port. Leider wird dieser Port schon für diverse Domänen genutzt, aber es gibt noch andere (vielleicht sogar Subdomänen???) die kein SSL aktiviert haben. Könnte ich vielleicht die Addresse openvpn.domain.de:443 anlegen openvpn mappen?

Gruß
_X_

:Edit: Der Server besteht aus einem OpenSuse Linux 11.2 mit Plesk Admin Interface...

DrunkenFreak
04.12.10, 19:04
Das hat mit Domains in erster Linie wenig zu tun. Das ist alleine die Sache des Apaches. Wichtig ist, bei welchen IPs der Port geöffnet wurde. Hast du nur eine IP, wird das ganze nicht gehen. Dafür musst du dir einen anderen Port suchen.

xplod
04.12.10, 22:00
Dachte ich mir schon. Ich hatte nur gehoft, dass man in der Datei httpd.conf irgendwie angeben kann, das Zugriffe auf diese Domäne + Port an einen anderen Port weitergereicht werden.
Aber da ausser mir wohl niemand das Problem hat denke ich mal, dass ich auf vpn verzichten muss...

Danke für die Info,
_X_

ctFreez
05.12.10, 00:28
Moin

die man Page sagt folgedes dazu:


--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.
Not implemented on Windows.


vieleicht hilft dir das weiter ...

Gruß Felix

kreol
05.12.10, 01:53
Wenn Du an Cheffe vorbei willst wird Dir der Hint auf iptables wenig helfen (mangels root). Aber das kann Portmapping.


Kreol

xplod
08.12.10, 18:34
--port-share host port <...>

vieleicht hilft dir das weiter ...
Gruß Felix
Hat es, danke.

Leider ist das Problem noch nicht zu 100% gelöst:

Ich musste mein openvpn manuell auf die neuste Version updaten, und kann nun "port-share localhost 1443" im .conf file von openvpn verwenden.

Wenn ich nun https:domain:443 aufrufe, dann kommt ein SSL_RX Fehler. Wenn ich nur http:domain:443 aufrufe kommt die Plesk Standardseite über eine fehlende Domainzuordnung. (also als ob ich eine nicht definierte Subdomain angesprochen hätte)

So wie es aussieht funktioniert das weiterleiten des Servernamens nicht, und ich weiß nicht, wie ich das hinbekomme. Hat da einer eine Idee zu? Ich habe leider zwei Domains mit reichlich Subdomains gleichzeitig laufen, so dass ich die Auflösung der Namensräume sauber hinbekommen muss...

Hat jemand genau dieses Problem schon mal gelöst?
openvpn.conf


proto tcp
port 443
port-share 127.0.0.1 1443


httpd.include (Plesk generiert, händisch angepasst)


<VirtualHost <hier_ip_hindenken>:1443>
ServerName domain.tld:1443
...

@kreol: Wen meinst du mit Cheffe? Ausserdem ist das mein Server, und da habe ich root Rechte. Trotzdem würde ich auf IPTables gerne verzichten, da ich mir damit den Server (er steht einige 100km entfernt) zumauern kann, so dass ich selbst nicht mehr heran kann... Ausserdem schließe ich lieber überflüssige Dämonen als dass ich mir die Ports zunagel. Ist ein Server, kein Desktop...

Danke für eure Hilfe...
Gruß
_X_

cane
08.12.10, 23:53
Port 443 ist bei vielen Firmen nicht geblockt. Wenn man also mal Daten "nach Hause telefonieren" muss wäre 443 der ideale Port.

man "umts-stick" funktioniert in jedem Unternehmens Netz ;-)

mfg
cane

xplod
09.12.10, 15:22
So. Ich habe das Problem endlich beheben können:

Das Problem lag wohl daran, dass sich beide Services um die externe IP geprügelt haben. Die Kunst liegt darin, openvpn die externe IP und apache-ssl den Loopback Adapter zuzuordnen:

/etc/openvpn/openvpn.conf


local <hier_externe_ip_hindenken>
proto tcp
port 443
port-share 127.0.0.1 443


/etc/apache2/listen.conf


Listen 80
...
Listen 127.0.0.1:443


/srv/www/vhosts/.../conf/httpd.include


NameVirtualHost localhost:443

<VirtualHost localhost:443>
ServerName <domain.tld>:443
...
</VirtualHost>
<VirtualHost <hier_externe_ip_hindenken>:80>
ServerName <domain.tld>:80
...
</VirtualHost>


Wenn man das macht laufen beide Services auf Port 443 einwandfrei zusammen...

@Cane: Wenn du in einem Stahlbetonbau, wo du wen überhaupt EDGE hast, ein mehrere hundert MB großes Simulationsmodell verschicken willst, dann kannst du genauso gut die Dateien in Hex-Format ausdrucken, nach Indien zum Abtippen schicken und die die abgetippten Texte auf CD zu dir nach Hause schicken lassen... Ginge wahrscheinlich sogar schneller...

Gruß
Dirk