It is highly recommended to place your data directory outside of the Web root!?

Hallo,
hier in Hardening and security guidance — Nextcloud latest Administration Manual latest documentation steht, “It is highly recommended to place your data directory outside of the Web root (i.e. outside of /var/www). It is easiest to do this on a new installation.”

Ich weiß nicht, ob ich so eindringlich gefragt wurde.
Web root ist wohl webroot oder documentroot, also das Verzeichnis, in dem sich alle Nextclouddateien befinden und auf das der Domainname zeigt.
Warum macht das Nextcloud nicht standardmäßig, data auslagern, sondern klatscht alles ins documentroot und macht dann auf den Fehler aufmerksam. Schon eigenartig, oder?

Übrigens halte ich von dem Hinweis rein gar nichts. Wenn einer irgendwie Zugang erhält, wie auch immer, hat er eh alles. Ich bin eher für eine Datenverschlüsselung und nebenbei den Zugriff auf data zu verbieten, wenn das nicht eh schon verboten ist.

Hallo @rheadi

Was du vorschlägst ist nicht so einfach machbar. Die Entwickler wissen ja nicht, wo und auf was und mit welchem Webserver du Nextcloud genau betreiben willst, und wo auf deinem System du die Dateien genau haben willst. Ausserdem braucht der Webserver Schreibzugriff auf den entsprechenden Ordner, ansonsten kann Nextcloud nicht fertig installiert werden. Der Ordner muss also idealerweise vor der Installation manuell erstellt werden und die Berechtigungen müssen entsprechend gesetzt werden. Wenn du das getan hast kannst du den Pfad im Installationsassistenten bereits vor dem Abschluss der Installation angeben.

Abgesehen davon besteht kein echtes Sicherheisrisiko, wenn du Nextcloud mit Apache und den empfohlenen Einstellungen der Admin Dokumentation installiert hast, sprich .htaccess aktiv ist. Soviel ich weiss, taucht dann auch die Warnung in den Admin-Einstellungen nicht auf. Betreffend der Warnung bin ich aber nicht 100% sicher.

@bb77
sorry, verzweifelter Versuch etwas schön zu reden. Überzeugt mich gar nicht!
Die obigen Infos braucht nextcloud sowieso alle und können alle abgefragt werden, ein paar Verzeichnis-Checks und alles ist ermittelt.
Entweder es geht oder nicht.
Nenne mal einen Webhoster, der NICHT in dieser Form konfiguriert: z.B. /home/www/Ihr-Verzeichnis/ (dokumentroot oder webroot)
Data ins /home/, wenn die Berechtigung es erlaubt, sonst ins /Ihr-Verzeichnis/ .
Wo ist das Problem?
Aber hinterher die Leute verrückt machen ist keine gute Wahl.

Nicht falsch verstehen, ich will mich nicht zu arg beschweren, NC ist ja kostenlos für Privatnutzer.
Ich will es nur verstehen.

Es wird ja abgefragt. Keine Ahnung wie du Nextcloud installiert hast, aber wenn du das zip ins webroot entpackst und dann im browser die Seite aufrufst, wirst du als erstes mit dieser Seite begrüsst:
https://docs.nextcloud.com/server/latest/admin_manual/installation/installation_wizard.html#data-directory-location

…und ja, da muss ich dir recht geben: Wenn es schon dringend empfohlen wird, sollte die Empfehlung auch schon im Installationsassistenten fett stehen und nicht erst im Nachhinein auf der Statusseite, der bereits installierten Nextcloud. Zur Verteidigung von Nextcloud: In der Doku steht es gleich unter dem Bild :wink:

Kein Problem. Nextcloud soll ja auch im webroot sein. Es wird nur empfohlen das Datenverzeichnis ausserhalb zu platzieren. Und wie gesagt es ist eine Empfehlung.

Im Nachhinein ist wirklich blöd, wie oben schon gesagt. Hier wäre es allerdings noch interessant zu wissen, ob die Meldung immer kommt, wenn das Datenverzeichniss innerhalb des Webroot ist oder nur wenn .htaccess gar nicht oder nicht korrekt konfiguriert ist. Da bin ich wie gesagt nicht 100% sicher.

1 Like

Ähm :thinking:, sag ich doch alles schon im Zitat. /Ihr-Verzeichnis/ ist ja das NC Verzeichnis.
Aber alles klar, wir sind und ja einig.

Nachtrag:
bei mir kommt keine Meldung, A+, obwohl data im NC Verzeichnis, ich müsste auch erst ohne .htaccess probieren, aber wer macht das schon.

Nachtrag2:
Auf der Installationsseite (s.o. Link) müssten 2 Pfade abgefragt werden:

  1. NC Verzeichnis
  2. data Verzeichnis
    mit deutlichen Hinweisen.

Joa, jetzt ist mir auch klar, wie deine Aussage gemeint war. Er fragt zwar, aber alles andere als eindringlich, zumindest nicht so eindringlinch wie er im Nachhinein warnt. :wink:

Kann der Check das überhaupt überprüfen? Eigentlich dürfte es doch gar nicht möglich sein, dass ein externer Check das einfach so sehen kann.

  1. Das verstehe ich jetzt nicht ganz. Das muss ja schon vorher bestehen, ansonsten könntest du ja den Installationsassistenten gar nicht aufrufen.
  2. Jup. Sehe ich auch so.

Ach, da gibts Sachen, ich muss sogar die einfachsten Dinge erst testen. Ohne Test läuft bei mir gar nichts. Ob der Nextcloud-Scan da was findet, keine Ahnung.
Ich weiß jedenfalls, dass ich im Kundenportal global Verzeichnisauflisten aktivieren kann. Wenn die .htaccess mit ‘options -indexes’ fehlt, dann sieht es schlecht aus, aber wie gesagt, ohne Test keine Aussage und das teste ich nicht.

Ach, natürlich :blush:

Ich bin davon ausgegangen, dass du diesen Check hier meinst… https://scan.nextcloud.com/

oder was hast du gemeint mit…?

Ich glaube nämlich nicht, das die Geschichte mit dem Datenverzeichnis einen Einfluss hat darauf, ob man auf https://scan.nextcloud.com/ ein A+ erhält oder nicht. Der Test dort kann das imho gar nicht überprüfen, nur der interne in den Systemeinstellungen kann das.

Ja, ich meinte ja auch den internen nc-scanner, der zeigt A+ ohne Warnungen, wie auch der externe.
Aber ich habe noch nie mit meinem Data Verzeichnis herum gespielt und mit Absicht öffentlich gemacht. Es reich mir, wenn alle Testtools ein OK geben.
Also, mir reicht, wenn ich selber das data Verzeichnis nicht auflisten kann. Und irgendwelche Hacktools möchte ich ungern auf meine NC los schicken, nur bekannte seriöse.

Von extern kann man auch Verzeichnisse ermitteln, die aufgelistet werden können.
Habe ich mal mit joomscan | Penetration Testing Tools probiert, aber mit joomla. Tatsächlich findet der auch die Verzeichnisse, aber eine Verzeichnis muss auch direkt über z.B. https://meine-dom.de/data/ auflistbar sein. Es gibt unzählige Pentest tools auf github.

Ja, und die Voreinstellung im Installationsassistenten suggeriert schon, was vermutlich korrekt sein wird, aber doch nicht ist.

Ah ok.

Ja klar. Das meinte ich auch nicht. Und wie gesagt, wenn die .htacces aktiv ist, erreicht man das Verzeichniss ja auch nicht, selbst wenn es sich innerhalb des webroot befindet. Folglich kann der externe Scanner also nicht wissen, ob es sich ausserhalb oder innerhalb des webroots befindet.

Ah ja klar kann man das mit solchen Tools. Es hätte mich aber sehr gewundert, wenn der externe Nextcloud Security Scanner das tun würde. Und wenn er es tun würde und dann das Verzeichnis tatsächlich finden würde, wäre wie gesagt etwas fehlerhaft konfiguriert. Trotzdem kann es nicht schaden, wenn das Datenverzeichnis auserhalb des Webroots ist, so zwingend wie es die Warnung des internen Tests suggeriert, ist es aber definitiv nicht. Anyway, wir verstehen uns und ich beginne mich zu wiederholen :slight_smile:

Es hat mir keine Ruhe gelassen und ich habe mich vermutlich in fast allem geirrt!
Außer bei der fehlenden eindringlichen Warnung vor der Installation und mit der irreführenden Vorgabe fürs data Verzeichnis.
Ich muss es leider zugeben.

Szenario:
Wenn PHP oder und/oder eine andere wichtige Komponente beim Webhoster ausfällt und nur noch z.B. Apache läuft, dann sind z.B. alle .PHP Dateien im Klartext zu lesen und was mit dem data Verzeichnis ist, mag ich mir gar nicht erst ausdenken, wenn es nicht verschlüsselt ist.

Für mich heißt das, configuration.php und andere wichtige .php nach /home , wenn der komplette Pfad /home/www/nextcloud/ ist. /home/ ist nicht public.
Ich werde mich jetzt mit Verknüpfungen beschäftigen und doch alles auslagern.

Ich hoffe, ich liege jetzt richtig.

Genau deshalb wird es ja empfohlen. Die Empfehlung ist eine zusätzliche Sicherheitsmassnahme, damit niemand darauf Zugriff hat, falls eben etwas schief läuft oder jemand einen Fehler in der Konfiguration des Webservers macht.

Bei mir kommt übrigens “503 Service Unavailable”, wenn ich den PHP Service stoppe.

Mit
#php_flag engine off (Achtung!)
kann ich meine configuration.php im Notepad anschauen :worried: unter joomla.
Bei nextcloud habe ich noch nicht geschaut.

Ja aber warum sollte man das tun? So etwas passiert nicht aus Versehen.

Dieser Befehl sagt dem Webserver, dass er die PHP-Files nicht parsen soll. Das verhält sich nicht gleich wie, wenn PHP nicht vorhanden wäre oder der PHP-FPM Dienst nicht läuft o.ä.

ich habe data verschoben.

  • den Windows10 Sync-Client musste ich komplett neu einrichten, war doch okay.
  • auf dem iPhone funktioniert alles wie gehabt.
  • in der DB habe ich unter oc_storages noch 2 Einträge zum alten data
    local::/home/www//nextcloud/data/ (// steht genau so da)
    local::/home/www/nextcloud/data/

und den neuen Pfad.

Sieht aber soweit gut aus.