[Howto] Alle Webdienste über https Port 443

  • [NAS Typ:] TS-239
    [Firmware:] 3.2.0
    [Getestet:] ja
    [Sonstige Modifikationen:] keine


    Häufig möchte der eine oder andere User die Webdienste (Webserver, Multimedia, Download, Filemanager, Admin-GUI) seines NAS vom Internet über die Standardports 80 bzw. 443 erreichen.


    Dies ist auf dem NAS mit der GUI nicht konfigurierbar, da folgendes Verfahren verwendet wird:


    1. Der Standard-Webserver (Qweb) ist Apache und läuft auf Port 80 (http)
    2. Die Admin-GUI läuft über Tiny HTTP (thttp) auf Port 8080
    3. Secure HTTP (https) wird über keinen der beiden Webserver direkt abgewickelt, sondern von stunnel realisiert


    Die Lösung funktioniert, ob sie gut ist, ist eine andere Frage...


    Um alle Dienste über die Standardports 80 und 443 erreichbar zu machen, sind folgende Anpassungen notwendig (Firmware 3.2 TS-239):


    1. In der Admin-GUI wird unter Allgemeine Einstellungen "Sicherer Anschluss aktivieren" auf Port 8443 eingestellt.


    Damit erreichen wir, dass stunnel gestartet wird.


    2. In der Datei /etc/config/stunnel/stunnel.conf wird am Ende folgende Änderung durchgeführt:

    Code
    1. [https]accept = 8443connect = 127.0.0.1:8080TIMEOUTclose = 0[https-all]accept = 443connect = 127.0.0.1:80TIMEOUTclose = 0


    Der erste Abschnitt [https] sollte automatisch erzeugt worden sein, indem für die Admin-GUI die sichere Verbindung aktiviert worden ist. Der zweite Abschnitt [https-all] wird von uns hinzugefügt. Dieser bewirkt, dass alle https-Anfragen über den Standardport 443 auf den Apache-Webserver auf Port 80 weitergeleitet werden.


    Auf dem Router, der die Verbindung weiterleitet, sollte später nur Port 443 und NICHT Port 80 auf das NAS weitergeleitet werden! Das ist sonst etwas gefährlich und durch die Lösung auch nicht notwendig.


    3. Über die Admin-GUI unter "Netzwerkdienst" den Webserver starten und den sicheren Anschluss (SSL) NICHT aktivieren. Ggf. deaktivieren.


    Das verhindert, dass die stunnel-Konfiguration mit der Apache-Konfiguration kollidiert. Nur einer der beiden darf Port 443 benutzen!


    4. Jetzt kann stunnel mit


    Code
    1. /etc/init.d/stunnel.sh restart


    neu gestartet werden und wir können folgendes testen:


    http://MEINNAS sollte die Qweb-Apacheseiten anzeigen
    https://MEINNAS sollte auch die Qweb-Apacheseiten anzeigen
    http://MEINNAS:8080 sollte die Admin-GUI anzeigen
    https://MEINNASIP:8443 sollte auch die Admin-GUI anzeigen


    5. Nun zum spannenden Teil


    In die Datei /etc/config/apache/apache.conf werden folgende Zeilen am Ende hinzugefügt:



    [EDIT] Im Code wurde noch das Mapping für die Hilfe (/help/) hinzugefügt, die sonst nicht angezeigt wird. [/EDIT]


    und danach der Apache mit /etc/init.d/Qthttpd.sh restart neu gestartet. MEINNAS kann entweder der DNS-Name des NAS sein oder die IP-Adresse des NAS.


    Mit der Konfiguration wird dem Apache beigebracht alle URIs, die mit /cgi-bin oder /ajax_obj beginnen, nicht selbst zu beantworten, sondern diese die URL http://MEINNAS:8080/... weiterzuleiten. Das sind genau die URIs, die alle NAS-Anwendungen und die Admin-GUI verwenden.


    Eigene cgi-Skripte muss man dann ggf. in ein anderes Verzeichnis legen. Das kann in der apache.conf entsprechend konfiguriert werden.


    6. Testen


    http://MEINNAS sollte die Qweb-Apacheseiten anzeigen
    https://MEINNAS sollte auch die Qweb-Apacheseiten anzeigen
    http://MEINNAS:8080 sollte die Admin-GUI anzeigen
    https://MEINNASIP:8443 sollte auch die Admin-GUI anzeigen
    http://MEINNAS/cgi-bin/html/login.html sollte die Admin-GUI anzeigen


    https://MEINNAS/cgi-bin/html/login.html sollte ebenfalls die Admin-GUI anzeigen


    Mit der letzten URL sind dann alle Dienste des NAS über https (443) erreichbar. Jetzt noch im Router eine NAT für Port 443 auf NAS-IP:443 einrichten und das wars...


    Viel Spaß,


    Jan

    Einmal editiert, zuletzt von jpr ()

  • Klasse Anleitung :thumb:


    Ich möchte aber noch darauf hinweisen, dass nach dem weiterleiten des Port 443 der Router diesen nicht mehr für eigene Funktionen benutzen kann.
    Z.B. die Fritzbox verwendet den Port 443 für die Fernwartung. Das sollte man beachten wenn diese Funktion später benötigt und auf der Suche danach ist warum es nicht funktioniert oder falls man dies schon benutzt. ;)


    Edit: Danke Eraser :)

  • WebDAV geht auch so. Das musst du in den Freigabeordnern einstellen.
    Nur Windows7 unterstützt kein WebDAV mehr nativ - das kann auch das NAS nicht ändern.

  • Zitat

    Nur Windows7 unterstützt kein WebDAV mehr nativ - das kann auch das NAS nicht ändern.


    Das stimmt doch so gar nicht. Da möchte ich doch jetzt gerne mal eine Referenz haben, die bestätigt, dass WebDav mit Windows 7 nicht nativ geht. Ich frage mich die ganze Zeit, was ich denn hier mache mit Windows 7 und meinem NAS?!?


    Das einzige, was M$ geändert hat, ist die Security-Einstellungen und das der WebClient-Dienst nicht automatisch gestartet wird.


    Also zunächst in der Registry den entsprechenden Eintrag ändern (Suche im Forum) und dann ein "net start webclient" ausführen.


    Ggf. muss in der Konfigurationsdatei für webdav vom Apache noch ein Eintrag ergänzt werden (Auch das findet sich im Forum), dass ist aber unabhängig vom Windows 7.


    Jan

  • Oh sorry das ist mir wohl bisher entgangen - dabei hab ich vor wenigen tagen extrem nach Lösungen gegoogelt.
    Ist es dann möglich im Windows Explorer über WebDAV zuzugreifen?

  • Hallo,


    habe im moment das Problem das ich den ssl zugang nicht zum laufen kriege, weil ich den Port nicht ändern kann.
    Sonst würde das bestimmt auch gehen.


    Gruß

  • Was spricht - zumindest für Testzwecke - gegen die Nutzung des vorgegebenen Ports 8081? WebDAV funktioniert mit meinem XP-Rechner sowohl lokal als auch remote per https über Port 8081 ganz einwandfrei, nur mit Windows 7 nicht. Ich wär mir daher nicht so sicher, ob es nur an dem Port 8081 liegt...


    Über http kann ich auch mit Windows 7 auf WebDAV zugreifen, auch mit dem Explorer. Du könntest ja mal versuchen, mit Windows 7 auf die WebDAV-Freigabe per https zuzugreifen: https://ip-des-nas:8081/freigabe

  • Nein meinte die Anleitung für https


    Kann man es noch hinbekommen das, wenn man eine .httacess hinterlegt hat und jemand 10x sich falsch anmeldet dann gesperrt wird?


    Gruß

  • nö,


    kann sooft das falsche Pass eingeben wie ich will.


    Gruß


    EDIT:
    ich kann die Qmulimedia Seite nicht aufrufen.
    Muss ich noch was in die config eintragen?


    Webdav über Port 443 von einem WinXP geht. super sache. Jetzt muss ich es nur noch von einem Windows 7 Rechner zum laufen kriegen. :shock:

    Einmal editiert, zuletzt von Terz () aus folgendem Grund: Doppelte Beiträge, bitte bei solchen Fällen den vorhandenen Beitrag editieren/erweitern. ;-)

  • Hi,


    ich glaube, es geht nur "entweder - oder" - ruf die Admin-Oberfläche mal normal auf. Irgendwas war da, dass sich nicht alle über 443 aufrufen lässt...