Inhaltsverzeichnis

OwnCloud 10 – Sichere Private Cloud auf dem eigenen Server

OwnCloud 10 ist eine selbst gehostete Plattform zur Datei-Synchronisation und -Freigabe. Sie ermöglicht eine sichere, DSGVO-konforme Cloud-Umgebung ohne externe Anbieter. Durch gezielte Härtungsmaßnahmen lässt sich OwnCloud zu einer robusten, widerstandsfähigen Private‑Cloud‑Lösung ausbauen.

Systemvoraussetzungen & Architektur

Installation von OwnCloud 10

1. System aktualisieren

sudo apt update
sudo apt upgrade

2. 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

3. OwnCloud herunterladen & entpacken

cd /var/www
sudo wget https://download.owncloud.org/community/owncloud-10.x.x.zip
sudo unzip owncloud-10.x.x.zip
sudo chown -R www-data:www-data owncloud

Datenbank für OwnCloud anlegen

sudo mysql -u root -p
CREATE DATABASE owncloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'SICHERES_PASSWORT';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Apache VirtualHost für OwnCloud

sudo nano /etc/apache2/sites-available/owncloud.conf
<VirtualHost *:80>
    ServerName cloud.deinedomain.tld
    DocumentRoot /var/www/owncloud

    <Directory /var/www/owncloud>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/owncloud_error.log
    CustomLog ${APACHE_LOG_DIR}/owncloud_access.log combined
</VirtualHost>
sudo a2ensite owncloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl reload apache2

HTTPS mit Let’s Encrypt aktivieren

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d cloud.deinedomain.tld

Erstkonfiguration von OwnCloud 10

Rufe die Installationsseite auf:

https://cloud.deinedomain.tld

Im Setup:

  1. Admin-Benutzer & Passwort setzen
  2. Datenverzeichnis definieren (empfohlen: außerhalb des Webroots)
  3. Datenbankzugangsdaten eintragen

Hardening – OwnCloud 10 sicher konfigurieren

Nach der Installation sollte OwnCloud 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,popen
sudo systemctl restart apache2

2. Apache-Hardening

In /etc/apache2/conf-available/security.conf:

ServerSignature Off
ServerTokens Prod
TraceEnable Off

Gefährliche HTTP-Methoden deaktivieren:

<Directory /var/www/owncloud>
    <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/owncloud
sudo find /var/www/owncloud/ -type d -exec chmod 750 {} \;
sudo find /var/www/owncloud/ -type f -exec chmod 640 {} \;

Datenverzeichnis separat & sicher:

sudo chown -R www-data:www-data /srv/owncloud/data

5. config.php absichern

sudo chmod 640 /var/www/owncloud/config/config.php
sudo chown root:www-data /var/www/owncloud/config/config.php

6. Trusted Domains setzen

'trusted_domains' => [
    0 => 'cloud.deinedomain.tld',
    1 => '192.168.1.10',
],

7. Cron statt Webcron

sudo -u www-data crontab -e
*/15 * * * * php -f /var/www/owncloud/cron.php

8. Fail2Ban Schutz aktivieren

Filter erstellen:

sudo nano /etc/fail2ban/filter.d/owncloud.conf
[Definition]
failregex = Login failed: .* Remote IP: '<HOST>'
ignoreregex =

Jail konfigurieren:

sudo nano /etc/fail2ban/jail.local
[owncloud]
enabled = true
port = http,https
filter = owncloud
logpath = /var/www/owncloud/data/owncloud.log
maxretry = 5
bantime = 3600
sudo systemctl restart fail2ban

9. Firewall-Regeln (UFW)

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Backup & Update Strategie

Datenbank sichern

mysqldump -u owncloud -p owncloud > /backup/owncloud.sql

OwnCloud aktualisieren

sudo -u www-data php /var/www/owncloud/occ upgrade

Regelmäßige Updates sind essenziell, um Sicherheitslücken zu schließen.