hanne6
Goto Top

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 dazuface-sad(
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

Content-ID: 266384

Url: https://administrator.de/contentid/266384

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

evolution
evolution 15.03.2015 um 09:10:46 Uhr
Goto Top
ribiku.sith
ribiku.sith 15.03.2015 um 09:16:34 Uhr
Goto Top
Hallo Hanne,

hast Du das schon mal getestet:

http://www.vpntutorials.com/tutorials/openvpn-sharing-a-port-with-a-web ...

Viele Grüße,

Ribiku
aqui
aqui 15.03.2015 aktualisiert um 12:27:02 Uhr
Goto Top
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, face-sad ...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 face-wink
Netzwerk Management Server mit Raspberry Pi
Hanne6
Hanne6 15.03.2015 um 12:35:23 Uhr
Goto Top
Zitat von @aqui:

> 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, face-sad ...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 face-wink
Netzwerk Management Server mit Raspberry Pi

Hallo Aqui
Ich brauche unbedingt TCP da bei meinen Clients fast immer hinter einer Firewall sitzen! Und TCP443 jetzt bei allen 50 Clients konfiguriert ist und gut läuft!
Gibt es keine Chance beide Anwendungen über den selben Port zu betreiben?

Danke für deine Hilfe
BirdyB
BirdyB 15.03.2015 um 12:54:07 Uhr
Goto Top
Hallo Hanne,

wie in den oben angegebenen Tutorials musst du den Apache auf einen anderen SSL-Port setzen und dann in der openVPN-Config den anderen Port des Apachen angeben. Dann werden die HTTPS-Anfragen entsprechend weitergeleitet.

Beste Grüße!


Berthold
aqui
aqui 15.03.2015 aktualisiert um 12:57:14 Uhr
Goto Top
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.
Hanne6
Hanne6 15.03.2015 um 12:59:25 Uhr
Goto Top
Zitat von @BirdyB:

Hallo Hanne,

wie in den oben angegebenen Tutorials musst du den Apache auf einen anderen SSL-Port setzen und dann in der openVPN-Config den
anderen Port des Apachen angeben. Dann werden die HTTPS-Anfragen entsprechend weitergeleitet.

Beste Grüße!


Berthold

Hallo Berthold
Danke für deine Hilfe!
kannst du mir das näher erklären? Habe ich das in meinen conf files nicht schon getan?
(Mein erster Post)
Endschuldige bitte meine Doofe fragerei aber bin wie gesagt kein It Profi!

Danke für deine Hilfe
Hanne
aqui
aqui 15.03.2015 um 13:03:57 Uhr
Goto Top
Nöö, steht da nicht ! Da steht ja weiterhin "443".
Du musst den Apachen auf Listen 60443 z.B. umstellen damit er für HTTPS DIESEN Port benutzt und nicht mehr TCP 443, denn den willst du ja für OVPN haben !
Hanne6
Hanne6 15.03.2015 um 13:07:00 Uhr
Goto Top
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.

Das wäre für mich kein Problem!
Also nochmal langsam damit ich es richtig verstehe!
Mein Apache kann dann https seiten Dahrstellen und das Openvpn geht auch über Port443 ?

Wie muss ich das konfigurieren?

Sorry das ich dumm Frage! Möchte es aber lernen!
Danke
Hanne
aqui
aqui 15.03.2015 aktualisiert um 13:15:44 Uhr
Goto Top
Also nochmal....
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 ...
Hanne6
Hanne6 15.03.2015 um 13:20:55 Uhr
Goto Top
Zitat von @aqui:

Nöö, steht da nicht ! Da steht ja weiterhin "443".
Du musst den Apachen auf Listen 60443 z.B. umstellen damit er für HTTPS DIESEN Port benutzt und nicht mehr TCP 443, denn
den willst du ja für OVPN haben !

Habe meine ports.conf so abgeändert!

Listen 80
Listen 127.0.0.1:443
<IfModule ssl_module>
Listen 60443
</IfModule>


interessanter weiße ist aber die https seite immer noch unter https://xxxxx.eu ereichbar!
Warum muß ich nicht https://xxxxx.eu:60443 angeben?

Danke
Hanne
aqui
aqui 15.03.2015 aktualisiert um 13:29:06 Uhr
Goto Top
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
Hanne6
Hanne6 15.03.2015 um 13:35:58 Uhr
Goto Top
Zitat von @aqui:

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

ich habe es mir durch gelesen!
Was ich interessant finde das es so wie oben gepostet funktioniert!
Das heißt openvpn über 443 und https auch auf 443!
Ist das nun Zufall ?
Bitte entschuldige meine fragerei!
Danke für deine Geduld!

Lg
Hanne
aqui
aqui 15.03.2015 aktualisiert um 13:42:31 Uhr
Goto Top
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".
Hanne6
Hanne6 15.03.2015 um 13:51:01 Uhr
Goto Top
Zitat von @aqui:

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".

Wenn ich die ports.conf so abändere
Listen 80
Listen 60443
<IfModule ssl_module>
Listen 60443
</IfModule>


dann kann ich den apache nicht mehr starten!
Ich blicks nicht

Danke für deine Hilfe!
BirdyB
BirdyB 15.03.2015 um 14:27:13 Uhr
Goto Top
@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...
Hanne6
Hanne6 15.03.2015 um 14:32:30 Uhr
Goto Top
Zitat von @BirdyB:

@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...

Dann geht mein Vorhaben doch??

Danke für Eure Hilfe
Hanne
BirdyB
BirdyB 15.03.2015 aktualisiert um 14:36:17 Uhr
Goto Top
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:
proto tcp
port 443
port-share 127.0.0.1 50443
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:
     --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.
aqui
aqui 15.03.2015 aktualisiert um 15:14:11 Uhr
Goto Top
@BirdyB
Sorry du hast Recht. Wer lesen kann.... Shame on me.
Ich hatte die "Proxy" Funktion des OVPN übersehen....ist halt Sonntag face-wink
Sorry nochmal für die Konfusion.
So wie im Tutorial beschrieben funktioniert es fehlerlos. Habs eben mal auf einem RasPi bei OVPN getestet...
Hanne6
Hanne6 15.03.2015 um 15:15:57 Uhr
Goto Top
Zitat von @aqui:

@BirdyB
Sorry du hast Recht. Wer lesen kann.... Shame on me.
Ich hatte die "Proxy" Funktion des OVPN übersehen....ist halt Sonntag face-wink
Sorry nochmal für die Konfusion.
So wie im Tutorial beschrieben funktioniert es fehlerlos. Habs eben mal auf einem RasPi bei OVPN getestet...

Aqui bist du so nett und veröffentlichst die zwei conf Dateien?
Wäre echt super von dirface-smile

Lg
Hanne
aqui
aqui 15.03.2015 aktualisiert um 15:17:50 Uhr
Goto Top
Sieht ganz genau so aus wie vom Kollegen BirdyB oben bzw. im zitierten Tutorial nur das ich 60443 verwendet habe aber das ist ja nur ein kosmetischer Unterschied face-wink
Hanne6
Hanne6 15.03.2015 aktualisiert um 15:19:49 Uhr
Goto Top
Zitat von @aqui:

Sieht ganz genau so aus wie vom Kollegen BirdyB oben bzw. im zitierten Tutorial nur das ich 60443 verwendet habe aber das ist
ja nur ein kosmetischer Unterschied face-wink

Was hast du außer "Listen" noch im ports.conf stehen denn bei mir geht es so noch nichtface-sad(

LG
Hanne
aqui
Lösung aqui 15.03.2015 aktualisiert um 15:28:10 Uhr
Goto Top
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.
Hanne6
Hanne6 15.03.2015 um 15:28:01 Uhr
Goto Top
Zitat von @aqui:

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.
Super Danke!
H3GE3406
H3GE3406 12.05.2015 aktualisiert um 22:30:12 Uhr
Goto Top
Port Sharing seitens OpenVPN ist ganz nett, hat aber den Nebeneffekt, dass in den Apache Logfiles die IP von OpenVPN steht und das auch nicht sehr "sauber" ist.
Wenn es geht, verwende OpenVPN mit UDP443 und lass den Apache auf TCP443 - UDP bringt dir bei OpenVPN auch spürbare Leistungsteigerung