Praxis-Workshop

ownCloud installieren - Einrichtung, Konfiguration, Sicherung

02.10.2014 von Jürgen Donauer
In diesem Beitrag zeigen wir Ihnen, wie Sie die ownCloud auf einem Ubuntu Server 14.04 LTS installieren und administrieren. Weiterhin geben wir Tipps zu Backup und Wiederherstellung und auf welche Bereiche Sie bezüglich Security besonders achten müssen.

Seit dem die Massenüberwachung durch die Geheimdienste ans Tageslicht gekommen ist, diskutieren viele Experten über mögliche Alternativen und Schutzmechanismen gegen digitale Lauschangriffe. Eine Option ist, die Cloud selbst zu verwalten und ins eigene Netzwerk zu holen.

Eine Alternative zu Public Clouds ist das Open-Source-Projekt ownCloud. Dort können Sie nicht nur Daten ablegen. Ihnen stehen auch ein Kalender und eine Kontaktliste zur Verfügung. Diese dürfen Sie mit Programmen adressieren, die CaldDAV oder CardDAV beherrschen. Neben einem Synchronisations-Client für Windows, Linux, Mac OS X und Android haben Sie auch die Möglichkeit, die ownCloud via WebDAV einzubinden.

Nachfolgend finden Sie Anleitungen zur Installation und Administration von ownCloud auf einem Ubuntu Server 14.04 LTS. Zudem finden Sie Tipps zur Sicherung und Wiederherstellung.

Vorbereitung und Installation von Ubuntu Server 14.04 LTS

Laden Sie sich die neueste Version des Ubuntu Servers herunter und installieren das Betriebssystem. Während der Installation können Sie bereits angeben, dass das System als LAMP-Server betrieben werden soll. Weiterhin empfehlen wir die Installation des Pakets OpenSSH-Server. Ubuntu Server betreiben Sie in der Regel "headless", also ohne Bildschirm. Mit OpenSSH erleichtern Sie sich später die Administration.

Bildergalerie:
Vorbereitung und Installation von Ubuntu Server 14.04 LTS
Während der Installation des Ubuntu Servers k?nnen Sie neben LAMP auch gleich OpenSSH ausw?hlen.
Vorbereitung und Installation von Ubuntu Server 14.04 LTS
MySQL Server: Wählen Sie LAMP, setzen Sie während der Installation auch gleich das Passwort f?r den Datenbank-Server.
Vorbereitung und Installation von Ubuntu Server 14.04 LTS
Ubuntu Server: Die Installation kann je nach Rechner etwas dauern.
Vorbereitung und Installation von Ubuntu Server 14.04 LTS
Aktualisieren: Nach der Installation sollten Sie erst einmal die Updates einspielen.
Vorbereitung und Installation von Ubuntu Server 14.04 LTS
Update: Das Einspielen der aktuellen Pakete dauert ebenfalls etwas.
Vorbereitung und Installation von Ubuntu Server 14.04 LTS
Netzwerk: Am besten verpassen Sie den Server eine fixe IP-Adresse.

Wählen Sie LAMP aus, verlangt das System auch ein root-Passwort für den MySQL-Server. Weiterhin sollte der Host-Rechner mit dem Internet verbunden sein. Ist die Installation durchgeführt, aktualisieren Sie das System online. Melden Sie sich dafür auf dem System an und führen die für Debian-basierende System die übliche Routine aus:

sudo apt-get update

sudo apt-get upgrade

Dem Ubuntu Server wurde via DHCP eine IP-Adresse zugewiesen. Das ist für einen Server nicht ganz optimal. Eine feste IP-Adresse ist besser. Entweder erledigen Sie das über den DHCP-Server oder vergeben eine fixe IP-Adresse. Editieren Sie dazu die Datei /etc/network/interfaces. Dort finden Sie zum Beispiel eine Sektion für die primäre Netzwerkkarte, die in unserem Fall eth0 ist. Wir haben die Sektion wie folgt geändert:

auto eth0

iface eth0 inet static

address 192.168.100.50

netmask 255.255.255.0

gateway 192.168.100.3

Das müssen Sie natürlich auf Ihre Netzwerk-Umgebung entsprechend anpassen. In unserem Beispiel hört der Server nun auf die Adresse 192.168.100.50.

Konfigurieren Sie die IP-Adresse manuell, verlieren Sie allerdings die DNS-Auflösung für das System. Editieren Sie aus diesem Grund die Datei /etc/resolvconf/resolv.conf.d/base und tragen dort gültige DNS-Server ein. Die Datei ist leer, schreiben Sie die DNS-Server einfach in unterschiedliche Zeilen. Mit OpenDNS würde das so aussehen:

nameserver 208.67.222.222

nameserver 208.67.220.220

Starten Sie im Anschluss resolvconf neu:

sudo service resolvconf restart

Apache Webserver für die Verwendung von https konfigurieren

Auch wenn Sie die ownCloud möglicherweise intern einsetzen, wollen Sie dennoch verschlüsselt mit dem Apache Webserver kommunizieren. Dazu ist es allerdings notwendig, dass Sie ein Zertifikat für den Ubuntu Server erstellen. Weiterhin muss das Modul ssl für Apache aktiviert sein. Diese sollte nach einer LAMP-Installation bereits der Fall sein. Zur Sicherheit führen Sie aber diesen Befehl aus:

sudo a2enmod ssl

und starten danach den Apache Webserver neu:

sudo service apache2 restart

Im Anschluss erstellen Sie ein neues Verzeichnis:

sudo mkdir /etc/apache2/ssl

und erstellen nun das selbst unterzeichnete Zertifikat, das Sie in das eben erstellte Verzeichnis legen:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Führen Sie diesen Befehl aus, fragt die Software nach diversen Angaben. Dazu gehören Land, Stadt, E-Mail-Adresse und so weiter. Hier tragen Sie entsprechend ein, was zu Ihrem Unternehmen passt.

Nun editieren Sie die Datei /etc/apache2/sites-available/default-ssl.conf. Dort finden Sie eine Zeile, die mit SSLEngine on beginnt. Fügen Sie darunter die beiden eben angelegten Zertifikate ein:

SSLCertificateFile /etc/apache2/ssl/apache.crt

SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Bildergalerie:
Apache Webserver für die Verwendung von https konfigurieren
Apache: Der Web Server funktioniert.
Apache Webserver für die Verwendung von https konfigurieren
Verschlüsselt: Zur Sicherheit aktivieren Sie das SSL-Modul.
Apache Webserver für die Verwendung von https konfigurieren
Schlüssel: Um https nutzen zu können, müssen Sie ein selbst signiertes Zertifikat anlegen.
Apache Webserver für die Verwendung von https konfigurieren
Nicht vertrauenswürdig?: Da das Zertifikat nicht aus einer offiziellen Zertifizierungs-Stelle stammt, bekommen SIe diese Warnung.
Apache Webserver für die Verwendung von https konfigurieren
https: Haben Sie alle notwendigen Schritte erledigt, funktionieren auch verschlüsselte Seiten.

Weiter unten finden Sie noch einmal zwei Zeilen, die mit SSLCertificateFile und SLCertificateKeyFile beginnen. Kommentieren Sie diese mit einem # aus oder löschen Sie diese Zeilen. Ansonsten führt das beim Apache-Neustart zu einem Fehler. Speichern Sie die Datei und aktivieren diesen mit SSL versehenen virtuellen Host:

sudo a2ensite default-ssl.conf

Für den weiteren Verlauf dieses Artikels ändern Sie außerdem die Zeile

DocumentRoot /var/www/html

in

DocumentRoot /var/www

Im Anschluss starten Sie den Apache Webserver neu:

sudo service apache2 restart

Besuchen Sie nun die Seite https://192.168.100.50 bekommen Sie zwar eine Warnung wegen eines nicht vertrauenswürdigen Zertifikats, aber die Seite ist verschlüsselt. Die Warnung ist normal, da das Zertifikat von Ihnen selbst und nicht von einer autorisierten Zertifizierungs-Stelle ausgestellt wurde. Fügen Sie eine Ausnahme hinzu und vertrauen Sie dem Zertifikat. Ab sofort ist Ihr Apache Webserver https-fähig.

Vorbereitungen für die ownCloud

Die Voraussetzungen für eine ownCloud-Installation ist vereinfacht gesagt mindestens PHP 5.3 und eine Datenbank, wobei hierfür SQLite, MySQL/MariaDB oder PostgreSQL in Frage kommt. Wir empfehlen, von SQLite komplett die Finger zu lassen. In der Datenbank-Sektion der Dokumentation raten die Entwickler auch davon ab, außer es handelt sich um Einzel-Anwender. Haben Sie aber sehr viele Dateien, ist SQLite auch für einzelne nicht geeignet. Die Performance ist sehr unbefriedigend. Vielleicht für ein Test-Szenario geeignet, aber für eine produktive Umgebung auf keinen Fall.

Haben Sie LAMP bei der Ubuntu-Installation ausgewählt, befindet sich bereits MySQL auf dem Server installiert. In unserem Beispiel haben wir MySQL verwendet. Sollte der Datenbank-Server noch nicht installiert sein, holen Sie das nach:

sudo apt-get install mysql-server

Weiterhin benötigen Sie diverse zusätzliche Pakete, wobei einige davon optional sind. Wir empfehlen dennoch die Installation aller Pakete, da sonst einige Funktionen nicht verfügbar sind. Sie finden die Liste mit den notwendigen Software-Komponenten im Administrations-Handbuch. Im ersten Befehl befindet sich Apache2, falls Sie diesen noch nicht eingespielt und wie oben beschrieben konfiguriert haben. Sollte das der Fall sein, ignoriert das System das Paket einfach. Wollen Sie SQLite gar nicht verwenden, können Sie im zweiten Befehl php-sqlite außen vor lassen:

sudo apt-get install apache2 php5 php5-gd php-xml-parser php5-intl

sudo apt-get install php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl

Hinweis: Die beiden Befehle sind möglicherweise nicht zwingend notwendig, wenn Sie die ownCloud über das offizielle Repository installieren, sondern sich die Quellen direkt holen. Schaden können die beiden Befehle aber auch nicht, denn die Komponenten brauchen Sie ohnehin.

Installation der ownCloud

Die ownCloud befindet sich in den Repositories von Ubuntu 14.04 LTS. Es handelt sich dabei sogar um eine relativ neue Version 6, allerdings ist es nicht die neueste. Sie könnten das Paket installieren und dann im Administrations-GUI der ownCloud aktualisieren. Allerdings ist das bedenklich. Sollte ein Paket-Update über die Repositories kommen, sind die Folgen schwer abzusehen.

Bildergalerie:
ownCloud
ownCloud installieren: Unter Ubuntu können Sie das offizielle Repository der Entwickler benutzen..
ownCloud
Konfiguration: Beim ersten Aufruf müssen Sie die ownCloud entsprechend konfigurieren.
ownCloud
phpMyAdmin: Sind Sie kein Datenbank-Spezialist, hilft dieses großartige Tool für die Administration weiter.
ownCloud
Datenbank anlegen: Wir haben unsere Datenbank owncloud6 getauft.

Wir raten deswegen, dass Sie die ownCloud entweder von der offiziellen Website herunterladen und manuell einspielen oder das offizielle Repository der ownCloud-Entwickler verwenden. Für Ubuntu 14.04 LTS geht das so:

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud.list"

wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_14.04/Release.key

sudo apt-key add - < Release.key

sudo apt-get update

sudo apt-get install owncloud

Sind Sie dem bisherigen Verlauf dieses Artikels gefolgt, erreichen Sie die ownCloud nun via https://192.168.100.50/owncloud/. Die Dateien der privaten Cloud haben sich im Verzeichnis /var/www/owncloud installiert.

Wollen Sie lieber die Quellen der ownCloud verwenden, packen Sie die Dateien einfach in das Verzeichnis /var/www/owncloud. Die ownCloud wird über den Apache Webserver ausgeliefert und verwendet die Standard-Ports. Das sind für http Port 80 und https Port 443.

Ersteinrichtung der ownCloud und Datenbank-Konfiguration

Beim Erstaufruf der ownCloud-WebGUI fordert Sie das System auf, ein Administrator-Konto einzurichten. Weiterhin konfigurieren Sie an dieser Stelle, welche Datenbank Sie verwenden möchten. Klicken Sie hierfür auf Advanced. Wir wollen für unser Beispiel MySQL einsetzen und nicht das per Standard ausgewählte SQLite.

Die MySQL-Konfiguration verlangt unter anderem einen Datenbanknamen und einen Anwender-Namen für die Datenbank. Als Anwender könnten Sie root verwenden, obwohl das eher unschön ist. Dafür hätten wir allerdings ein Passwort, das während der LAMP-Installation festgelegt wurde. Der Datenbankname ist hingegen noch nicht erschaffen.

Entweder verwenden Sie die Kommandozeile dafür oder installieren phpMyAdmin auf dem Server. Haben Sie wenig mit Datenbanken zu tun, raten wir zu letzterem:

sudo apt-get install phpmyadmin

Während der Installation fragt phpMyAdmin, welchen Webserver Sie verwenden wollen. In unserem Fall ist das apache2. Weiterhin brauchen Sie das Passwort für den administrativen Benutzer von MySQL. Sie können die Datenbank-Konfiguration so aufrufen: https://192.168.100.50/phpmyadmin. Das GUI lässt sich auf Deutsch umstellen und hier dürfen Sie nun eine Datenbank einrichten. Klicken Sie dazu auf Datenbanken und wählen am besten einen sprechenden Namen. Wir haben unsere Datenbank owncloud6 genannt. Sind Sie mit dem Benutzer root als Datenbank-Benutzer nicht glücklich, können Sie das an dieser Stelle auch ändern.

An dieser Stelle haben wir alle Informationen, die wir zur Ersteinrichtung der ownCloud brauchen. Verwenden Sie die entsprechenden Parameter. Der Datenbankname ist in unserem Fall owncloud6 und der Host ist localhost, weil der MySQL-Server auf dem gleichen Host wie die ownCloud selbst läuft. Haben Sie alles eingetragen, klicken Sie auf Finish setup.

An dieser Stelle meldet die ownCloud einen Fehler, dass irgendetwas mit WebDAV nicht in Ordnung ist. Der Grund an dieser Stelle ist das SSL-Zertifikat. Wir haben es für einen Hostnamen generiert, greifen auf die ownCloud allerdings über die IP-Adresse zu. Wollen Sie den Hostnamen verwenden, müssen Sie diesen allerdings im Netzwerk zum Beispiel über einen eigenen DNS-Server bekannt machen. Trotz der Fehlermeldung funktioniert die Synchronisation und das Einbinden der ownCloud via WebDAV trotzdem. Es gibt dazu im ownCloud-Forum mehrere Threads, die sich mit diesem Thema beschäftigen. Setzen Sie die ownCloud nur intern ein, könnten Sie das SSL-zertifkat neu erstellen und anstelle des FQDN (Full Qualified Domain Name) die IP-Adresse des Rechners verwenden.

Sich in der Oberfläche von ownCloud zurecht finden

Haben Sie die erste Einrichtung überstanden, können Sie sich nun als Administrator unter https://192.168.100.50/owncloud/ anmelden. Ein Begrüßungs-Bildschirm weist Sie darauf hin, wo Sie die Desktop-Clients und die Mobile-Apps finden. Weiterhin gibt es Hinweise, wie Sie sich mit Kalender (CalDAV), Kontakten (CardDAV) und WebDAV verbinden können.

Der Administrator, beziehungsweise die Admin-Gruppe hat die komplette Kontrolle über die ownCloud. Nur Anwender mit diesen Sonderrechten dürfen neue Benutzer anlegen, Apps hinzufügen und so weiter.

Stellen wir aber zunächst die Sprache um. Klicken Sie dafür rechts oben auf Ihren Anwender-Namen, in unserem Fall admin. Im sich aufklappenden Menü klicken Sie dann auf Personal. In dieser Maske finden Sie alle persönlichen Einstellungen. Dazu gehören auch Profilbild, E-Mail-Adresse und so weiter.

Bildergalerie:
ownCloud-GUI
Willkommen: Bei der ersten Anmeldung gibt Ihnen die Software eine kleine Tour.
ownCloud-GUI
Persönlich: In diesem Bereich können Sie die ownCloud auf eigene Bedürfnisse anpassen.
ownCloud-GUI
Benutzer und Gruppen: Hier legen Sie Benutzer und Gruppen an. Außerdem legen Sie die Quotas für die Anwender fest.
ownCloud-GUI
Administrator: In diesem Bereich konfigurieren Sie das System an sich.
ownCloud-GUI
Apps: Vor dem Aktivieren der Apps sollten Sie diese ausführlich testen.
ownCloud-GUI
Apps administrieren: Aktivieren Sie Apps, können Sie diese in der Regel im Administrator-Bereich konfigurieren.

Klicken Sie auf admin und danach Benutzer, dürfen Sie neue Anwender und Gruppen hinzufügen.. Selbst wenn Sie Anwender und Administrator sind, sollten Sie sich einen normalen Nutzer anlegen. Es gilt wie überall, dass Administration und Nutzung aus Gründen der Security getrennt sein sollten. In der Benutzer-Maske legen Sie auch die Quotas für die Anwender fest und bestimmen, was Standard-Quota sein soll.

Unter Mit einem Klick auf admin und danach Administrator, können Sie gewissen Systemeinstellungen vornehmen. Dort befindet sich auch das Update-Center. Sie brauchen es, wenn Sie die ownCloud manuell und nicht über das Repository installiert haben. Weiterhin stellen Sie dort ein, wie Cron gehandhabt werden soll. Haben Sie die ownCloud auf einem eigenen Server, der sich ebenfalls in Ihrer Kontrolle befindet, sollten Sie den Cron des Linux-Rechners verwenden. Öffnen Sie dazu auf dem Linux-Server als root die Crontab des Webserver-Anwenders:

crontab -u www-data -e

und fügen dann diese Zeile ein:

*/15 * * * * php -f /var/www/owncloud/cron.php

Im Administrations-Fenster finden Sie auch das Log, falls Sie auf Fehlersuche gehen müssen. Links unten finden Sie ein Plus-Zeichen und darunter das Wort Apps. In dieser Maske bestimmt der Adminstrator, welche Apps aktiviert sein sollen und welche nicht. Aktivieren Sie zum Beispiel die App Encryption, können Sie bestimmen, dass alle Dateien der Anwender verschlüsselt abgelegt werden. Interessant ist auch die App External Storage Support. Damit können Anwender externe Storage-Quellen einbinden. Möglich sind unter anderem Amazon S3, Dropbox, OpenStack Object Storage, FTP, SFTP, SMB / CIFS und so weiter. Es funktionieren allerdings nicht alle gleich gut. Aktivieren Sie eine App, finden Sie die Einstellungen dafür normalerweise unter admin / Administrator. Aktivieren Sie die Verschlüsselung, sollten Sie ein Passwort für die Wiederherstellung hinterlegen.

ownCloud - Upload-Limits konfigurieren

Neben dem Quota der Anwender gibt es noch eine weitere Komponente, die das Limit der Uploads bestimmt. Dafür ist der Webserver beziehungsweise die PHP-Einstellung zuständig. Sind Sie unserer Anleitung gefolgt, können Sie per Standard Dateien hochladen, die maximal 513 MByte groß sind.

Die Einstellungen werden an dieser Stelle nicht über eine Konfigurations-Datei php.ini festgelegt. Sie befinden sich in der Datei .htaccess im ownCloud-Ordner. Oder in unserem Fall /var/www/owncloud/.htaccess in der Sektion<IfModule mod_php5.c>.

Bildergalerie:
ownCloud - Upload-Limits konfigurieren
Upload-Limits: Sie konfigurieren diese Grenzen in der Datei .htaccess im ownCloud-Ordner.
Backup der ownCloud
Datensicherung: Es lohnt sich, die Datenbank-Backups zu komprimieren.

Backup der ownCloud

Haben Sie eine funktionierende ownCloud im Einsatz, ist natürlich ein Backup zwingend notwendig. Sprechen wir vom Backup, müssen wir an zwei Komponenten denken. Die Dateien der Anwender und die Datenbank. Bei der Verwendung von SQLite liegt die Datenbank im ownCloud-Ordner und Sie müssen lediglich das komplette Verzeichnis sichern. In unserem Fall befindet sich dieses Verzeichnis unter /var/www/owncloud.

Verwenden Sie MySQL oder PostgreSQL, ist neben dem ownCloud-Ordner ebenfalls ein Sichern der Datenbank notwendig. MySQL könnten Sie auch über phpMyAdmin sichern. Allerdings lässt sich das nicht automatisieren und verlangt umständliche Handarbeit.

Geschickter ist es, diesen Prozess zu automatisieren. Sie können das auf der Kommandozeile mithilfe des Tools mysqldump erledigen. Am besten fügen Sie der Datei noch einen Zeitstempel an. Die Syntax dafür sieht so aus:

mysqldump -u<Benutzer> -p<Passwort> <Datenbank> > backup$(date +%Y-%m-%d-%H.%M.%S).sql

oder in unserem Fall:

mysqldump -uroot -pStrengGeheim owncloud6 > backup$(date +%Y-%m-%d-%H.%M.%S).sql

Noch besser ist es, wenn Sie das Backup der Datenbank gleich komprimieren lassen. Selbst nach der anfänglichen Installation lässt sich der Platz von 51 KByte auf 7,3 KByte schrumpfen.

mysqldump -uroot -pStrengGeheim owncloud6 | bzip2 -c > backup$(date +%Y-%m-%d-%H.%M.%S).sql.bz2

Das Ganze können Sie nun noch in einem Cronjob packen und je nach Wunsch ausführen lassen. Ob das einmal in der Stunde, einmal pro Tag und so weiter ist, müssen Sie selbst entscheiden.

Fazit

Eine ownCloud unter Ubuntu Server zu installieren klingt komplizierter als es im Endeffekt ist. Wie bei jeder neuen Software müssen Sie sich zunächst zurechtfinden. Allerdings lohnt sich der Aufwand. Sie können mit einer ownCloud ebenfalls Dateien Plattform- und Rechner-übergreifend synchronisieren, verlieren dabei allerdings die Kontrolle über Ihre Daten nicht.

Foto: ra2 studio, Fotolia.com

Die ownCloud ist deswegen attraktiv, weil sie sich nicht nur für Dateien verwenden lässt. Sie können Dateien mit Kollegen teilen und auch Kalender und Kontakte damit synchronisieren. Selbst eine Textverarbeitung ist vorhanden, womit Sie gemeinsam und gleichzeitig an Dokumenten arbeiten können.

Allerdings sollten Sie bei der Aktivierung von Apps vorsichtig sein. Die grundlegenden Apps, die nach der Installation vorhanden sind, funktionieren in der Regel sehr gut. Andere Apps können dann und wann etwas zicken. Das führt bei den Anwendern zu Frust. Aus diesen Grund raten wir zu ausführlichen Tests und wenn möglich sogar zu einer Test-Umgebung. Bei manchen Apps kommt es darauf an, in welcher Umgebung diese laufen. Verwenden Sie die ownCloud bei einem Service-Provider, funktioniert möglicherweise das Einbinden von externem SMB-Storage nicht. Darauf haben Sie aber keinen Einfluss. (mje)