DSM 6 Reverse Proxy

atmon

Benutzer
Mitglied seit
05. Dez 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo Leute,

vielleicht könnt Ihr mir helfen,

Ich versuche unter andrem, den DSM HTTPS Zugriff auf eine Subdomain umzuleiten und möchte dafür ein Reverse Proxy einzurichten.
Hab noch andere Intentionen mit dem Reverse Proxy.

Unter /usr/local/etc/httpd/sites-enabled/httpd-vhost.conf-user trage ich meine Sachen ein.

Wenn ich aber Webserver dienst neustarte, wird dieser File jedesmal neu erstellt.

Die frage also, weis jemand wo der Ursprung file ist? Oder gehe ich die Sache falsch an?


Vielen dank in Voraus.

MFG

Angelo
 

eddie irvine

Benutzer
Mitglied seit
14. Jan 2009
Beiträge
166
Punkte für Reaktionen
3
Punkte
18
Ich habe unter DSM 6 final den Reverse Proxy jetzt in der Systemsteuerung unter "Anwendungen=>Anwendungsportal=>Reverse Proxy" konfiguriert.
Funktioniert ohne Probleme und man muss keine Dateien mehr per Konsole konfigurieren.
 

mrlee

Benutzer
Mitglied seit
15. Sep 2011
Beiträge
13
Punkte für Reaktionen
1
Punkte
3
Moin,

überlege gerade wegen des reverse Proxys upzugraden. habe bereits eine relativ komplexe confog auf 5.2 laufen, kannst Du mal einen ascreenshot von den Konfigurationsmöglichkeiten posten?

danke
Mr.Lee
 

eddie irvine

Benutzer
Mitglied seit
14. Jan 2009
Beiträge
166
Punkte für Reaktionen
3
Punkte
18
Hi,

hier ein Screenshot:

ReverseProxyDSM6.jpg
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Für viele Anwendungen reicht die GUI-Einrichtung aus. Wer mehr benötigt, kann aber Nginx nutzen und ein eigenes Config einbinden.
- Unter Webstation auf Nginx umstellen
- Ein Config mit der Endung .conf im Verzeichnis "/usr/local/etc/nginx/sites-enabled/" erstellen

Somit hat man wieder alle Möglichkeiten, wie bestimmte Anfragen automatisch auf HTTPS umleiten, rewrites etc...

Gruß
DerLord
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Hi zusammen,

eine Frage, wozu wird diese Funktion benötigt ?

Ich bin nämlich auf der Suche nach einer Möglichkeit, von der Firma aus auf z.B. die Audiostation auf meinem NAS zu Hause zuzugreifen. Leider ist in der Firma alles bis auf den Port 80 gesperrt, und die Audiostation läuft eben auf Port 5000. Kann mir diese Funktion dazu irgendwie behilflich sein ?

Danke für Eure Infos.

Gruß
Fraubi
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Ja, das wäre für deine Zwecke zB eine Lösung. Ist denn auch Port 443,offen?
Ich habe mir ein Dutzend verschiedenster Webservices in meinem LAN auf einen Reverse Proxy gelegt.Jeder ist nun über eine eigene Subdomain von außerhalb per Standardport 443 (https) erreichbar. Du kannst es aber genauso gut über Port 80 realisieren, ist dann halt nur unverschlüsselt.
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Port 443 wäre auch offen, aber nur für bestimmte Webseiten. Also müsste ich über Port 80 gehen.

Ich habe einen Dyndns-Account. Damit greife ich bislang von extern auf mein NAS zu. Auf Port 80 läuft auf dem NAS bereits der Webserver.

Wenn ich jetzt auf die Audiostation, die auf Port 5000 läuft aus der Firma zugreifen möchte, müsste ich als Zielport Port 80 eingeben ? Gibt das dann nicht Probleme mit dem laufenden Webserver auf Port 80 ?

Kannst Du mir kurz dazu noch einige Infos geben, stehe etwas auf dem Schlauch.......

Besten Dank
Fraubi
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Nein, das funzt schon alles subba. Aber es gibt da mehrere Möglichkeiten anzusetzen.
Ich antworte morgen früh was ausführlicher, bin nicht mehr am Rechner und mit dem Handy ist es schon etwas mühsam
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Das wäre super nett von Dir und ich würde mich echt freuen, wenn ich mit Deiner Hilfe der Lösung meines "Problems" ein wenig näher kommen würde.

Viele Grüße
Fraubi
 

ssab

Benutzer
Mitglied seit
20. Aug 2014
Beiträge
107
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

wie löst ihr denn das mit der Zertifikats-Geschichte bei mehreren Subdomains? Mein SSL-Anbieter stellt mir nur ein Zertifikat auf eine Subdomain + Hauptdomain aus. Und eigentlich würde ich das ganze viel lieber über https://domain.de/Dienstname lösen, statt über Subdomains. Geht das auch mit dem Reverse Proxy?
 

rubinho

Benutzer
Mitglied seit
06. Jun 2009
Beiträge
62
Punkte für Reaktionen
4
Punkte
8
Es gibt prizipiell 2 Wege das Zertifikatsproblem beim Reverseproxy zu lösen.

Die erste Variante wäre mittels SubjectAlternateName.
Du kannst mehrere Namen in das Zertifikat einbinden.

Die andere Variante ist eine Wildcard

Ich habe mir ein Universal Zertifikat für meine Domain erstellt.
Du musst dafür ein Stern vor deine Domain setzen und alles ist gut. Hier ein Beispiel *.deinedomain.de
Damit bist du für die Zukunft sicher und musst nix an den Zertifikaten mehr machen.

Gruß
Rubinho
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Wildcards werden von LE (noch?) nicht unterstützt. Es gibt Petitionen, aber wer weiß was dabei rumkommt. Schick wäre es allemale. Von daher bleibt hier mit LE erstmal nur der Weg über die von rubinho angesprochene Variante der AlternateNames.
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
@fraubi
Erstmal sorry, das ich mich jetzt erst melde. Hatte gestern Abend in meinem jugendlichem Leichtsinn gesagt, ich würde dir heute Morgen antworten. Aber ich hatte den Zoo-Tag mit den Kids nicht mehr auf dem Schrim.

So, nun zu deinem Anliegen:

Es gibt wie gesagt verschiedene Möglichkeiten. Zum einen VirtualHost über Apache oder jetzt mit DSM 6 Reverse Proxy per nginx. Letzteres ist nun bereits sehr schön eingebettet und vorkonfiguriert.
Beides kannst du über die WebGUI der DSM ermöglichen, was für viele Anwendungen bereits ausreicht. Hier sind die Einstellungsmöglichkeiten aber sehr gering, sodass man schnell an Grenzen stößt.
Ich hatte mir gerade meine ganzen Webservices im LAN per vHost auf Subdomains eingerichtet, was teilweise nicht ganz ohne ist. Gerade wenn es Richtung Websocket (zB Plex Server) geht. Da hatte ich noch DSM 5.2 druff. Als das meiste soweit lief, habe ich dann morgens ein Pushup auf meinem handy erhalten, dass DSM 6 zum Update bereit steht, habe ich natürlich sofort installiert und gesehen das auch nginx vorinstalliert ist. Mittlerweile habe nun alles komplett umgestellt und kann dir aus meiner persönlichen Erfahrung nur dazu raten, ist wirklich eine sehr schicke Sache.
Man ändert hierfür unter Webstation einfach den HTTP-Backend-Server von Apache auf nginx und schon lüppt es. Apache arbeitet nun hinter nginx für php-Anfragen zB, aber dies ist bereits alles vorkonfiguriert, ich musste da nichts mehr machen. Da nginx nun Port 80 für sich beansprucht, regieren die Webseiten auf einen anderen Port, bei mir ist es 914.
Zum manuellen Anlegen von configs, lege einfach eine Datei im Ordner an: "usr\local\etc\nginx\sites-enabled\", zB: "nginx-reverse-proxy.conf". Hier ist entgegen zum Apache kein Include mehr notwendig, da alles .conf Dateien in diesem Ordner automatisch eingebunden werden.
Die Konfiguration ist hier ähnlich wie beim Apache aufgebaut.

Hier ein Beispiel zum NAS:
Rich (BBCode):
	# -------------------------------------------------------------------------------------------------------
	# NAS Server
	# -------------------------------------------------------------------------------------------------------
	server {
        listen 80;
        listen [::]:80;

        server_name nas.meinedomaene.de;

        location / {
            proxy_set_header        Host                $host;
            proxy_set_header        X-Real-IP           $remote_addr;
            proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto   $scheme;
            proxy_intercept_errors  on;
            proxy_http_version      1.1;

            proxy_pass http://localhost:5000;

        }
    }

Und hier das Pendant für den Plex Server
Rich (BBCode):
	# -------------------------------------------------------------------------------------------------------
	# Plex Media Server
	# -------------------------------------------------------------------------------------------------------
    server {
        listen 80;
        listen [::]:80;

        server_name plex.meinedomaene.de;

        location / {
            proxy_set_header        Host                $host;
            proxy_set_header        X-Real-IP           $remote_addr;
            proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto   $scheme;
            proxy_intercept_errors  on;
            proxy_http_version      1.1;
			
			if ($http_x_plex_device_name = '') {
				rewrite ^/$ http://$http_host/web/index.html;
			}
		
            proxy_pass http://localhost:32400;

        }
    }
Ist hier schon etwas übersichtlicher und weniger mühsam als die vHost-Variante mit unzähligen Direktiven etc. Websocket funzt auch 1a. Die Rewrite-Rule sorgt hier zB dafür, dass ich hinter meiner URL nicht das /web eingeben muss.
Wenn du keine Subdomains zur Verfügung hast, kannst du beim server_name auch mit Pfadangaben arbeiten, zB: meinedomaene.de/nas oder meinedomaene.de/audiostation

Wichtig ist bei beiden Varianten (apache + nginx) nur, dass du den Port 80 und ggf. 443 per Portforwarding auf deinen NAS mit dem Proxy durchschleifst. Qeull-Port und Ziel-Port sind dabei jeweils identisch, können auf Wunsch aber auch abweichen. nur dann musst du das in der Config entsprechen ändern.

Dies oben sind nur zwei recht simple Beispiele um das Ganze ein wenig zu verdeutlichen. Ich bastel selber gerade noch ein wenig daran und wenn alles per HTTP steht, werde ich auf HTTPS mit Lets Encrypt umsattlen. Imo komme ich da aber nicht weiter, da ich mir beim Testen die Zertifikatssperre eingefahren habe und nun erst mal 7 Tage warten warten muss :-/
Wenn du es dennoch lieber per vHosts realisieren willst, kann ich dir da auch ein paar Tipps geben und funktionierende Beispiele geben (auch wenn ich die Audiostation nicht nutzer und daher nicht weiß wie die tickt). Aber was Performance angeht ist nginx schon eine etwas andere Liga und auch von den Möglichkeiten her. Wie gesagt gerade Richtung Websocket wirds per vHosts schwierig. Das WebIf meiner Dreambox habe ich unter vHosts noch nicht ans laufen bekommen, das der VU+ war kein Ding. Mit niginx bedarf es da keiner zusätzlich Einstellung, es funzt imo einfach alles subba ;-)

Versuchs einfach mal und bei Fragen, fragen... ;-)
 
Zuletzt bearbeitet:

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
@DerLord

Vielen Dank für Deine sehr ausführlichen Erläuterungen. Damit hast Du Dir ja echt Mühe gemacht...Respekt.........

Du hast da so viele Infos für mich zusammengetragen, die muss ich erstmal ganz in Ruhe durcharbeiten und auch verstehen. Ist möglicher Weise kein Hexenwerk, aber vom Verständnis her hab ich da noch meine Probleme.

Hab aber gerade erst DSM 6 installiert und kämpfe noch mit einigen Ungereimheiten. Danach werde ich mich mal an die Umsetzung von Deiner Beschreibung setzen. Wenn ich noch Fragen habe, dann melde ich mich einfach nochmal.

Vielen Dank nochmal für Deine Hilfe und viele Grüße
Fraubi
 

vo5tr0

Benutzer
Mitglied seit
30. Nov 2014
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Hey :)

ich bin leider nicht wirklich in dem Thema Reverse Proxy drin.

Mein Problem ist, dass es vollkommen egal zu sein scheint, was ich im Anwendungsportal unter Reverse Proxy in das Feld Hostname bei der Quelle eintrage. Was ich möchte ist, dass alles an https://subdomain1.meinedomain.net an HostA:5001 weitergeleitet wird und alles an https://subdomain2.meinedomain.net an HostB:443.
Das sollte doch eigentlich funktionieren, oder?

Hoffe ihr könnte mir weiterhelfen :)

Grüße
Julian
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
klar, siehe Post #14

Die Einstellungen über die WebGUI sind OK, aber sonderlich weit kommt man da nicht. Ich hatte es mal testweise ausprobiert, er hat mir dann lediglich unter /web einen Ordner angelegt und darauf in der neu generierten nginx.conf verwiesen . Ob man damit auf bestehende Webservices, vor allem auf andere Geräte, zeigen kann, weiß ich nicht. Versuch es lieber mit dem eigenen Configfile. Da weiß man was man hat ;-)
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
@DerLord - wie sieht denn deine externe Anbindung hinsichtlich Domain aus?
Hast du verschiedene Subdomains per CNAME auf dein DDNS geleitet, oder wie ist das bei dir umgesetzt?
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
ja, genau so ist es imo umgesetzt. Mir gefällt es bislang so ganz gut. Ich muss mir keine Ports, IPs oder Suffixe merken, sondern nur die kurze, sprechende Subdomain. Alles andere wird automatisch gesetzt, inkl. Wechsel auf HTTPS.
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
Hallo,

wenn ich das DSM von 5001 auf 443 mit dem Reverse Proxy umleite, dann kann ich nicht mehr auf die PhotoStation zugreifen da diese ja auch 443 nutzt.
Gibt es eine Möglichkeit das Diese auch unter 443 mit der selben Domain zugänglich ist?

Dank & VG
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat