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