SSL Web Zugriff nur über Port 443 durch Router ?

  • Hallo


    ich möchte gerne auf diverse Dienste ( Webfilemanager, Multimediastation, Admin Interface, Xdove Webmail, usw. )
    nur über den Port 443, welcher durch meinen Router geforwarded wurde, zugreifen. ( Also Port 80 und 8080 vermeiden, da hier
    denke ich eine unverschlüsselte Webverbindung vorliegt )
    Ist das überhaupt so möglich ? Also z. B. https://lustig.dyndns.org/Qrecords, oder macht mir da die Webserverconfig einen
    Strich durch die Rechnung ? Was müsste ich wo einstellen, ausgehend von einer Standdardconfig und ohne Shell Modifikation ?
    ( Equip: Qnap TS439 Pro hinter Fritzbox 7220 )


    Danke und viele Grüße


    Lichtlord ;)

  • Hi,


    so einfach ist das leider nicht.
    Der Port 443 ist von der Admin-Oberfläche belegt. Alles was unter Qweb liegt wird vom Apache bedient, also Port 80. Das sind 2 getrennte Webserver. Die Admin-Oberfläche läuft unabhängig vom Apachewebserver.
    Wenn du nun den Port 443 zur TS weiterleitest, landest du auf der Adminseite.
    Soll der Apache auch über SSL laufen müsstest du ihm dafür einen anderen Port zuweisen (z.B. 444). Qweb wäre dann unter https://lustig.dyndns.org:444 erreichbar. Ein Zertifikat brauchst du natürlich auch noch. Das ist aber alles nur über die Konsole konfigurierbar.
    Falls du in der FritzBox die Fernwartung aktiviert hast, musst du noch den SSL-Port für FritzBox verlegen.


    Grüße Lutz

  • Hallo Lichtlord,


    Die Lösung für Dein Problem heisst "VPN-Tunnel",
    alles andere funktioniert nicht so wie Du es Dir wünscht.
    Grüße


    J :D dy

  • Hmm, schade, mein Hauptziel war es eigentlich das Roundcube Webinterface vom Xdove Server über 443 von z. B. einem Internetcafe zugänglich zu machen.
    Also der Webserver über 443 wäre ganz nett gewesen, aber nicht unbedingt notwendig.
    Über den Umweg der Admin Start Seite kommt man ja wunderbar über 443 ( SSL ) auf alle Qnap "Urdienste" ( Webfilemanger, Surv. Station usw. )
    nur ist das Xdove Roundcube Webinterface nur auf Port 80 konfiguriert, habe jetzt nicht in der config nachgesehen, aber gibts da evtl. nen kleinen config Kniff, damit das
    Webint über 443 läuft, also https://sehrlustig.dyndns.org/roundcube/ ? Evtl. auch httpd.conf editieren, solange es keine Scripte beeinflusst, weil mir die Funktion schon wichtig wäre ? Der Rest läuft über die umgebogenen Adminstartseite oder Direktlink. Z. B. https://immernochlustig.dyndns.org/Qdownload/
    Aber bei https://oknimmerlustig.dyndns.org/roundcube/index.php findet er den Pfad nicht, ohne das s(ecure) gehts wunderbar.


    VPN ist zwar eine Alternative, aber wollte unabhängig von lokalen Softwarelösungen sein, besonders bei Rechnern, wo Installationssperre vorherrscht :)



    Danke auf Jedenfall für die schnelle und super Hilfe :thumb:


    viele Grüße


    Lichtord :D

  • Zitat von "Lichtlord"

    Evtl. auch httpd.conf editieren, solange es keine Scripte beeinflusst,


    Du könntest die /etc/config/stunnel.conf anpassen:

    Code
    [https]accept  = 443connect = 127.0.0.1:8080TIMEOUTclose = 0


    nach

    Code
    [https]
    accept  = 443
    connect = 127.0.0.1:80
    TIMEOUTclose = 0

  • Schau mal unter OpenVPN... soweit ich mich entsinne, gibt es das ganze als freeware (GNU-Lizenz) und auch als Portable-Version!
    Das würde ich jeder "Frickellösung" bevorzugen :D


    Grüße
    J ;) dy

  • Hi Eraser-EMC2-,


    wird die Datei auch nicht nach einem reboot überschrieben?
    Das wäre ja dann in der Tat ein guter Ansatz.


    Danke Lutz

  • Hmm, ich weiss zwar nicht genau was der stunnel Dienst genau macht, wenn man eine SSL Connection auf einen 80er unverschlüsselten Webdienst umleitet, aber
    ich glaube da könnte der SSL Layer verloren gehen, oder ? Oder erkennt das der http deamon automatisch und verbindet dann mit SSL ?
    Zusätzlich frage ich mich, ob der Roundcube service erstens nicht in der http.conf auf SSL konfiguriert werden muss, und zweitens habe ich gerade 2 getrennte http deamons über die shell ausgespäht. Einmal thttpd und qhttpd. thttpd ist der deamon für den starbaren Webservice und qhttpd, der deamon der generell 443 und alle Qnap "Urdienste" hält. Ich glaube nicht, das es so einfach geht, glaube eher, man muss die virtuelle Seite des roundcube auf SSL setzen, sollte Sie in qhttpd laufen.
    Hat die Lösung denn bei Dir funktioniert ?


    Aber auf jedenfall Danke für die zahlreichen Antworten und nette Hilfe :thumb: :D


    Lichtlord


    PS: Das mit dem Open VPN ist schon eine nette Sache, aber das wäre mir dann zuviel Modifikation in der Software. Will eigentlich so nah wie Möglich am Standard bleiben, falls einmal Probleme etc. auftreten.

  • Zitat von "Lichtlord"

    nur ist das Xdove Roundcube Webinterface nur auf Port 80 konfiguriert, habe jetzt nicht in der config nachgesehen, aber gibts da evtl. nen kleinen config Kniff, damit das
    Webint über 443 läuft, also https://sehrlustig.dyndns.org/roundcube/ ? Evtl. auch httpd.conf editieren, solange es keine Scripte beeinflusst, weil mir die Funktion schhon wichtig wäre ?


    Schon mal hier geäugelt: http://www.roundcube.net/
    443 also SSL geht mit Roundcube.

  • Wieso sollte es mit SSL nicht funktionieren ?
    SSL verschlüsselt doch "NUR" die Verbindung, an der einen Stelle ist der Browser, der ganzen Anfragen und Rückmeldungen verschlüsselt bzw. entschlüsselt.
    Auf der Server/NAS Seite ist es der stunnel-Dienst (wird von der NAS-WebGUI genutzt) und reiccht es dem Web-Server (Apache) weiter.


    Mit dem ändern der stunnel.conf wird nur die SSL-Verbindung von NAS-WebGUI auf den Apache umgebogen. Gut damit verliert man das Administrieren des NAS über SSL, aber eine einfache Alternative.


    Schöne Grüße,
    Stefan

  • Solange der Apache Server auch SSL anfragen auf Port 8080 / 80 annimmt, funktioniert es.
    Du biegst ja sozusagen den Connect von Port 443 auf 80 um, der aber mit dem SSL Proctocol ankommt.
    Wahrscheinlich erkennt das der Apache und schaltet dann auf SSL um, laienhaft gesprochen.


    Ich bin aber schon einen Schritt weiter. Habe festgestellt, das alle Dienste des Qnap zusätzlich über SSL erreichbar sind ( Qmultimedia, Qrecord, usw. ), jedoch Dienste, jene per QPKG eingespielt wurden, reagieren nur auf Port 80 ( Joomla, XDove, PHPMyAdmin ) Dies hat folgenden Hintergrund. Es laufen 2 Apache Dienste/Prozesse, einmal qhttpd und einmal thttpd ( wobei das auch tiny httpd sein kann ) Der qhttpd ist auf SSL konfiguriert, der thttpd ist nicht auf SSL konfiguriert. Aus Gründen der Trennung zwischen in der Firmware enthaltenen Diensten und Diensten(Webshares :) ), die manuell per QPKG eingespielt wurden.
    Da aber qhttpd, den port 443 hält, kann man thttpd natürlich nicht auf SSL schalten, da sonst ein Portkonflikt auftritt.
    Somit muss man einfach in der konfig des qhttpd ein Virtuelles SSL Verzeichnis auf den Roundcube Pfad erstellen.
    Ich versuche gerade den Teil aus der config des thttpd in die konfig des qhttpd zu kopieren und auf SSL umzumodeln.
    Schade, dachte es würde ohne Frikelei gehen :) Musste leider gestern Abend abbrechen, ich halte euch aber einmal auf dem Laufenden.


    Viele Grüße


    Lichtlord :thumb:


    PS: Roundcube unterstützt SSL, dies ist jedoch als Abholverfahren in Zusammenhang mit einem Imapserver zu verstehen. Die in Apache konfigurierte Webshare kann wahlweise/gleichzeitg SSL oder Standard HTTP sein, wobei der Inhalt immer transparent zu sehen ist. D. h. Roundcube selbst sind soz. PHP Dateien und haben nichts mit den unterstützten Zugriffsweisen des Apache auf die Webshare zu tun. Gut über bestimmte Module des Apache jetzt mal nicht zu sprechen.

  • Der stunnel-Dienst entschlüsselt den Datentransfer und reicht ihn weiter,
    dem stunnel ist auch entsprechend das (QNAP-)Zertifikat hinterlegt.
    Wenn es anders wäre, würde ich es nicht vorschlagen.
    Dann hast du das System noch nicht tief genug ergründet.


    Zudem ist der thttpd für die WebGUI zuständig und bekommt vom stunnel die Daten, die verschlüsselt über SSL eintreffen.
    Mit dem Qthttpd wird der Apache mitgestartet.
    Dann schau mal in den /etc/init.d/thttpd.sh und /etc/init.d/Qthttpd.sh nach,
    welcher für den Ordner Qweb zuständig ist.


    Auf der Client-Seite gibt es die selbe Möglichkeit, ebenfalls mit stunnel.
    stunnel gibt es auch für Windows.


    Wenn der Apache selbst SSL könnte, wäre es natürlich einfacher.


    Schöne Grüße,
    Stefan

  • Ahh, OK, das System wollte ich mir Heute zu Gemüte führen. Hmm, dann müsste ich soz. einen neuen Tunnel legen, der z. B. über stunnel Port 444 auf http://locahost:80 verbindet und belasse einfach das Admininterface auf 443.
    Dann verbinde ich einfach mit https://lustigesnas.dyndns.org:444/roundcube/index.php auf das Webint.
    Dann ist der stunnel Dienst/Deamon soz. quasi eine Art SSL Wrapper ?
    Werde ich einmal testen, hat mir auf jedenfall sehr geholfen.


    Danke und Entschuldigt, wenn ich ab und zu zu weit vorraus denke ;)


    Lichtlord :thumb:

  • So, Problem gelöst :)


    /etc/config/stunnel/stunnel.conf geändert ( wird beim reboot nicht überschrieben )
    [https]
    accept = 443
    connect = 127.0.0.1:8080
    TIMEOUTclose = 0


    [https2]
    accept = 444
    connect = 127.0.0.1:80
    TIMEOUTclose = 0


    Danach /etc/init.d/stunnel.sh restart


    Das Webinterface inkl. aller Qnap Urdienste sind wie bekannt erreichbar:
    https://nasip/Qmultimedia
    https://nasip/


    Die ganzen QPKG Dienste sind über 444 erreichbar:
    https://nasip:444/roundcube
    https://nasip:444/PHPMyAdmin
    https://nasip:444/Joomla


    Jetzt nur noch Port 443 und 444 durch den Router leiten und relativ hacksichere SSL Verbindungen geniessen und vom Inetcafe in Italien
    Zuhause die Mails lesen oder mal auf die Cameras gucken ;) :thumb:
    Webint: https://endlichwiederlustig.dyndns.org:444/roundcube/
    Cameras https://endlichwiederlustig.dyndns.org:444/Survstation ( weiss Linknamen grade nicht )


    Evtl noch den Port 443 auf 445 verschieben, dann kommt da wirklich nur ein Profiportscanner drauf, und durch den SSL Wrapper sollten auch Scripte nicht beeinflusst sein.
    Finde das Qnap Design auf den zweiten Blick wohl durchdacht, dass eben in den httpds kein SSL eingescahltet ist und es über den Wrapper gemacht wird.


    Lustige Sache :P :thumb:


    Lichtlord :D

  • Um den Standard so wenig wie möglich zu verlassen, und um die Sicherheit zu erhöhen, habe ich nun das SSL Interface auf 443 belassen, 444 für den normalen Webserver verwendet und nun am Router einfach die Portweiterleitung einen Port nach oben gesetzt.


    Also 445 geht auf 444 und 444 geht auf 443, überlege mir auch, über die 1024 Grenze zu gehen, um den Well-Known-Ports-Bereich zu verlassen, da Port-Scan meistens nicht über Port 1024 scannen. Dann muss man natürlich die Urls entsprechend
    anpassen. Also z. B. https://wahnsinniglustig.dyndns.org:1025/Qmultimedia/
    Dann sollte man wirklich auf der sicheren Seite sein.


    So, dann sollte sich alles geklärt haben und ich kann in den Urlaub :D


    :thumb:


    Lightlord 8-) :thumb:

  • Eventuell überlegst du dir mal das ganze etwas einfacher zu gestalten mit OpenVPN als Proxy ;)

    Zitat

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