Kann man einen Webserver über den Synolgy Webserver nach Außen weiterleiten?

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
und dein Webserver, also jene Kiste, die Port 80 vom Router abbekommt, wie genau heisst die? Und von wem kommt der 404? Ist das ein Synology 404 oder kommt der ev von deinem Receiver? Mal statt der IP einen Hostnamen versucht?
 

asheiner

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Ok. PEBKAC.
Die Meldung kommt von meinem Provider, weil nur die www. an meinen Dyndns host weitergeleitet wird und hier dann https an meine DS.

Beim mod_proxy habe ich den Receiver über https://www.mydomain.eu/UFS922 erreicht.
Ich muss zugeben, dass ich hier bei der Rewrite rule keinen Plan habe.

Aber auch wenn es dann funktionieren würde .... wie könnte ich dann den Zugriff einschränken, dass ich die Seite nur aus der DSM Oberfläche sehen kann :confused:
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Für die mod-rewrite Geschichte brauchst du einen zweiten Hostnamen. Dazu kannst du nicht www.deinedomain.tld verwenden, da dieser Name ja bereits deiner DS gehört. Du brauchst also einen zweiten Namen, der auf deine DS zeigt z.B. receiver.mydomain.eu
diese Namen baust du dann in die htaccess ein
Code:
[FONT=monospace]
[/FONT]RewriteEngine on 
RewriteCond %{HTTP_HOST} ^receiver.mydomain.eu$ 
RewriteRule ^(.*)$ http://192.168.1.200:9000$1 [P] 
RewriteLog "/tmp/rewite.log" 
RewriteLogLevel 9
 

asheiner

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
einen Schritt weiter also...
Ich habe einen DNS Eintrag ufs922.mydomain.eu angelegt und der Request kommt auch an der DS an.
Allerdings bekomme ich im Browser dann die Fehlermeldung
Die Dateien unter https://ufs922.mydomain.eu/ konnten nicht gefunden werden.

Wenn ich in der .htaccess die RewriteRule mit Flag [L] setze geht's.
Aber natürlich nur intern, da dann ja keine Proxyfunktionalität gegeben ist und die URL auf die interne Adresse 192.168.1.200:9000 zeigt.

mod_proxy generell muss aber ja enabled sein da die Konfiguration in der httpd.conf-user ja immer noch funktioniert.
Rich (BBCode):
ProxyPass /UFS922 http://192.168.1.200:9000/
ProxyPassReverse /UFS922 http://192.168.1.200:9000/
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ProxyPass und ProxyPassReverse habe ich nicht gesetzt in meiner Konfig. Afaik braucht man das ned wenn man via htaccess den ProxyRequest auslöst. wie genau schaut denn dein htaccess aus?
 

asheiner

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
braucht man denke ich auch nicht.
Ich wollte nur sagen, dass die Proxyfunktionalität damit klappt.

Meine /volume1/web/.htaccess sieht so aus:
Rich (BBCode):
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ufs922.mydomain.eu$
RewriteRule ^(.*)$ http://192.168.1.200:9000$1 [P]

Die Verwendung des Hostnamens anstatt der IP macht auch keinen Unterschied.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
was hast du denn beim Testen als hostname anstelle der IP versucht? ufs922.mydomain.eu würde nur funzen wenn du sicherstellst, dass der Server diesen Namen mit der lokalen IP auflöst. Ich spreche eigentlich alle meine Proxy Hosts via Name und ned via IP an.
 

asheiner

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Ich habe den Hostnamen in Kurzform
RewriteRule ^(.*)$ http://ufs922:9000$1 [P]
und in Langform
RewriteRule ^(.*)$ http://ufs922.home.de:9000$1 [P]
ausprobiert.

Die DS löst auf Shellebene beide Formen richtig auf.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Bei beiden Namen löst die DS die IP zur lokalen IP deines Receivers auf? Dannn sollte es eigentlich klappen... Hast du auf dem Receiver auch irgendetwas was auf Port 80 antworten würde? so zum testen ob es doch am Portwechsel liegen könnte. Oder mal schnell einen Apache auf den Client installieren und schauen ob die DS auf Port 80 korrekt "proxien" tut
 

asheiner

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
tada ....
Kaum schreibt man's richtig geht's auch schon.

Ich habe beim Rewrite vor dem $1 einen Slash eingefügt.
Also so:
Rich (BBCode):
RewriteRule ^(.*)$ http://ufs922:9000/$1 [P]

Alerdings habe ich dann immer noch mein 2. Problem, dass die Seite jetzt natürlich generell von außen erreichbar ist.

Ich habe jetzt in der .htaccess ein Userauthentifizierung mit eingebaut.
Aber die greift jetzt bei allen Seiten; auch bei meinem Weaveminimal.
Kann man das auf die RewriteRule beschränken?
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
oh die Sache mit dem Slash. Hab ich gar nicht mehr dran gedacht. Sorry ;-)
Das mit dem passwd wird nicht so einfach. Denn htpasswd wirkt auf das gesamte Verzeichnis und alle Verzeichnisse darunter. Du müsstest ein Unterverzeichnis in web machen für die htaccess Datei mit dem Proxy. Ich könnte mir aber vorstellen, dass dann der Receiver falsche URLs liefert, die dann der Client nicht nutzen kann. Es würde ja durch das zusätzliche Unterverzeichnis etwas zur URL dazukommen, was der Receiver nicht kennen kann. Ob die Sache mit dem Unterverzeichnis klappen kann hängt von der Art der URLs ab, die der Receiver generiert. Wenn diese URLs relativ sind, dann sollte es eingentlich problemlos klappen. Es gibt aber viele Scripte die absolute Pfade resp Pfade ausgehend vom Hostnamen generieren. In diesem Fall würde es schwierig werden mit einem Subdir
 

peterfido

Benutzer
Mitglied seit
20. Mrz 2011
Beiträge
35
Punkte für Reaktionen
0
Punkte
6
Hallo,

ich habe eine funtionierende Lösung schon im MyKathrein Forum gepostet.

Hier nochmal mein Lösungsansatz:

Fernzugriff auf den UFS via NAS (DS211j)
Hallo,

ich habe heute mal etwas Zeit investiert um den UFS auch außerhalb meines VPN z.B. per Smartphone zu erreichen.

Meine Vorraussetzungen:
UFS922 V2.0
Fritzbox
DYNDNS-Account
NAS (Synology Diskstation DS211j)
Putty als SSH Client
Möglichkeit den UFS über IR zu starten. Das IR-Signal wird von einer selbstgebauten Schaltung erzeugt. Bedienung über eigene Weboberfläche (Nicht notwendig, wenn der UFS anderweitig gestartet wurde). Es gibt auch Mods für die DS, um ein serielles Signal per USB-Seriell Wandler auszugeben. Dieses kommt später evtl. mal....

Was nicht Schaden kann:
Zeit, Erfahrung das NAS bei falscher Handhabung wieder in den Ausgangszustand zurückzusetzen.
Bei einem anderen NAS sollten diese Modifikationen auch möglich sein. Wichtig ist ein Apache Webserver auf diesem, Telnet oder SSH Zugang.

Ich schließe nicht aus, dass ich das ein oder andere Detail vergessen zu erwähnen. Dieses wird dann nachgepflegt. Allgemeine Vorgänge lasse ich weg, diese können zu Hauf im Netz gefunden werden (z.B. DynDNS einrichten)

Zuerst habe ich DynDNS eingerichtet, damit die Fritzbox aus dem Internet erreichbar ist. Da die Fritzbox Oberfläche schonmal offen war, auch gleich die Portfreigabe zum NAS eingerichtet (Netzwerk>Freigaben>Portfreigaben) Dort dann den Port 80 auf die IP des NAS weiterleiten.
Anschließend den Webserver auf dem NAS aktiviert. Standardmäßig wird eine ganz normale Website gehostet. Diese beinhaltet zu Testzwecken nur eine statische HTML Seite.
Testen, ob die Seite vom Internet aus erreichbar ist, kann nicht schaden.
Dann per SSH über Putty auf das NAS eingeloggt. Benutzername ist root und als Kennwort das admin-Kennwort des NAS genommen (Bei anderen NAS evtl. anders)
Für mein NAS das ipkg installiert, um den Texteditor nano auf dem NAS zu installieren. Diesen habe ich genutzt, um die config Dateien des Apache Servers anzupassen. Es gibt aber auch andere Wege dafür.
Als nächstes habe ich die Konfigurationsdatei des Apache angepasst. Dazu in Putty

Rich (BBCode):
nano /usr/syno/apache/conf/httpd.conf-user

eingegeben.
Dann mit STRG und V ganz nach unten gescrollt. Dort folgenden Inhalt (Evtl. an eigene IP-Adressen anpassen) mit Rechtsklick angefügt:



Rich (BBCode):
#Weiterleiten/Umbiegen auf andere Geräte
#
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<IfModule proxy_module>
        ProxyRequests Off
        <Proxy *>
        Order deny,allow
        Allow from 192.168.2
        AuthType Basic
        AuthName "Bitte Kennwort eingeben"
        AuthUserFile /usr/syno/apache/conf/.htusers
        AuthGroupFile /dev/null
        Require valid-user
        </Proxy>
        ProxyPass /ufsstarten http://192.168.2.35
        ProxyPassReverse /ufsstarten http://192.168.2.35
        ProxyPass /ufs922 http://192.168.2.56:9000
        ProxyPassReverse /ufs922 http://192.168.2.56:9000
        ProxyPass /Schedule http://192.168.2.56:9000/Schedule
        ProxyPassReverse /Schedule http://192.168.2.56:9000/Schedule
        ProxyPass /Settings http://192.168.2.56:9000/Settings
        ProxyPassReverse /Settings http://192.168.2.56:9000/Settings
        ProxyPass /Recordings http://192.168.2.56:9000/Recordings
        ProxyPassReverse /Recordings http://192.168.2.56:9000/Recordings
        ProxyPass /Timer http://192.168.2.56:9000/Timer
        ProxyPassReverse /Timer http://192.168.2.56:9000/Timer
        ProxyPass /tvtv http://192.168.2.56:9000/tvtv
        ProxyPassReverse /tvtv http://192.168.2.56:9000/tvtv
        ProxyPass /Current http://192.168.2.56:9000/Current
        ProxyPassReverse /Current http://192.168.2.56:9000/Current
        ProxyPass /SetTimer http://192.168.2.56:9000/SetTimer
        ProxyPassReverse /SetTimer http://192.168.2.56:9000/SetTimer
        ProxyPass /DeleteTimer http://192.168.2.56:9000/DeleteTimer
        ProxyPassReverse /DeleteTimer http://192.168.2.56:9000/DeleteTimer
        ProxyPass /Detailed http://192.168.2.56:9000/Detailed
        ProxyPassReverse /Detailed http://192.168.2.56:9000/Detailed
        ProxyPass /icon http://192.168.2.56:9000/icon
        ProxyPassReverse /icon http://192.168.2.56:9000/icon
        ProxyPass /Standby http://192.168.2.56:9000/Standby
        ProxyPassReverse /Standby http://192.168.2.56:9000/Standby
</IfModule>


Anschließend STRG+X drücken, dann die Frage auf Speichern mit y beantworten. Den vorgeschlagenen Dateinamen mit ENTER bestätigen.
Dann

Rich (BBCode):
nano /usr/syno/apache/conf/.htusers

eingegeben.
Dort kommt jetzt ein Benutzername und Kennwort rein. Dieses kann man hier berechnen lassen. Dazu Name und Kennwort dort eingeben und auf Generate .htaccess klicken. Im unteren Fenster dann den Inhalt kopieren und dann im Putty Fenster einen Rechtsklick zum Einfügen machen. Dann wieder mit STRG X beenden, y für Änderungen speichern klicken und ENTER für die Dateinamenübernahme.

Dann noch

Rich (BBCode):
 sh /usr/syno/etc.defaults/rc.d/S97apache-user.sh restart

bei Putty eingeben, um den Apache neu zu starten.

Jetzt kann man den UFS aus dem Internet erreichen. Dazu

Rich (BBCode):
meinedomain.dyndns.org/ufs922

eingeben. Wenn alles richtig gemacht wurde, sollte jetzt nach dem Benutzernamen und Kennwort gefragt werden. Anschließend wird die Weboberfläche des UFS angezeigt. Meine Tests waren soweit erfolgreich. Was nicht geht, sind Filme aus dem Archiv zu kopieren. Über

Rich (BBCode):
meinedomain.dyndns.org/ufsstarten

erscheint die Oberfläche des Atmel um den UFS aus dem Standby aufzuwecken.

Wie Funktionierts? Der Apache fungiert als Reverse Proxy, leitet also alle Anfragen aus dem Netz entsprechend weiter und passt Ausgaben an die jeweilige IP an. Es müssen alle Ordner einzeln weitergeleitet werden. Würde man z.B. den icon Pfad weglassen, würden die Icons wie Film und Co nicht erscheinen, bzw ein Platzhalter dafür. Nebenbei kommen wir über Port 80 auf den UFS, da der Apache auch die Ports berücksichtigt. Es würde auch ohne die .htaccess Datei gehen, aber dann könnte jeder "Spaßvogel" auf den UFS zugreifen.

Gruß
peterfido
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

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