PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenVPN und nginx auf port 443



Weedalf
05.02.20, 19:13
Hallo Leute,
ich brauche mal bitte euren Rat.
Ich besitze einen Raspberry Pi 3B mit Raspbian.
Dort betreibe ich einen Jellyfin Medienserver.
Dieser ist mit einem nginx reverse-proxy unter dem Pfad https://webseite.de/jellyfin erreichbar.

Nun möchte ich auch noch einen OpenVPN-Server auf dem selben Port betreiben.erle

Wie stelle ich das am besten an. Am liebsten wäre es mir wenn ich den VPN-Server auch am liebsten mit nginx weiterleiten,
sodass der unter https://webseite.de/vpn erreichbar ist. Dazu lese ich im Internet allerdings nur widersprüchliche Sachen.
Nun gibt es noch die Möglichkeit mit openVPN nicht VPN-Verkehr an Nginx weiterzuleiten. Dazu habe ich allerdings gelesen, dass dann jeglicher eingehender Netzwerkverkehr von nginx als Localhost-Zugriffe angesehen werden.
Wenn ich VPN nutze, dann will ich über meine Heim-IP surfen und auf mein Netzwerk zugreifen können.

Was wäre eurer Meinung nach die beste Lösung für mein Problem?

marce
06.02.20, 06:00
2 Services auf dem gleichen Port geht nicht. Zudem weiß Dein VPN nichts von irgendwelchen URLs - es hat als Endpoint "nur" IP + Port.

-> Such Dir für Dein VPN einen anderen Port aus.

craano
06.02.20, 15:37
2 Services auf dem gleichen Port geht nicht. Zudem weiß Dein VPN nichts von irgendwelchen URLs - es hat als Endpoint "nur" IP + Port.

-> Such Dir für Dein VPN einen anderen Port aus.

Moin,
eigener Port ist hier sicherlich die richtige Lösung. Bei einem IPv6 Anschluss kann man sich natürlich auch einfach eine zweite IP greifen.

Nur mal ein Gedankenspiel. Angenommen es ginge durch eine Firwall nur 443, könnte es dann nich andersrum als vom Ersteller vorgeschlangen gehen?
Alle Anfragen mit URL https://webseite.de/jellyfin werden vom nginx Proxy an den Jellyfin Server geschickt. Den übrigen Traffic leitet nginx an den VPN Server?
Gruß
craano

marce
06.02.20, 17:54
VPN-Traffic hat keine URL - es gibt also nichts, anhand dessen der NginX erkennen könnte, daß das nun VPN kommt und nicht http(s). Siehe auch https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

Weedalf
06.02.20, 18:04
ich möchte den vpn unbedingt auf port 443 haben. Sonst kann man in vielen Netzwerken nicht darauf zugreifen. Ich habe mir mal sslh angesehen aber irgendwie läuft das nicht. sslh lauscht auf port 443 und sollte dann an open vpn und nginex weiterleiten. Diese lauschen dann natürlich auf einen jeweiligen anderen port.

marce
06.02.20, 18:15
Wenn Du reine Paketfilter umgehen willst (und auch darfst?) - es gibt div. Standard-Ports, die eigentlich immer auf sind.

Sollte da aber eine richtige Firewall mit Package-Inspection drin hängen bringt Dir auch 443 nichts da die dann erkennt, daß das kein https sondern irgendwas anderes ist.

Was helfen könnte, wäre über 443 einen SSH-Tunnel aufzubauen und dann lokale Ports durch den durchzureichen.

craano
06.02.20, 21:44
Nur mal ein Gedankenspiel. Angenommen es ginge durch eine Firwall nur 443, könnte es dann nich andersrum als vom Ersteller vorgeschlangen gehen?
Alle Anfragen mit URL https://webseite.de/jellyfin werden vom nginx Proxy an den Jellyfin Server geschickt. Den übrigen Traffic leitet nginx an den VPN Server?


VPN-Traffic hat keine URL - es gibt also nichts, anhand dessen der NginX erkennen könnte, daß das nun VPN kommt und nicht http(s). Siehe auch https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/
Dass VPN Traffic keine URL hat, weiß ich, habe ich auch nicht gemeint.

ngix könnte alle Anfragen mit einer bestimmten URL an einen SSL Webserver weiterleiten, und den übrigen Traffic pauschal an den openVPN Server übergeben.


server {
listen 443;
server_name https-webserver.de ;

location / {
proxy_pass https://localhost:4433;
...
}
}

server {
listen 443;
server_name default_server;

location / {
proxy_pass localhost:1194;
...
}
}

Wie gesagt, dass ist nur eine Idee, keine getestete Konfiguration.

HG
craano

craano
06.02.20, 21:59
Was helfen könnte, wäre über 443 einen SSH-Tunnel aufzubauen und dann lokale Ports durch den durchzureichen.

Sofern alle Clients auch einen SSH Tunnel aufbauen können, ist das auch eine gute Lösung.
Dann kann man aber auch gleich den Jellyfish Server in das Netzt hinter den vpn Server stellen, um diesen durch den vpn-Tunnel erreichbar zu machen.