Docker: Besitzer und Rechte; Installation von Nextcloud mit MariaDB

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
So, ich habe jetzt Reverse Proxy eingerichtet. :)

In meinem Router (Fritzbox) ist die Portweiterleitung von Port extern 62000 auf Port an Gerät 62000 eingerichtet. Von der DS420 werden HTTP-Verbindung für DSM-Desktop automatisch zu HTTPS umgeleitet. DDNS habe ich auf der DS420 nicht eingerichtet aber erfolgreich getestet, meine noip-Domain wird von der DS erkannt.

Dann Systemsteuerung > Anmeldeportal > Erweitert > Reverse Proxy erstellen:

Code:
Quelle
> Protokoll: HTTPS
> Hostname: me.noip.com
> Port: 62000
Ziel
> Protokoll: HTTP
> Hostname: IP_DER_DS420
> Port: 6000                              # Port-Einstellungen Nextcloud Container: lokaler Port 6000 an Containerport 80

Nun kann ich Nextcloud mit https://me.noip.com:62000 aufrufen und bekomme die Meldung "Zugriff über eine nicht vertrauenswürdige Domain". Ich soll die die trusted_domains-Einstellung in config/config.php ändern. Ich nehme an, gemeint ist /docker/config/config.php und die Änderungen überleben auch ein Update des Nextcloud-Docker-Containers. Das wäre dann (ich spekuliere!):

PHP:
'trusted_domains' =>
  array (
    0 => 'IP_DES_NAS:6000',
    1 => 'me.noip.com:62000',
  ),

Oder wie muss docker/config/config.php aussehen?

Wäre es nicht besser ein Zertifikat von Let´s Encrypt zu holen? Oder hat das eine mit dem anderen nichts zu tun?

Ich glaube, ich habe jetzt verstanden, dass ich den Reverse Proxy einrichten sollte, weil hier die Quelle HTTPS und das Ziel HTTP sein kann.

Und CalDAV/CardDAV funktionieren dann über http://me.noip.com:62000/remote.php/dav/?

Heisst das, ich kann weiterhin z. B. den DSM mit einer Portweiterleitung im Router von Port 65000 auf 5001 (Protokoll TCP) benutzen, Aufruf mit https://me.noip.com:65000/? Oder sollte ich hierfür auch eine Reverse Proxy Regel anlegen?
 
Zuletzt bearbeitet:

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Das ist - meine ich - mit dem Eintrag "trusted domains" so richtig.

Ich hab' da nur den Eintrag für den Reverse Proxy drinnen, da ich extern und intern die selbe Domain verwende.
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Ich hab' da nur den Eintrag für den Reverse Proxy drinnen, da ich extern und intern die selbe Domain verwende.

Du meinst IP_DES_NAS:6000 kann aus der config.php raus? OK, verstehe ich.

Bin ich damit nun halbwegs sicher? Immerhin sind keine Standardports offen, wenn ich das richtig sehe und der c't-Netzwerkcheck hat auch nichts gefunden.

Ich wüsste auch nicht, was ich in der Firewall der DS zulassen oder verweigern sollte.

Mein nächster Schritt wird die Einrichtung eines VPN im Router sein, damit die Mobilgeräte getunnelten Zugang auf mein LAN haben. Aber das gehört nicht hier her.
 
Zuletzt bearbeitet:

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Das sollte wohl gehen, denke ich. Du sprichst dann Nextcloud quasi immer von extern an, was aber die Konfiguration deiner Geräte vereinfacht...

Mit intern nutzen meinte ich bei mir, dass ich intern ein AD betreibe, welches dieselbe Domain wie extern nutzt. Deswegen macht das bei mir keinen Unterschied...

Die Firewall in der Syno nutze ich nicht...
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
So, ich habe in config.php die trusted Domain und die default_phone_region ergänzt. Der Nextcloud Security Scan gibt mir ein A, weil ich noch 22.2.0 verwende. Unter Übersicht ist noch auf die fehlende SVG-Unterstützung im php-imagick hingewiesen aber das kann ich wohl wegen Docker nicht ändern. Bleibt noch:

Code:
Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/caldav" aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation.
Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/carddav" aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation.

...kann ich das auch ignorieren? Ich synchronisiere mein Adroid 7 Telefon mit DAVx5 doch jetzt mit https://me.noip.com:62000remote.php/dav/?

Schliesslich bemängelt Nextcoud, dass der "Strict-Transport-Security“-HTTP-Header nicht auf mindestens "15552000“ Sekunden eingestellt ist, ich solle für mehr Sicherheit HSTS aktivieren. Ich lass bei meinen Recherchen von hohem technischen Aufwand und geringem Nutzen. Wie seht Ihr das?

Mit intern nutzen meinte ich bei mir, dass ich intern ein AD betreibe, welches dieselbe Domain wie extern nutzt. Deswegen macht das bei mir keinen Unterschied...

Was ist ein AD?
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Es geht wohl auch ohne diese Einträge. Ich hab anfangs immer die .htaccess-Datei im Nextcloud-Verzeichnis angepasst. Du musst die Zeilen
Code:
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
auf
Code:
RewriteRule ^\.well-known/carddav https://<dns_name_deines_containers:port>/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav https://<dns_name_deines_containers:port>/remote.php/dav/ [R=301,L]
ändern.

Inzwischen brauche ich das nicht mehr, da ich das über meinen Reverse Proxy geregelt habe. Das ist allerdings nicht der, der auf der Syno läuft.

Sorry, das ist das Active Directory, die Microsoft-Netzwerk-Datenbank, die ich mittels Samba auf Raspberrys laufen habe. Wenn Du schon vom "Synology Directory Server" gelesen hast, das ist dasselbe nur in der Synology-Variante
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Du musst die Zeilen
Code:
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
auf
Code:
RewriteRule ^\.well-known/carddav https://<dns_name_deines_containers:port>/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav https://<dns_name_deines_containers:port>/remote.php/dav/ [R=301,L]
ändern.
Erledigt. Jetzt ist mein Webserver offenbar richtig konfiguriert, um "/.well-known/caldav" aufzulösen. ;) Die Warnung ist jedenfalls weg.

Jetzt steht da nur noch die Warnung, dass der "Strict-Transport-Security“-HTTP-Header nicht auf mindestens "15552000“ Sekunden eingestellt ist, ich solle für mehr Sicherheit HSTS aktivieren. Ich komme dazu bei meiner Recherche nicht wirklich weiter. Muss ich das in Nextclud tun oder im Router (Fritzbox kann das scheinbar nicht)? Oder ist damit in DSM7 Systemsteuerung > Anmeldeportal > DSM > Domain gemeint? Meine Domain ist dann https://me.noip.com? Oder mit welchem Port? Und dann HSTS aktivieren, um die Browser zu zwingen gesicherte Verbindungen zu verwenden?

Oder meintest Du mit Es geht wohl auch ohne diese Einträge ich könne mir das sparen?
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Das mit dem "Es geht wohl auch ohne diese Einträge" bezog sich auf die well-known-Einträge, denn bei mir klappte der Sync auch mit der Warnmeldung.

Die andere Meldung sagt mir auch grad nichts, die hatte ich nie. Das könnte eventuell vom Reverse-Proxy kommen, da kann man HSTS aktivieren, ist aber nur eine Vermutung.
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Heureka! :geek:

Jetzt habe ich im DSM7 Systemsteuerung > Anmeldeportal > Erweitert > Reverse Proxy > HSTS aktiviert und kriege nur noch diese SVG-Meldung. Damit betrachte ich die Konfiguration von Nextcloud als erfolgreich abgeschlossen.

Nochmals Danke für die geduldige Hilfe! (y)
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Gerne doch...

Ein Hinweis noch: Die Änderungen in der .htaccess musst Du nach jedem Update machen, da hab' ich keine wirkliche Möglichkeit gefunden, dass das bestehen bleibt.
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
734
Punkte für Reaktionen
141
Punkte
69
Die Meldung wegen svg imagick bekommst Du wie folgt weg:

Docker -> Container -> Nextcloud Container 1 x anklicken
Details -> Terminal - Erstellen, dauert kurz, dann erscheint bash
bash anklicken und folgende Befehle eingeben:

apt update
apt install libmagickcore-6.q16-6-extra

Terminal schliessen

Nach einem Update vom Container musst Du dies wieder machen, man gewöhnt sich dran ...
 
  • Like
Reaktionen: mabox

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Die Änderungen in der .htaccess musst Du nach jedem Update machen, da hab' ich keine wirkliche Möglichkeit gefunden, dass das bestehen bleibt.

Wenn ich nach einem Update von Nextcloud Änderungen an /volume1/docker/nextcloud/.htaccess wiederholen muss, dann gilt das aber auch für die Änderungen an /volume1/docker/nextcloud/config/config.php!? Ich wollte die eigentlich in mein Backup einbeziehen.

Ehrlich gesagt, ich dachte die Daten und Einstellungen in /volume1/docker/ bleiben bei einem neuen Container erhalten...

apt update
apt install libmagickcore-6.q16-6-extra
...hat funktioniert! Super, jetzt gibt es keine Meldungen mehr. :geek: Vielen Dank!

Allerdings wird mein Container immer ein-zweil-mal unerwartet geschlossen, bevor ich die bash Konsole starte, ist das normal?

Und wofür benötige ich diese SVG Unterstützung genau? Derzeit nutze ich nur CalDAV und CardDAV. Kann ich die SVG-Meldung ignorieren, solange ich kein Filehosting oder Collabora Online nutze?
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
734
Punkte für Reaktionen
141
Punkte
69
Das mit den schliessen des Containers ist leider so ...
Ich arbeite mit portainer, da passiert das nicht

Bei einem Update von Nextcloud werden .htaccess und config.php leider neu erstellt
Habe aber schon Routine die dementsprechenden Einträge durchzuführen 😎
inkl. libmagickcore Installation
Aber wie gesagt, der Zeitaufwand für dies sind ein paar Minuten

svg Unterstützung: low-level image manipulation library, was immer das bedeutet ...
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Bei einem Update von Nextcloud werden .htaccess und config.php leider neu erstellt
Moin, das gilt - Gott sei Dank - nur für die .htaccess. Die config.php bleibt gleich, sonst müsstest Du ja jedes Mal dein Nextcloud neu einreichten.
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Ich habe wieder ein Problem :cry:

Seit ein paar Tagen gibt es Probleme mit der Synchronisation der Clients. Also habe ich versucht Nextcloud mit https://me.noip.com:62000 zu starten und erhielt die Meldung 400 Bad Request The plain HTTP request was sent to HTTPS port nginx. Auf den ersten Blick ist die Konfiguration aber wie in Post 21 beschrieben:

Im Router (Fritzbox) ist die Portweiterleitung von Port extern 62000 auf Port an Gerät 62000 eingerichtet.

In der DS ist Systemsteuerung > Anmeldeportal > HTTP-Verbindung für DSM-Desktop automatisch zu HTTPS umleiten aktiviert.

Der Reverse Proxy ist in der DS erstellt:
Code:
Quelle
> Protokoll: HTTPS
> Hostname: me.noip.com
> Port: 62000
Ziel
> Protokoll: HTTP
> Hostname: IP_DER_DS420
> Port: 6000

Im Nextcloud container ist in den Porteinstellungen lokaler Port 6000 an Containerport 80 eingestellt.

Und in /volume1/docker/nextcloud/config/config.php steht unverändert:

PHP:
'trusted_domains' =>
  array (
    0 => 'IP_DES_NAS:6000',
    1 => 'me.noip.com:62000',
  ),

(Ich hatte me.noip.com:62000 eingefügt.)

Warum beschwert sich der Webserver nginx über HTTP? Port 80 wird doch erst im Nextcloud Container genutzt.

Auf Anraten des Synology Sicherheitsberaters habe ich unter Systemsteuerung > Dateidienste > Terminal & SNMP > SSH-Dienst den Port 22 in Port 62222 geändert aber das ist es offenbar auch nicht. Ich bin ratlos.

Mit http://IP_DES_NAS:6000 kann ich Nextcloud weiterhin starten. Und die Synchronisation des PCs mit http://IP_DES_NAS:6000/remote.php/dav/ funktioniert auch wie sie soll.
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Hat sich scheinbar erledigt. Ich kann Nextcloud wieder mit https://me.noip.com:62000/ im Router starten. Und die Synchronisation der Mobilgeräte mit https://me.noip.com:62000/remote.php/dav/ funktioniert auch wieder.

Wieso? Ich habe gestern alle Einstellungen (s.o.) überprüft aber nichts verändert.

Vor ein paar Tagen habe ich ein Update für den Router (FRITZ!Box 7490) und die DS (jetzt DSM 7.0.1) eingespielt. Kann es sein, dass einige Einstellungen danach zwar angezeigt wurden aber nicht wirksam waren? Als würden sie nur in einem Cache liegen?
 

mabox

Benutzer
Mitglied seit
10. Jul 2013
Beiträge
202
Punkte für Reaktionen
12
Punkte
24
Hallo Zusammen,
hat mir sehr geholfen das Thema, vielen Dank dafür.

Nextcloud läuft erstmal schön im Docker und den Reverse Proxy in der Synology ist auch eingerichtet, ein Zertifikat auch.
Ich kümmere mich gerade auch um die Meldungen die in den Einstellungen angezeigt werden. Ich habe die Gleiche wie @wired2051
Hab ich was überlesen oder wie habt ihr die Meldung hier wegbekommen?

Der Hinweis von Nextcloud

Du greifst über eine sichere Verbindung auf Deine Instanz zu, Deine Instanz generiert jedoch unsichere URLs. Dies bedeutet höchstwahrscheinlich, dass Du Dich hinter einem Reverse-Proxy befindest und die Konfigurationsvariablen zum Überschreiben nicht richtig eingestellt sind. Bitte lese die Dokumentation hierzu.
Unsicherer Seitenzugriff über HTTP. Es wird dringend empfohlen, den Server so einzurichten, dass HTTPS erforderlich ist, wie dies in den Sicherheits-Tipps beschrieben wird.


lässt mich trotz Links ratlos zurück.

Ich hab jetzt einiges versucht lt. Doku aber es gibt nie eine Änderung. Meldung bleibt nach wie vor.
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
734
Punkte für Reaktionen
141
Punkte
69
trag in die config.php (in meinem Fall unter /volume1/docker/nc/config) folgende Zeile ein:

'overwriteprotocol' => 'https',

der , am Schluß ist wichtig ...
 
  • Like
Reaktionen: mabox

mabox

Benutzer
Mitglied seit
10. Jul 2013
Beiträge
202
Punkte für Reaktionen
12
Punkte
24
@stulpinger
Ai ai ai, doch so einfach, vielen Dank..... dann gehts weiter jetzt mit den anderen Meldungen :) Ggfl. meld ich mich wieder :)
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Ich hatte noch ein Problem bei den Sicherheits- & Einrichtungswarnungen (Admin: Einstellungen > Übersicht) gehabt: "Du greifst über eine sichere Verbindung auf Deine Instanz zu, Deine Instanz generiert jedoch unsichere URLs. Dies bedeutet höchstwahrscheinlich, dass Du Dich hinter einem Reverse-Proxy befindest und die Konfigurationsvariablen zum Überschreiben nicht richtig eingestellt sind." Ich habe die Lösung bereits gefunden, möchte sie aber etwaig hier Suchenden hier kurz notieren:

In /volume1/docker/nextcloud/config/config.php muss 'overwrite.cli.url' geändert, sowie 'overwritehost' und 'overwriteprotocol' hinzufügen werden (letzteres ist womöglich entscheidend). Am Ende sollte das so aussehen:

Code:
  'overwrite.cli.url' => 'https://NEXTCLOUD_DOMAIN.TLD',
  'overwritehost' => 'NEXTCLOUD_DOMAIN.TLD',
  'overwriteprotocol' => 'https',

Natürlich ergibt sich daraus für mich noch eine Frage:

Ich habe die config.php nun drei mal geändert (trusted_domains, overwrite.cli.url und default_phone_region), ist die Reihenfolge in der config.php von Bedeutung? Oder kann ich z. B. 'default_phone_region' => 'DE', überall (ausserhalb des apps_paths und des trusted_domains arrays) hinschreiben?
 


 

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