Nextcloud Installation mit Fail2Ban absichern

In diesem Beitrag geht es darum eine Nextcloud Installation auf einem Debian Server mit fail2ban abzusichern.

Das Root Verzeichnis unserer Nextcloud Installation liegt unter

/var/www/files.example.com/html

Der Inhalt der Apache vHost Konfigurationsdatei (/etc/apache2/sites-available/default.conf)

ServerName files.example.com
Serveralias files.example.com
DocumentRoot /var/www/files.example.com/html/
php_admin_value open_basedir /var/www/files.example.com:/dev/urandom:/tmp/:/proc/meminfo/:/var/log/nextcloud/
php_admin_value safe_mode 0
php_admin_value file_uploads 1
php_admin_value upload_tmp_dir /var/www/files.example.com/phptmp/
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
</VirtualHost>

Wir erstellen einen neuen Ordner für die Logfiles von Owncloud unter

/var/log/nextcloud

und setzten mit

chown www-data:www-data /var/log/nextcloud

die entsprechenden Schreibrechte für den Apache2 User. Damit die Logfiles nicht unendlich groß werden, richten wir noch eine entsprechende Konfiguration für Logrotate ein. Hierzu folgende Datei mit Inhalt erstellen:

/etc/logrotate.d/nextcloud/var/log/nextcloud/nextcloud.log {
create 664 www-data www-data
weekly
rotate 4
copytruncate
compress
missingok
notifempty
sharedscripts
postrotate
endscript
}

Nextcloud muss die Logfiles natürlich ins das entsprechende Verzeichnis schreiben. Dazu editieren wir die Nextcloud config.php im Ordner /config/ und fügen folgenden Code ein:

/var/www/files.example.org/html/config/config.php'logfile' => '/var/log/nextcloud/nextcloud.log',
'loglevel' => '2',
'log_authfailip' => true,

Nun bringen wir fail2ban bei, Nextcloudzu berücksichtigen. Der Filter mit der korrekten Regex wird unter /etc/fail2ban/filter.d/nextcloud.conf eingetragen:

/etc/fail2ban/filter.d/nextcloud.conf[Definition]
failregex = ^{"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' \(Remote IP: ''\)","level":2,"time":".*"}$
^{"reqId":".*","level":2,"time":".*","remoteAddr":".*","app":"core".*","message":"Login failed: '.*' \(Remote IP: ''\)".*}$
ignoreregex =

Nun wird die Konfiguration in der jail.conf unter /etc/fail2ban/ angepasst. Fügen Sie dazu folgenden Inhalt ein:

[nextcloud]
enabled = true
filter = owncloud
port = http,https
logpath = /var/log/nextcloud/nextcloud.log
maxretry = 4

Im Anschluss muss fail2ban mit

service fail2ban restart

neu gestartet werden. Ab sofort sollte eure Nextcloud Installation gegen Bruteforce Attacken gesichert sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.