OpenVPN über SSL Port

Crys

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.634
Servus Zusammen,

bei vielen öffentlichen Routern (Unis, Bibs, ...) sind ja nur die Standard http/s Ports offen und mittlerweile ist der std. OpenVPN-Port 1194 (sowie alle mir bekannten VPN-Ports) ja auch standardmäßig in China blockiert, wo ich mich gerade befinde. Per LTE klappt das noch, aber wie lange noch weiß ich nicht ;)
Deshalb möchte ich gerade auf Port 443 ausweichen, im Betrieb, ohne das etwas schief geht.

Ich möchte (zumindest kurzfristig) zwei Domains am laufen haben, wo der VPN erreichbar ist:
home.domain.de über Port 1194 läuft bereits schon;
vpn.domain.de über Port 443 möchte ich parallel dazu einrichten

Was muss ich jetzt an der Server Konfiguration ändern? Wie mache ich das am geschicktesten?

Beide Subomains (home. & vpn.) verweisen auf die selbe IP, kann ich dann nur im Server selber eine Port-Weiterleitung einstellen, dass alles was von der Subdomain vpn.domain.de:443 an localhost:1194 weiter geleitet wird?
Als DNS/DHCP-Server nutze ich dnsmasq, geht das damit?

Wie sieht es mit den Client Zertifikaten aus, da sollte ja eigentlich alles gleich bleiben!?
Das Server Zertifikat muss ich dann aber neu/zusätzlich für die neue Subdomain vpn. erstellen?

Server ist Ubuntu LTS 16.04, auf dem auch Apache für Webinhalte läuft (deshalb die alternative Subdomain).
Auf den Clients möchte ich weiterhin auf den Server (Samba, ...) und natürlich auf externen Seiten mit https zugrifen können. Ist das vereinbar?

Vielen Dank schon mal :)
 
Theoretisch kannst du nginx parallel zu Apache betreiben, würdest dann aber auf HTTPS über Port 443 bei Apache verzichten müssen.

Apache kann auch Reverse Proxies aber ich weis nicht ob du darüber OpenVPN zum Laufen bekommst.

Ich würde daher einfach mal Nginx anstatt Apache nutzen. Das ist einfach der bessere Webserver und hat ebenso eine riesige Communty & Verbreitung. Daher ist es nicht verkehrt wenn man sich damit ein wenig auskennt :)
 
Da gerade alles sehr gut mit Apache läuft und ich nicht noch eine Baustelle aufmachen möchte, während ich 10Tkm vom Server entfernt bin und noch mich noch nie mit Nginx auseinander gesetzt habe, lasse ich das mal lieber ;)
 
das geht auch so, mit einem Multiplexer :) den nutze ich immer für SSH, HTTPS und OpenVPN auf Port 443

nennt sich sslh https://github.com/yrutschle/sslh

Apache/Nginx läuft dann auf 127.0.0.1:443, OpenVPN auf 127.0.0.1:1194 und SSH auf 127.0.0.1:22, nur der Multiplexer läuft dann auf deiner öffentlichen/Netzwerk IP, zB 192.168.0.50:443, und der regelt dann den Verkehr.
 
Zuletzt bearbeitet:
Crys schrieb:
home.domain.de über Port 1194 läuft bereits schon;
vpn.domain.de über Port 443 möchte ich parallel dazu einrichten
...
Beide Subomains (home. & vpn.) verweisen auf die selbe IP, kann ich dann nur im Server selber eine Port-Weiterleitung einstellen, dass alles was von der Subdomain vpn.domain.de:443 an localhost:1194 weiter geleitet wird?
OK, gleiche IP, also verweisen sie erstmal auf den gleichen Rechner, aber sollen auch beide Webserver auf dem gleichen Rechner laufen?

Falls ja:
Brauchst nichts weiterleiten. Kannst deinen Apache direkt an beiden Ports lauschen lassen. Siehe
https://httpd.apache.org/docs/2.4/bind.html , also 2 mal "Listen ...."

Falls nein:
Dann ist eine Portweiterleitung die ressourcenschonenste Variante, die Webanfragen zur richtigen Stelle zu führen.
 
@ mensch183:
Ich verstehe deine Frage nicht wirklich. Ich habe nur einen Server.
Code:
home.domain.de --v 
 vpn.domain.de --> DynDNS --> Heim Router --> Heim Server

mensch183 schrieb:
[...]Kannst deinen Apache direkt an beiden Ports lauschen lassen. [...]
Was soll der Apache wo lauschen!?
OpenVPN soll ja auch (zusätzlich zum Apache) auf Port 433 lauschen.


@ LieberNetterFlo:
Danke, werde ich mir mal genauer anschauen. Aber ganz verstehe ich das noch nicht ...
 
Ganz Wichtig: ein Port kann immer nur von einer Anwendung geöffnet werden :) also entweder OpenVPN ODER dem Webserver. Eine Domain zeigt auch immer nur auf eine IP, nie auf einen Port. Wenn dein Server nun nur eine IP hat, so kannst du domain.de und vpn.domain.de immer nur auf die selbe IP zeigen lassen.

Du hast die Wahl zwischen dem von mir vorgeschlagenen Multiplexer https://github.com/yrutschle/sslh oder dem in OpenVPN integrieten PortShare Feature http://www.vpntutorials.com/tutorials/openvpn-sharing-a-port-with-a-webserver-on-port-80-443/
 
LieberNetterFlo schrieb:
Du hast die Wahl zwischen dem von mir vorgeschlagenen Multiplexer [...] oder dem in OpenVPN integrieten PortShare Feature [...]
Ich habe nie etwas vorgeschlagen :D

Aber jetzt habe ich es so gemacht, wie im letzten Link beschrieben. Dann habe ich den Apache2 und OpenVPN neu gestartet. Wie zu erwarten ist dabei natürlich meine OpenVPN Verbindung abgebrochen ... und ich kann Sie nicht mehr wiederherstellen :rolleyes:
Jetzt ist wohl der GAU passiert, den ich vermeiden wollte ... mein Server ist jetzt noch per ftp/http erreichbar ... aber nicht mehr VPN oder https ... was mir nichts nützt, da ich auf den Webseiten eine automatische https Weiterleitung eingestellt habe ...


/edit:

Hätte ich in /etc/openvpn/server.conf den Port 1194 und UDP auskommentieren müssen?
 
Zuletzt bearbeitet:
ja, sonst hast du ja zwei selbe Einstellungen, da weiß er wahrscheinlich nicht mehr was er nehmen soll.

Hoffentlich hast du dir einen SSH Tunnel offen gelassen, sodass du es aus der Ferne wieder gerade biegen kannst ;)
 
LieberNetterFlo schrieb:
ja, sonst hast du ja zwei selbe Einstellungen, da weiß er wahrscheinlich nicht mehr was er nehmen soll.
Aber ich wollte ja noch beide Ports nutzen ;)
Geht das nur mit zwei OpenVPN Server?

LieberNetterFlo schrieb:
Hoffentlich hast du dir einen SSH Tunnel offen gelassen, sodass du es aus der Ferne wieder gerade biegen kannst ;)
Nö, aber einen Bruder mit Haustürschlüssel :D
 
ist das ein Server hinter einer Fritzbox oder so? Dann kannst du einfach zwei Portweiterleitungen machen, sowohl von 443 auf 443 als auch von 1194 auf 443 .... wobei dein Server dann nur via TCP erreichbar ist, nicht via UDP.

Wenn du UPD 1194 und TCP 443 willst brauchs du soweit ich das sehe zwei OpenVPN Server Instanzen.
 
Es gibt noch eine Möglichkeit, nämlich über Port knocking.
Das läuft so ab, dass du mit deinem Client eine gewisse Reihenfolge an ports anklopft, dann wird eine temporäre Regel zum umleiten von dieser IP zum vpn Server gemacht. Daweil wird das VPN aufgebaut, und dann wird die Regel entfernt. Die vpn Verbindung bleibt aber bestehen. Ich habe dafür ein Script das prüft ob der server da ist, wenn nicht, dann wird neu verbunden
 
Ok, dann muss ich wohl damit leben. Ich wollte nur für längere Distanz auch noch UDP nutzen, da TCP ja manchmal doch langsamer ist, wenn man auf der anderen Seite der Erde ist.

Jetzt geht OpenVPN auf Port 443, mit obiger Einstellung und ausgeklammerten anderen Ports. Aber der Apache lässt sich dennoch nicht per https ansprechen.
Ich habe nur in der Datei "nano /etc/apache2/ports.conf" auf Port 4545 ergänzt. Muss ich am Apache sonst noch etwas ändern?
/edit: ah, dass hat noch gefehlt: /etc/apache2/sites-available/default-ssl.conf


Vielen Dank an alle für eure Hilfe!
 
Zuletzt bearbeitet:
China schaut aber auch in den Traffic rein, wenns openvpn-pakete finet wirds ggf. auch abgewürgt.
Somit solltest dir ggf auch stunnel4 anschauen.
Und da ist die Sache mit dem Portknocking noch idealer, weil die china-firewall da nicht so einfach nachverbinden kann.
 
Zurück
Oben