Nextcloud ist eine selbst gehostete Plattform zur Datei-Synchronisation, -Freigabe und Zusammenarbeit. Sie ermöglicht eine sichere, DSGVO-konforme Cloud-Umgebung ohne externe Anbieter. Durch gezielte Härtungsmaßnahmen lässt sich Nextcloud zu einer robusten, widerstandsfähigen Private‑Cloud‑Lösung ausbauen.
Warum Nextcloud? Vorteile im Überblick
Nextcloud ist 2016 als Fork von OwnCloud entstanden und hat sich seither zur führenden Open-Source-Lösung für selbst gehostete Clouds entwickelt. Im Vergleich zu OwnCloud und kommerziellen Anbietern bietet Nextcloud entscheidende Vorteile:
- Volle Datenhoheit: Alle Daten verbleiben auf dem eigenen Server – keine Drittanbieter, keine Cloud-Konzerne, vollständige DSGVO-Konformität.
- 100 % Open Source: Keine proprietäre Enterprise-Edition wie bei OwnCloud. Der gesamte Funktionsumfang ist quelloffen und kostenlos.
- Mehr als Dateispeicher: Integrierte Apps für Kalender, Kontakte, Mail, Video-Calls (Nextcloud Talk), Dokumentenbearbeitung (Collabora/OnlyOffice) und Aufgabenverwaltung.
- Ende-zu-Ende-Verschlüsselung: Optionale clientseitige Verschlüsselung sensibler Ordner – selbst Server-Administratoren haben keinen Klartextzugriff.
- Aktive Community & schnelle Updates: Sicherheitslücken werden rasch geschlossen, die Entwicklung ist sehr aktiv.
- Umfangreiches App-Ökosystem: Über den App-Store lassen sich Funktionen modular nachrüsten, ohne das System aufzublähen.
- Flexible Skalierung: Vom Raspberry Pi für den Heimgebrauch bis zum Cluster für Tausende Nutzer.
- Plattformübergreifend: Native Clients für Windows, macOS, Linux, Android und iOS sorgen für nahtlose Synchronisation.
Systemvoraussetzungen & Architektur
- Linux-Server (Debian/Ubuntu empfohlen)
- Apache Webserver mit PHP 8.1 oder neuer
- MariaDB/MySQL Datenbank
- Statische IP oder Domain
- HTTPS-Zertifikat (Let’s Encrypt empfohlen)
Installation von Nextcloud
1. System aktualisieren
sudo apt update
sudo apt upgrade2. Apache, PHP und MariaDB installieren
sudo apt install apache2 mariadb-server libapache2-mod-php \
php php-gd php-mbstring php-xml php-zip php-curl php-mysql php-intl \
php-bcmath php-gmp php-imagick3. Nextcloud herunterladen & entpacken
cd /var/www
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo chown -R www-data:www-data nextcloudDatenbank für Nextcloud anlegen
sudo mysql -u root -pCREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'SICHERES_PASSWORT';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;Apache VirtualHost für Nextcloud
sudo nano /etc/apache2/sites-available/nextcloud.conf<VirtualHost *:80>
ServerName cloud.deinedomain.tld
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl reload apache2HTTPS mit Let’s Encrypt aktivieren
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d cloud.deinedomain.tldErstkonfiguration von Nextcloud
Rufe die Installationsseite auf:
https://cloud.deinedomain.tldIm Setup:
- Admin-Benutzer & Passwort setzen
- Datenverzeichnis definieren (empfohlen: außerhalb des Webroots)
- Datenbankzugangsdaten eintragen
Alternativ lässt sich die Installation auch komplett über die Kommandozeile durchführen:
sudo -u www-data php /var/www/nextcloud/occ maintenance:install \
--database "mysql" \
--database-name "nextcloud" \
--database-user "nextcloud" \
--database-pass "SICHERES_PASSWORT" \
--admin-user "admin" \
--admin-pass "ADMIN_PASSWORT" \
--data-dir "/srv/nextcloud/data"Hardening – Nextcloud sicher konfigurieren
Nach der Installation sollte Nextcloud gezielt gehärtet werden, um Angriffe zu verhindern und die Integrität der Daten zu schützen.
1. PHP-Hardening
In /etc/php/*/apache2/php.ini restriktive Einstellungen setzen:
expose_php = Off
display_errors = Off
log_errors = On
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M
disable_functions = exec,passthru,shell_exec,system,proc_open,popenFür bessere Performance empfiehlt Nextcloud zusätzlich OPcache:
opcache.enable = 1
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 60sudo systemctl restart apache22. Apache-Hardening
In /etc/apache2/conf-available/security.conf:
ServerSignature Off
ServerTokens Prod
TraceEnable OffGefährliche HTTP-Methoden deaktivieren:
<Directory /var/www/nextcloud>
<LimitExcept GET POST HEAD>
Deny from all
</LimitExcept>
</Directory>3. HSTS aktivieren
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"4. Dateisystem-Hardening
Rechte minimieren:
sudo chown -R www-data:www-data /var/www/nextcloud
sudo find /var/www/nextcloud/ -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud/ -type f -exec chmod 640 {} \;Datenverzeichnis separat & sicher:
sudo chown -R www-data:www-data /srv/nextcloud/data5. config.php absichern
sudo chmod 640 /var/www/nextcloud/config/config.php
sudo chown root:www-data /var/www/nextcloud/config/config.php6. Trusted Domains setzen
'trusted_domains' => [
0 => 'cloud.deinedomain.tld',
1 => '192.168.1.10',
],7. Cron statt AJAX
Stelle in den Nextcloud-Einstellungen den Hintergrundjob auf "Cron" um und richte einen systemweiten Cronjob ein:
sudo -u www-data crontab -e*/5 * * * * php -f /var/www/nextcloud/cron.php8. Fail2Ban Schutz aktivieren
Filter erstellen:
sudo nano /etc/fail2ban/filter.d/nextcloud.conf[Definition]
failregex = ^.*Login failed:.*Remote IP:.*'<HOST>'.*$
^.*\"remoteAddr\":\"<HOST>\".*Trusted domain error.*$
ignoreregex =
datepattern = ,?\s*"?%%Y-%%m-%%d[T ]%%H:%%M:%%S(%%z)?"?Jail konfigurieren:
sudo nano /etc/fail2ban/jail.local[nextcloud]
enabled = true
port = http,https
filter = nextcloud
logpath = /srv/nextcloud/data/nextcloud.log
maxretry = 5
bantime = 3600sudo systemctl restart fail2ban9. Firewall-Regeln (UFW)
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable10. Sicherheitsstatus prüfen
Nextcloud bringt einen integrierten Sicherheits- und Konfigurationscheck mit. Unter Verwaltung → Übersicht werden Warnungen angezeigt. Zusätzlich lässt sich der Server kostenlos online testen:
https://scan.nextcloud.comBackup & Update Strategie
Datenbank sichern
mysqldump -u nextcloud -p nextcloud > /backup/nextcloud.sqlWartungsmodus & Dateisicherung
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
sudo rsync -Aax /var/www/nextcloud/ /backup/nextcloud-files/
sudo rsync -Aax /srv/nextcloud/data/ /backup/nextcloud-data/
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --offNextcloud aktualisieren
sudo -u www-data php /var/www/nextcloud/updater/updater.phar
sudo -u www-data php /var/www/nextcloud/occ upgradeRegelmäßige Updates sind essenziell, um Sicherheitslücken zu schließen. Nextcloud unterstützt nur direkte Upgrades von einer Major-Version zur nächsten – keine Versionen überspringen.
