ESC oder X
ESC oder X
ESC oder X

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Als kleine Einleitung: ich beschreibe hier mein Vorgehen, das Fehlerfrei funktioniert. Ich bin mir sicher, ob man an der ein oder anderen Stelle etwas weglassen oder ein anders vorgehen wählen kann. Der Einfachheit halber habe ich mich von einem anderen Computer über ssh auf meinem NAS eingeloggt. Hier kann ich dann gleichzeitig im Browser und in der Konsole Arbeiten.

Da Nextcloud 11 das in OMV 2 mitgelieferte PHP 5.4 nicht mehr unterstützt, benutze ich OMV 3.0.59 als System. Außerdem habe ich festgestellt, dass Nextcloud nur über https ohne „zicken“ läuft. Daher habe ich im Vorfeld den OpenMediaVault Port auf einen anderen gesetzt (z.B. 40443) damit kann Nextcloud einfach über Port 443 laufen.

Als Voraussetzung gehe ich davon aus, dass auch die OMV-extras installiert und deren Paketquellen aktiviert sind. Außerdem sollte ein Zertifikat existieren. Ob selbst erstellt oder über letsencrypt ist egal.

Zu Beginn installieren wir erstmal die Plugins, die wir in dieser Anleitung benötigen:

  • openmediavault-nginx
  • openmediavault-mysql
  • openmediavault-fail2ban

Sind diese Plugins installiert, kann es losgehen. Als erstes geht Ihr in das MySQL Plugin, aktiviert das Plugin und ganz unten die SQL-Verwaltungsseite.

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Der Klarheit halber vergebt ein root Passwort unter dem Button "Passwort zurücksetzen", ansonsten gibt es manchmal Probleme beim Anmelden. Anschließend geht Ihr auf die Weboberfläche von dem Datenbanktool und logt euch mit "root" und dem vergebenen Passwort ein.

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Hier geht Ihr auf Datenbank -> Neue Datenbank erstellen -> „nextcloud“ -> Datenbank erstellen

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban
HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Nun legt Ihr noch einen neuen Benutzer hierfür an. Der Einfachheit nennt Ihr den auch „nextcloud“ und vergebt die Rechte für die entsprechende Datenbank -> „Benutzer aktualisieren“ speichert die Einstellung.

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban
HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Dann könnt Ihr euch wieder aus der MYSQL-Oberfläche abmelden. Jetzt muss ein Ordner für Nextcloud angelegt werden. Dies macht Ihr unter „Freigegebene Ordner“

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Damit alles so einfach wie möglich bleibt vergebt hier auch den Namen „nextcloud“. Um die Installationsdatei von Nextcloud ablegen zu können, habe ich an der Stelle den Ordner für einen smb/cifs User freigegeben und eingebunden. Dies kann aber auch über ftp oder direkt über die Console in den Ordner gespeichert werden.

Wenn die setup-nextcloud.php in dem Ordner abgelegt ist, ändert Ihr noch die Rechte des Ordners unter ACLfolgeder Maßen ab:

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Die nginx Einstellungen müssen jetzt vorgenommen werden. Dazu legt Ihr erst einen neuen pool an

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Die Eingaben sind folgendermaßen vor zu nehmen:

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban
HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Nicht zu vergessen ist die Erweiterte Option : env[PATH] = /usr/local/bin:/usr/bin:/bin
Wenn dies erledigt ist wird der Server konfiguriert:

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Erweiterte Optionen:

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass $socket;
}
# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}


Nun wird das nginx-plugin noch aktiviert und gespeichert.

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Jetzt geht ihr in die Konsole oder direkt an euren NAS und meldet euch als root an. Es werden von Nextcloud noch ein paar Pakete benötigt die Ihr installieren müsst:

apt-get install php5-gd php5apcu php5-curl php5-cli

Wenn dies geschehen ist sollte der Nextcloud Installation nichts mehr im Wege stehen. Ruft in einem Browser entweder über die IP-Adresse oder den hostnamen die Setupdatei auf:

https://meineip/setup-nextcloud.php

Es sollte nun die Installation starten. Bei der Frage wohin Nextcloud installiert werden soll gebt ihr den „.“ ein, außer ihr möchtet später mit https://meineip/ordnername die Seite Aufrufen.

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

Hier sind folgende Sachen zu beachten:

  • Username und Password ist für den Admin Account.
  • Den Pfad unter data folder merkt ihr euch am besten für später noch (hier müsste sowas wie "/media/die-UUID-des-Datenträgers-stehen/nextcloud/data" stehen).
  • Wenn Ihr die Daten an anderer Stelle haben möchtet, dann müsst Ihr hier den Pfad ändern. Dies kann mann aber auch später noch in der config datei ändern (wird von mir aber nicht genauer beschrieben).
  • Wählt als Datenbank MYSQL und gebt die vorher angelegten Daten ein. „localhost“ bleibt stehen.


Jetzt sollte erstmal Nextcloud grundlegend funktionieren. Nichts desto trotz solltet Ihr noch einige Änderungen vornehmen bzw. für fail2ban vorbereiten. Dies findet jetzt wieder in der Konsole statt. Hier brauchen wir auch den den Pfad wo Nextcloud standardmäßig den Datenordner angelegt hat. Das macht das Finden der config Datei leichter.

Damit wechselt Ihr in das config Verzeichnis der NC installation:
cd /media/die-UUID-des-Datenträgers/nextcloud/config

Anschließend öffnet Ihr die config.php zum Ändern:
nano config.php

Sie müsste ungefähr so aussehen. Ändert nichts außer das beschriebene hier. Die config.php ist nur ein Beispiel:

<?php
$CONFIG = array (
'instanceid' => 'xxxxxxxxxxx',
'passwordsalt' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'trusted_domains' =>
array (
0 => '192.168.10.155'
),
'datadirectory' => '/media/die-UUID-des-Datenträgers/nextcloud/data',
'dbtype' => 'mysql',
'version' => '7.0.2.1',
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'dbuser' => 'nextcloud,
'dbpassword' => 'xxxxxxxxxxxxxxxxx',
'installed' => true,
);


Zusätzliche Änderungen sind ratsam:
<?php
$CONFIG = array (
'instanceid' => 'xxxxxxxxxxx',
'passwordsalt' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'trusted_domains' =>
array (
0 => '192.168.10.155'
1 => 'hier sollte man noch zusätzliche IP oder DNS einträge machen',
2 => 'zum Beispiel der Hostname deines NAS'
),
'datadirectory' => '/media/die-UUID-des-Datenträgers/nextcloud/data',
'dbtype' => 'mysql',
'version' => '7.0.2.1',
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'dbuser' => 'nextcloud,
'dbpassword' => 'xxxxxxxxxxxxxxxxx',
'installed' => true,
);




Für fail2ban muss noch das Protokollieren Nextcloud aktiviert werden:

<?php
$CONFIG = array (
'instanceid' => 'xxxxxxxxxxx',
'passwordsalt' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'trusted_domains' =>
array (
0 => '192.168.10.155'
1 => 'hier sollte man noch zusätzliche IP oder DNS einträge machen',
2 => 'zum Beispiel der Hostname deines NAS'
),
'datadirectory' => '/media/die-UUID-des-Datenträgers/nextcloud/data',
'dbtype' => 'mysql',
'version' => '7.0.2.1',
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'dbuser' => 'nextcloud,
'dbpassword' => 'xxxxxxxxxxxxxxxxx',
'loglevel' => 1,
'logtimezone' => 'Europe/Berlin',
'logfile' => '/var/log/nextcloud.log',
'log_rotate_size' => 10485760,
'cron_log' => true,
'installed' => true,
);


Ich habe den Pfad für die Logdatei unter /var/log/nextcloud.log ausgewählt weil hier von OpenMediaVault alle anderen Logdateien liegen. Gespeichert wird in nano immer mit strg+o. und den Editor beenden mit strg+x.

Anschließend muss die „nextcloud.log“ noch erstellt werden:
cd /var/log/
nano nextcloud.log

Speichern der Datei mit strg+o und verlassen strg+x.

Jetzt müssen die Rechte noch richtig gesetzt werden:
chown www-data:www-data nextcloud.log

Für fail2ban muss jetzt der Filter erstellt werden der nach den gebrauchten Daten in der Logdatei sucht:
cd /etc/fail2ban/filter.d/
nano nextcloud.conf

Hier wird folgendes eingefügt:
[Definition]
failregex={"reqId":".*","remoteAddr":".*","app":"core","message":"Login
failed: '.*' \(Remote IP: '<HOST>'\)","level":2,"time":".*"}
ignoreregex =


Speichern + Schließen.

Als letztes muss jetzt noch das Jail dazu angelegt werden. Dies hab ich auch in der Weboberfläche von OMV getan, da dies der einfachste Weg ist.

Hier geht Ihr unter fail2ban ->Jails -> Hinzufügen und macht Ihr folgende Einträge:

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban

HowTo: Nextcloud unter OpenMediaVault 3 inkl. Fail2Ban


Bei fail2ban->Einstellungen tragt Ihr noch bei der Findtime eine „0“ ein und aktiviert das Plugin. Jetzt solltet ihr es mal versuchen können ob fail2ban richtig funktioniert, in dem Ihr euch mit falschem Passwort in Nextcloud einlogt. Hierzumüsstet Ihr dann in der Weboberfläche von OMV->Dienste->fail2ban einen Eintrag finden.

Ich hoffe ich habe rückwirkend noch alles richtig zusammengebracht ? Wenn Ihr jetzt noch eure Datenordner von OMV in Nextcloud haben wollt, könnt ihr diese mit der Option „Externe Daten“ unter Nextcloud einbinden.

Wenn Ihr das mit SMB oder FTP machen wollt, dann an der Stelle eine kleine Warnung: auch wenn Ihr den server „localhost“ dann verwendet, erzeugt ihr hiermit eine hohe Auslastung auf dem NAS. Wenn Ihr sie aber als lokale Datenträger einbindet, müsst Ihr dem Freigabeordner in OMV noch ACL’s für die Gruppe oder den Benutzer www-data geben. Den genauen Unterschied von Vor- und Nachteilen bzw. Nutzen ob Gruppe oder user kann ich nicht sagen. Vielleicht kennt sich hier noch jemand genauer aus und kann es in den Kommentaren ergänzen.

Wenn mir ein Fehler unterlaufen ist dann ist diese Anleitung auch nicht in Stein gemeißelt. Viel Erfolg.

Wir Danken unserem Besucher Christoph alias happyreacer für die tolle und detaillierte Anleitung!



29 Kommentare

Von Bernd am 22.03.2017
Besucher

Danke für die tolle Anleitung, schön aufbereitet!

@Ruschi & allgemein:
Die fail2ban - Einstellungen funktionieren perfekt.
ABER es ist unbedingt auf eine Kleinigkeit zu achten, wenn der obige Code per copy&paste genutzt wird.
Die Definition besteht aus einer Zeile, nano setzt aber ein "Enter" zwischen "Login" und "failed" wenn der Code nur eingefügt wird.

Insgesamt hat der Code also nur 3 Zeilen:
[Definition]
failregex={"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: .* \(Remote IP: (HOST>\)","level":2,"time":".*"}
ignoreregex =

Hoffe ich konnte helfen,
VG,
Bernd

Von micha am 16.03.2017
Besucher

und noch ein tipp, bei external storage local auswählen und den kompletten pfad zum gewünschten verzeichnis angeben. dann kann man auf smb verzichten

Von micha am 16.03.2017
Besucher

das initiale kennwort von mysql konnte über das webif nicht gesetzt werden. über die shell funktioniert es:
mysqladmin -u root password new-password

Von micha am 15.03.2017
Besucher

nicht vergessen, nach der installation die env varibles im pool wieder setzen. grüße

Von micha am 15.03.2017
Besucher

bei meiner heutigen installation omv 3.0.63 und nc latest mussteim pool: env[PATH] = /usr/local/bin:/usr/bin:/bin

entfernt werden

Von micha am 15.03.2017
Besucher

hinweis:

in diesem paket fehlt der bindestrich: php5apcu -> php5-apcu

Von micha am 15.03.2017
Besucher

ich würde dein http zugang vielleicht von port 80 auf einen anderen legen. oder macht es dir keine sorgen, dass das webif von omv sofort zum vorschein kommt wenn man auf family2cloud.de geht? oder den namen schwärzen. auf jeden fall danke für das tutorial!!!

Von Nio2016 am 22.02.2017
Besucher

zunächst vielen Dank für die gute Beschreibung..hat mich auf jedenfalll weiter gebracht.
( Randnotiz kein Plan von Debian oder linux) ich bleibe bei der Stelle mit der

"https://meineip/setup-nextcloud.php" stehen und kann nextcloud nicht inst.

meine version ist die 3.0.63
kernel ist 4.9.0-0
zu meinem Fehler:
"Error 404 Sorry, the page you request was not found"
also er öffnet noch nichtmal die inst datei

Alle Einstellungen so gemacht wie beschrieben.(hoffe ich ;))

ich habe die Setup datei (setup-nextcloud.php) über Windows in das nextcloud verzeichnis abgelegt (Freigabeordnder)

2 Fragen

1. :env[PATH] = /usr/local/bin:/usr/bin:/bin ist bei PATH mein Laufwerkpfad gemeint und wenn ja wie setz ich den bzw. find ich den ? (sry echt kein plan von linux etc)

2: Wo ist mein Fehler ?! ;)

achja bitte für linux Anfänger erklären Danke

Vielen Dank

Von happyreacer am 15.02.2017
Besucher

@claimarcia
für die DynDNS musst du den Eintrag in der config.php von nextcloud ergänzen:

trusted_domains =>
array (
0 => 192.168.10.155
1 => hier sollte man noch zusätzliche IP oder DNS einträge machen,
2 => zum Beispiel der Hostname deines NAS

Von Ruschi am 14.02.2017
Besucher

bei mir klappt es nur mit dieser nextcloud.conf

[Definition]
failregex = ^.*\"remoteAddr\":\"(HOST>\".*Login failed:.*$[/definition]

Von cleimarcia am 12.02.2017
Besucher

Nach Neuinstallation habe ich es nun endlich zum Laufen gebracht. PRIMA und vielen Dank für die tolle Anleitung!!!
Allerdings habe ich jetzt eine Sicherheits und Einrichtungswarnung erhalten:
"Es wurde kein PHP Memory Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen findest du in unserer Dokumentation."

Daraufhin habe ich über die Konsole nochmals (erfolglos) apt-get install php5-apcu ausgeführt.

Und mein 2. Problem ist
Wie erreiche ich via DynDNS nextcloud? Ich habe meine DynDNS wie von dir beschrieben in die fail2ban eingetragen. Was muß denn im Browser genau stehen?

Von Marcel am 08.02.2017
Besucher

Hier geht es dann weiter (Forum)

Von Kayfun am 08.02.2017
Besucher

Der Fehler entsteht vor der Bearbeitung der conig.php.

Wenn man das erste mal auf die setup-nextcloud.php zugreifen will über https://meineip/setup-nextcloud.php kommt ein 502 Bad Gateway.

Von happyreacer am 08.02.2017
Besucher

@ cleimarcia
@ Marcel
An welcher Stelle entsteht der Fehler? ist das bevor oder nach der Bearbeitung von der config.php?

@ Ruschi
Hast du schon mal probiert die findtime in den fail2ban Einstellungen "0" zu setzen? somit müsste man die falschen Anmeldungen immer gleich erkennen.

@alle, vieleicht sollten wir im Forum weiter schreiben... Die Seite hier wird schon langsam sehr lang und unübersichtlich ;-)

Von Ruschi am 07.02.2017
Besucher

Top Anleitung.

Für mich ist nur der Teil mit fail2Ban für Nextcloud neu.
Dieses funktioniert leider nicht. auch mehrmaliges falsches Anmelden wird nicht getracked..

Von cleimarcia am 07.02.2017
Besucher

Ich habe OMV 3 auch nochmal komplett neu aufgespielt und habe nachwievor das selbe Problem(e).
Irgendwo scheint noch ein Fehlerteufel zu sein.

Von Marcel am 07.02.2017
Besucher

Auch bei mir sind sämtliche Einstellungen richtig und genau nach Anleitung durchgeführt.
Habe es gerade zum dritten mal überprüft.
Gruß
Marcel

Von Kayfun am 06.02.2017
Besucher

@happyreacer

Alles so wie es in der Anleitung beschrieben war habe ich genauso übernommen - sprich Pool ist richtig erstellt, Server Einstellungen und User auch und Nginx läuft.

Gruß Kayfun

Von happyreacer am 06.02.2017
Besucher

prüft folgende Sachen nochmals:
- ist der pool richtig erstellt
- sind die server einstellungen richtig? richtige user?
- ist das nginx Plugin aktiviert? (nicht nur der server sondern das plugin)

Von cleimarcia am 06.02.2017
Besucher

Ich habe auch das Problem (502 Bad Gateway)
Außerdem kann ich bei freigegebene Ordner (nextcloud) die Berechtigungen auf Dateien und Unterordner nicht auf Rekursiv stellen. Diese Einstellung wird einfach nicht übernommen.

Weitere 9 Kommentare anzeigen
Diesen Artikel kommentieren:



  • Feedback
  • kurze, artikelbezogene Fragen





  • Hilfestellung bei Problemen
  • Fragen zu ähnlichen Themen




Ähnliche Artikel
Für das NAS - Basic 3.0 nutzen wir wieder ein Mainboard von ASRock. Konkret handelt es sich um das ASRock J3455-ITX, welches mit einem neuen Intel Apollo Lake Vier..
Da wiederholt nach einem HowTo zum Update von OpenMediaVault gefragt wurde, wollen wir euch hier kurz zeigen wie ihr das Update durchführen könnt. Um das NAS von OpenMediaVault 2..
Heute habe ich für euch eine Anleitung die sich mit dem Thema TV Server unter Openmediavault 3 beschäftigt. Da ich in diesem Bereich selbst noch keine Erfahrungswerte hatte, ist ..
Über den Autor
Stefan ist 33 Jahre alt, wohnt bei Hamburg und arbeitet als IT-Administrator in einer japanischen Firma. Stefan ist eines der drei Gründungsmitglieder von Technikaffe und schreibt seit April 2013 rund um die Themen Server, Netzwerk und Programmierung.