Port443 gemeinsam mit Apache und OpenVPN nutzen
Guten Morgen und allen einen schönen Sonntag!
Ich bin Hanne und habe mit IT nicht wirklich viel am Hut!
Komme aber die meiste Zeit zurecht! Jetzt stoße ich aber gerade an meine Grenzen und hoffe ihr könnt mir helfen!
Zu meiner Frage ich betreibe einen kleinen Server (Ubuntu Linux 14.04) der vorwiegend als Openvpn Server genutzt wird!
Jetzt möchte ich auch noch einen Webserver nutzen und habe mich für den Klassiker Apache entschieden!
Leider kommt der Openvpn Server und Apache nicht miteinander zurecht! Da beide den port443 für sich beanspruchen!
Laut Netz Recherche kann man aber mit "port-share" mein Problem lösen!
Ich bin aber zu Doof dazu(
ich habe folgendes probiert:
#Openvpn.conf:
port 443
local (meine öffentliche IP)
port-share 127.0.0.1 443
proto tcp-server
#ports.conf von Apache2
Listen 80
Listen 127.0.0.1:443
<IfModule ssl_module>
Listen 443
</IfModule>
Leider funktioniert nur entweder der Openvpnserver oder der Apache!
Welchen Fehler mache ich?
Bin sehr dankbar für jede Hilfe!
LG
Hanne
Ich bin Hanne und habe mit IT nicht wirklich viel am Hut!
Komme aber die meiste Zeit zurecht! Jetzt stoße ich aber gerade an meine Grenzen und hoffe ihr könnt mir helfen!
Zu meiner Frage ich betreibe einen kleinen Server (Ubuntu Linux 14.04) der vorwiegend als Openvpn Server genutzt wird!
Jetzt möchte ich auch noch einen Webserver nutzen und habe mich für den Klassiker Apache entschieden!
Leider kommt der Openvpn Server und Apache nicht miteinander zurecht! Da beide den port443 für sich beanspruchen!
Laut Netz Recherche kann man aber mit "port-share" mein Problem lösen!
Ich bin aber zu Doof dazu(
ich habe folgendes probiert:
#Openvpn.conf:
port 443
local (meine öffentliche IP)
port-share 127.0.0.1 443
proto tcp-server
#ports.conf von Apache2
Listen 80
Listen 127.0.0.1:443
<IfModule ssl_module>
Listen 443
</IfModule>
Leider funktioniert nur entweder der Openvpnserver oder der Apache!
Welchen Fehler mache ich?
Bin sehr dankbar für jede Hilfe!
LG
Hanne
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 266384
Url: https://administrator.de/contentid/266384
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
25 Kommentare
Neuester Kommentar
Hallo Hanne,
hast Du das schon mal getestet:
http://www.vpntutorials.com/tutorials/openvpn-sharing-a-port-with-a-web ...
Viele Grüße,
Ribiku
hast Du das schon mal getestet:
http://www.vpntutorials.com/tutorials/openvpn-sharing-a-port-with-a-web ...
Viele Grüße,
Ribiku
Ich bin Hanne und habe mit IT nicht wirklich viel am Hut!
Keine wirklich guten Voraussetzungen für ein Administrator Forum und für das was du vorhast, ...aber schaun mer mal...und habe mich für den Klassiker Apache entschieden!
Eine gute Wahl...Leider kommt der Openvpn Server und Apache nicht miteinander zurecht! Da beide den port443 für sich beanspruchen!
Logisch ! Das ist so wie beim Highlander... Es kann nur einen geben !!Wenn du beide Ports also TCP 80 und TCP 443 für den Webserver brauchst dann hast du keine Chance. Machst du aber auf dem Apachen kein HTTPS und nur HTTP mit TCP 80 dann kansst du natürlich TCP 443 im Apache "umbiegen" wie in den obigen Links beschrieben.
Vermutlich musst du das aber gar nicht.
Gibt es einen triftigen Grund warum du 443 für OpenVPN nutzen musst und nicht mit dem Standard Port UDP 1194 leben kannst ??
Auch ist es generell erheblich kontraproduktiv wenn du OpenVPN mit einer TCP Encapsulation im Tunnel laufen lässt. Die OVPN Knowledge Base rät aus guten Grund zwingend davon ab und rät immer UDP zu verwenden. (Performance, Overhead)
Wenn du nun OVPN bei dir auf UDP 443 laufen lässt bekommst du auch eine friedliche Koexistenz mit HTTPS im Apachen hin.
Noch besser ist es du migrierst dein OVPN auf deinen Router:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Falls alle Stricke reissen lässt du den OVPN Server eben auf einem kleinen 30 Euro Raspberry Pi im Netzwerk laufen
Netzwerk Management Server mit Raspberry Pi
Gibt es keine Chance beide Anwendungen über den selben Port zu betreiben?
Nein keine ! Das ist technisch nicht möglich.Denk mal drüber nach...wie sollte der Server denn entscheiden wenn einmal OVPN Daten und einmal Apache Daten über ein und denselben Port reinkommen an welche Applikation er das weiterreichen soll.
Das ist so wenn ein Zwillingspärchen mit gleicher Stimme im dunkeln Wald laut "Hanne" brüllt. Wie willst du unterscheiden ob das nun Zwilling A oder B ist. Du verstehst glaub' ich, oder ?!
Wie gesagt wenn dein Webserver kein HTTPS benötigt dann biegst du dessen Port um. Bedingt dann aber das Clients die dann HTTPS sprechen wollen mit dem Server immer https://<url>:<Port> eingeben müssen.
Wenn das nicht geht hast du keine andere Chance !
Dann musst du entweder mit einem Virtualisierer KVM, Virtual Box etc. einen OVPN Server als separate VM auf dem Server laufen lassen oder du stellt den Raspberry Pi oder ein NUC oder was auch immer als separates VPN Gateway ind Netz.
Andere Optionen hast du nicht.
Technisch am besten ist wie gesagt so oder so IMMER die Option das VPN auf eine Router oder Firewall auszulagern um immer unabhängig vom Server und dessen verfügbarkeit zu sein.
Also nochmal....
Der Browser macht per Default 443 (:443 muss man nicht angeben) aber wenn man das ändert am Webserver muss man logischerweise den Port dem Browser mitgeben.
TCP 443 ist dann damit aber frei für dein OVPN.
So einfach ist das !
http://www.vpntutorials.com/tutorials/openvpn-sharing-a-port-with-a-web ...
Mein Apache kann dann https seiten Dahrstellen
JA ! Aber dadurch das du den HTTPS Port "umgebogen" hast auf einen anderen TCP Port z.B. TCP 60443 oben müssen Clients im Browser nun dediziert diesen Port angeben mit https://<server_url>:60443 wenn sie per HTTPS auf deinen Server wollen.Der Browser macht per Default 443 (:443 muss man nicht angeben) aber wenn man das ändert am Webserver muss man logischerweise den Port dem Browser mitgeben.
TCP 443 ist dann damit aber frei für dein OVPN.
So einfach ist das !
Wie muss ich das konfigurieren?
http://httpd.apache.org/docs/2.4/bind.html (Kapitel: Angabe des Protokolls bei Listen )http://www.vpntutorials.com/tutorials/openvpn-sharing-a-port-with-a-web ...
Und was ist Listen 127.0.0.1:443 ??? Da haben wir doch wieder den TCP 443 !
Tu uns einen Gefallen und lies bitte die oben zitierte Apache Doku zu dem Thema ! Dr. Google hat auch zig Seiten dazu:
http://bit.ly/1Bl6BUK
Tu uns einen Gefallen und lies bitte die oben zitierte Apache Doku zu dem Thema ! Dr. Google hat auch zig Seiten dazu:
http://bit.ly/1Bl6BUK
Kann niemals sein.
Vermutlich hängt TCP 443 dann nur am localhost Port der ja normal von den Applikationen nicht benutzt wird. Somit ist er dann von extern auf dem LAN Port frei.
Birgt aber trotzdem eine latente Gefahr für den Dauerbetrieb. Besser du stellst den von 127.0.0.1 auch um das der Apache nirgendwo mehr den 443 Port "sieht".
Vermutlich hängt TCP 443 dann nur am localhost Port der ja normal von den Applikationen nicht benutzt wird. Somit ist er dann von extern auf dem LAN Port frei.
Birgt aber trotzdem eine latente Gefahr für den Dauerbetrieb. Besser du stellst den von 127.0.0.1 auch um das der Apache nirgendwo mehr den 443 Port "sieht".
@aqui:
Ohne dir jetzt in die Parade fahren zu wollen: gemäß diesem Tutorial ist ein port-sharing möglich, wenn OpenVPN auf dem 443 lauscht, da OVPN die HTTPS-Anfragen dann an einen anderen Port weiterleiten kann...
Ich habe es zwar selbst noch nicht ausporbiert, aber laut Doku ist die Funktion vorhanden...
Ohne dir jetzt in die Parade fahren zu wollen: gemäß diesem Tutorial ist ein port-sharing möglich, wenn OpenVPN auf dem 443 lauscht, da OVPN die HTTPS-Anfragen dann an einen anderen Port weiterleiten kann...
Ich habe es zwar selbst noch nicht ausporbiert, aber laut Doku ist die Funktion vorhanden...
Also:
Du konfigurierst deinen Apache so, dass er die SSL-Verbindungen auf einem anderen Port entgegennimmt (z.B: 50443).
In deiner Open-VPN-Konfiguration trägst du dann ein:
Und dann sollte es funktionieren. (Ohne Gewähr, ich habe es noch nie ausprobiert)
Beste Grüße!
Berthold
PS: Das OVPN-Manual sagt dazu folgendes:
Du konfigurierst deinen Apache so, dass er die SSL-Verbindungen auf einem anderen Port entgegennimmt (z.B: 50443).
In deiner Open-VPN-Konfiguration trägst du dann ein:
proto tcp
port 443
port-share 127.0.0.1 50443
Beste Grüße!
Berthold
PS: Das OVPN-Manual sagt dazu folgendes:
--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.
@BirdyB
Sorry du hast Recht. Wer lesen kann.... Shame on me.
Ich hatte die "Proxy" Funktion des OVPN übersehen....ist halt Sonntag
Sorry nochmal für die Konfusion.
So wie im Tutorial beschrieben funktioniert es fehlerlos. Habs eben mal auf einem RasPi bei OVPN getestet...
Sorry du hast Recht. Wer lesen kann.... Shame on me.
Ich hatte die "Proxy" Funktion des OVPN übersehen....ist halt Sonntag
Sorry nochmal für die Konfusion.
So wie im Tutorial beschrieben funktioniert es fehlerlos. Habs eben mal auf einem RasPi bei OVPN getestet...
Guckst du hier:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Die Server conf ist volkommen identisch nur das die Ports entsprechend angepasst sind und der "share" Parameter zugekommen ist.
Beim Apachen steht nur Listen 60443 wie im Tutorial.
Denk dran das du bei Änderungen den Apachen mit etc/init.d/apache2 restart neu starten musst.
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Die Server conf ist volkommen identisch nur das die Ports entsprechend angepasst sind und der "share" Parameter zugekommen ist.
Beim Apachen steht nur Listen 60443 wie im Tutorial.
Denk dran das du bei Änderungen den Apachen mit etc/init.d/apache2 restart neu starten musst.