Owncloud

Eine Cloud ist ein super praktischer Ort um seine Daten zu sammeln und an einem beliebigen Ort verfügbar zu machen.

Ich z.B. mache häufig Fotos mit dem Telefon, bearbeite diese auf meinem Rechner und lade sie anschließend meist auf den Blog. Auch zur Sicherung von Daten ist eine Cloud äußerst nützlich, schließlich kann das Telefon z.B. jederzeit mal verloren oder defekt gehen und die ganzen Daten sind für die Katz.

Inhalt

Moralpredigt

Ich, in Person, bin bestimmt paranoid und sichere meine Daten nicht auf X-beliebigen Servern in den Untiefen des Internets. Schließlich könnte sich der Betreiber des Servers ja jederzeit an meinen Daten bereichern. Wahrscheinlich dürfte das Interesse des Server-Betreibers an einer Privatperson am Rande des normal-gesellschaftlichen Daseins nicht sehr hoch sein – aber für mich ist nur sicher, wozu nur ich allein Zugang habe.

Man braucht sich da auch nicht viel vormachen – jeder gewerbliche Server-Betreiber hat Kosten zu tragen. Kosten, die gedeckt werden wollen. Was hat Google davon, dir 20 GB Speicherplatz zur Verfügung zu stellen, wenn du nicht mehr tun musst, als dich dort zu registrieren? Richtig – rein gar nichts, abgesehen von deiner Registrierung und den gespeicherten Daten…

zurück zum Inhalt

 Back to Future

Man kann sich darauf einstellen, dass sich in naher Zukunft sämtliche, nicht nur kostenfreien Dienste über das sog. Cloud Computing abspielen werden. Was kein Geld kostet, bezahlst du dann eben mit dir selbst bzw. deinen Daten. Wie immer wird die breite Masse wohl folgen – wie elendige Lemminge, schade drum…

Man stelle sich einfach mal vor Word oder Exel wären nur noch Dienste, die ihr über den Browser/App erreichen könnt. Ein Log-In genügt und ihr könnt, wie gewohnt, loslegen. Die gespeicherten Dokumente werden dann in der Cloud gespeichert und ihr könnt an jedem x-beliebigen Ort der Welt darauf zugreifen. Vieles würde dadurch sicherlich leichter werden – z.B. das Homeoffice.

Vertrauenswürdige Anbieter von Cloud-Services haben sicherlich kein großes Interesse an den hinterlegten Daten, sondern eher an der pünktlichen Bezahlung. Auf der anderen Seite würden sich Hacker sicherlich gern mal in privaten Datenarchiven umsehen.

Solange die Konzepte in-transparent sind und man auch rechtlich keine Absicherung erfährt, sind mir sämtliche externe Cloud-Dienste zu unsicher für meine Daten, daher strebe ich stets die lokale Option der Datenspeicherung an.

zurück zum Inhalt

Owncloud

Owncloud kann als Dienst auf dem eigenen Server gehostet werden und bietet ein schönes Webinterface und Smartphone-Apps um Daten bequem zu verwalten. Darüber hinaus bietet der Dienst ein hohes Maß an Sicherheit.

zurück zum Inhalt

Voraussetzungen

Die Voraussetzungen zur Installation von Owncloud sind

  • Ein Linux-Server
    • Apache2
    • PHP
    • Datenbank-Server

Wer von euch den Bericht über meinen eigenbau NAS-Server gelesen hat, wird jetzt schnell merken, dass es sich bei den drei Voraussetzung eigentlich um einen LAMP-Server handelt (Linux, Apache, Mysql, PHP). Diesen habe ich bereits aufgesetzt und damit alle Voraussetzungen für die Installation von Owncloud erfüllt. Super!

zurück zum Inhalt

Vorbereitung – Datenbank

Owncloud benötigt einen Zugang zum lokalen Datenbankserver, daher wird hier erstmal ein Benutzerkonto angelegt.

Der Mysql-/MariaDB-Server kann sowohl per Konsole(SSH), Webinterface (PHPMyAdmin) oder externer Clients (Windows: HeidiSQL) verwaltet werden.

Wer hier regelmäßig liest, weiß, dass ich Windows benutze – daher verwende ich HeidiSQL.

image0019.png

Nach dem Start von HeidiSQL muss erstmal eine Verbindung zum Server hergestellt werden, dazu hinterlegt man die IP-Adresse des Servers und die Log-In Daten für den Datenbankserver und den SSH-Zugang.

Je nach Server kann es vorkommen, dass Verbindungen über den Verbindungstyp: MySQL (TCP/IP) nicht erfolgreich sind. Hier hat man ein bisschen experimentieren und z.B. den MySQL (SSH Tunnel) ausprobieren. Beim Tunnel muss in einem separaten Reiter dann der Pfad zu einem SSH-Client (wie z.B. PuTTy) angegeben werden, HeidiSQL nutzt dann den SSH-Client um eine Verbindung zum Server herzustellen. Beim einloggen in die Datenbank bzw. den Datenbankserver selbst sollte es nach erfolgreichem SSH-Zugriff seitens HeidiSQL hingegen keine Probleme geben.

Generell macht HeidiSQL nicht mehr als sich per SSH auf dem Server und anschließend dem Datenbankserver einzuloggen und eure Eingaben über das Frontend in Konsolenbefehle umzusetzen. Dies ist besonders komfortabel wenn man, wie ich, gar keine Ahnung von SQL-Befehlen hat.

Nach erfolgreichem Log-In stehen euch sämtliche Optionen zur Verfügung. Erstmal interessiert hier aber nur das Anlegen eines Benutzers, dazu wird auf den entsprechenden Button geklickt:

image0100

In dem Fenster, das nun erscheint, können Benutzer angelegt, bearbeitet oder gelöscht werden. In meinem Fall sind schon einige Benutzer vorhanden – durch einen Klick auf „Neu“ wird ein neuer Benutzer mit dem Namen „Unbekannt“ angelegt – durch einen Klick auf selbigen kann man die Daten anpassen.

image0101

Die Option „Datenbank: owncloud“ unter „Zugriff auf:“ wird erst erscheinen, sobald der Datenbank-Nutzer „owncloud“ eine Datenbank angelegt hat.

Nach dem Anpassen nur noch „Speichern“ und HeidiSQL kann wieder beendet werden. Eigentlich ganz einfach, oder? Benutzername und Passwort sollte man sich selbstverständlich merken oder besser notieren.

zurück zum Inhalt

Vorbereitung – Datenverzeichnis

Damit Owncloud die Daten künftig auf der Festplatte speichert und nicht etwa auf meiner System-SSD, habe ich ein separates Verzeichnis erstellt.

Meine Festplatte habe ich in meinem Homeverzeichnis unter HDD1 gemountet, hier erstelle ich nun einen Ordner für Owncloud.

cd HDD1/

sudo mkdir owncloud

Damit Owncloud später auch Daten in den Ordner schreiben darf, müssen noch die Rechte angepasst werden. Das Verzeichnis kann man nun entweder dem User übergeben, der Owncloud ausführen wird (www-data)

sudo chown www-data: home/HDD1/owncloud

oder man erlaubt das Schreiben für alle Nutzer mit chmod

sudo chmod -R 777 home/HDD1/owncloud

durch das -R werden die Rechte auch für alle Unterordner angepasst.

zurück zum Inhalt

Installation von Owncloud

Owncloud stellt für die Installation eigene Paketquellen für Ubuntu bereit, das macht die Installation sehr angenehm einfach. Folgende Befehle fügen das Repository hinzu, die Paketliste und installieren schlussendlich den Dienst:

sudo wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_18.04/Release.key -O Release.key

sudo apt-key add - < Release.key sudo echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_18.04/ /' > /etc/apt/sources.list.d/owncloud.list

sudo apt-get update

sudo apt-get install owncloud-files

zurück zum Inhalt

Konfiguration von Owncloud

Nach Abschluss der Installation kann über den Browser durch die Eingabe von (https://)192.168.178.79/owncloud das Webinterface aufgerufen werden.

Hier wird man nun dazu aufgefordert einen Benutzernamen und Kennwort einzugeben, das Datenverzeichnis einzutragen – und die Verbindung zum Datenbank-Server herzustellen.

image0102

Der Name der Datenbank kann individuell vergeben werden, bei mir heißt sie „owncloud“ – wie kreativ 😉

Wenn man alles (korrekt) eingetragen hat, gelangt man durch einen Klick auf „Finish setup“ in die Benutzeroberfläche. Hier kann man nun allerhand Einstellungen vornehmen.

zurück zum Inhalt

Sicherheit und Performance

Ist man als Administrator auf der Owncloud-Oberfläche eingeloggt, hat man die Möglichkeit sich durch die Einstellungen zu arbeiten.

Dazu klickt man zuerst einmal oben rechts auf den Benutzer und wählt die Option „Einstellungen“

image0103.png

Am linken Bildschirmrand könnt ihr nun einige Optionen auswählen

image0104.png

Mit einem Klick auf „Allgemein“ erhaltet ihr eine kleine Systemübersicht. Im oberen Bereich der Bildschirm Mitte befindet sich der der Security-Check

image0105

Hier werden etwaige sicherheitsrelevanten Probleme von Owncloud aufgelistet. Bei euch werden dort kurz nach der Installation sehr wahrscheinlich einige Punkte abzuarbeiten sein. In der jeweils verlinkten Dokumentation zu dem Fehler wird Ursache und Lösung genau beschrieben.

Um euch ein wenig Arbeit abzunehmen, vor allem wenn ihr über miese Englisch-Kenntnisse verfügt, habe ich die wichtigsten Punkte zusammengestellt. Grundsätzlich sollte man den Apache2 mit SSL absichern, das habe ich bereits kurz nach der Installation des LAMP-Servers gemacht. Informationen findet ihr in dem Bericht über den NAS-Server.

zurück zum Inhalt

Memory Cache / File locking

sudo apt-get install php-apcu

sudo nano var/www/html/owncloud/config/config.php

In diese Datei wird folgender Inhalt eingefügt:

'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\APCu',
'memcache.local' => '\OC\\Memcache\\APCu',

image0106.png

Die exakte Position der drei Einträge ist nicht sonderlich relevant, Hauptsache innerhalb der Klammer und mit der entsprechenden Anzahl an Leerzeichen vor der Zeile, sodass alle Parameter in einer Flucht stehen.

Gespeichert wird mit STRG+O, beendet mit STRG+X.

Der Apache muss nun noch neu gestartet werden

sudo service apache2 restart

danach sollten sich schon einige Meldungen erledigt haben.

Eine weitere Meldung auf der Admin-Seite ist z.B. die

zurück zum Inhalt

“Strict-Transport-Security“

Um diese Meldung zu entfernen muss wieder eine Datei bearbeitet werden

sudo nano /etc/apache2/sites-enabled/00-homeserver.conf

Hier wird unterhalb des VirtualHost für den Port 433 folgendes eingetragen:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

image0107.png

zurück zum Inhalt

Document-Root

Bei mir erschien anfangs noch die Meldung, dass mein Document-Root Verzeichnis aus dem Internet erreichbar wäre und die .htaccess Datei nicht funktioniert. Als Lösungsoption wird vorgeschlagen das Owncloud-Verzeichnis aus dem Document-Root heraus zu kopieren.

Das ist keine große Sache, als erstes wird dazu der Apache2-Dienst gestoppt

sudo service apache2 stop

Das Owncloud-Verzeichnis befindet sich in /var/www/html, von da aus kann man es an einen beliebigen Ort verschieben und einen symbolischen Link anlegen.

sudo mv /var/www/html/owncloud /var

damit wird das Owncloud-Verzeichnis nach /var verschoben.

sudo ln -s /var/owncloud /var/www/html/

und damit ein symbolischer Link erstellt

sudo service apache2 start

zu guter letzt der Apache2 wieder gestartet – und weg ist die Meldung.

Mehr Meldungen waren bei meiner Installation nicht vorhanden – mit den oben genannten Punkten konnte ich alle von Owncloud festgestellten Probleme beheben und habe seitdem keine Meldung mehr im Security-Check. Sollten bei euch noch andere Meldungen auftauchen, dann schaut bitte in der Dokumentation von Owncloud nach einer Lösung dazu.

zurück zum Inhalt

Manuelles Update

Falls das Update von Owncloud über den Paketmanager oder das Webinterface nicht funktioniert, kann man auf ein manuelles Update zurückgreifen – dafür sind einige Dinge zu beachten.

Backup

Vor dem Update werden erstmal die existierenden Daten und die Datenbank gesichert, dazu kann man folgenden Befehl nutzen

cp -rv /var/www/owncloud /opt/backup/owncloud && mysqldump  > /opt/backup/backup-file.sql

Der Pfad zum Owncloud-Verzeichnis und der Name der Datenbank gehören entsprechend angepasst! Das Verzeichnis, in welches das Backup erstellt werden soll muss ggf. natürlich auch noch erstellt werden!

Wartungsmodus

Sind alle Daten gesichert muss Owncloud  zum Updaten in den Wartungsmodus versetzt werden

sudo nano /var/owncloud/config/config.php

hier sucht man folgende Zeile:

'maintenance' => false,

und ändert das „false“ in ein „true“ um. STRG+O zum speichern, STRG+X zum Verlassen des Editors.

Cron-Jobs beenden

sudo service cron stop

Apache2 beenden

sudo service apache2 stop

Update-File herunterladen, entpacken und bereinigen

Ich habe mir einen Ordner im /var Verzeichnis erstellt und das File dahin geladen

cd /var

sudo mkdir owncloud-update

cd owncloud-update

sudo wget https://download.owncloud.org/community/owncloud-10.0.10.zip

sudo unzip owncloud-10.0.10.zip

cd owncloud

sudo rm -R data

sudo rm -R config

cd ..

cd ..

Die aktuellen Releases findet man unter https://owncloud.org/download/

Owncloud-Verzeichnis bearbeiten

Gemäß der Dokumentation sollen im Owncloud-Verzeichnis alle Daten entfernt werden – außer data und config. Im vorherigen Schritt haben wir aus dem neuen Owncloud-Verzeichnis die jeweiligen Ordner bereits entfernt.

Um nicht alle anderen Daten/Ordner manuell zu löschen, wird das jetzige Owncloud-Verzeichnis einfach in owncloud-old umbenannt. Wie oben beschrieben befindet sich mein Owncloud-Verzeichnis in /var. Ursprünglich befindet es sich in /var/www/hmtl

sudo mv /var/owncloud /var/owncloud-old

Nun wird das entpackte Verzeichnis aus dem owncloud-update Ordner in /var/ verschoben.

sudo mv -i /var/owncloud-backup/owncloud /var/

und die Ordner config und data aus owncloud-old herüberkopiert

sudo cp -r /var/owncloud-old/data /var/owncloud

sudo cp -r /var/owncloud-old/config /var/owncloud

Der neue Owncloud-Ordner und sein Inhalt gehören aktuell Root – damit es keine Probleme mit den Berechtigungen gibt

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

Der Wartungsmodus kann bzw. muss in der Config-File nun auch wieder deaktiviert werden.

Webinterface

Ruft man das Webinterface nun auf, sollte folgendes zu sehen sein

image0108.png

Nach einem Klick auf „Aktualisierung starten“ sollte normalerweise alles problemlos durchlaufen.

zurück zum Inhalt

Integritätsprobleme nach Update

Bei mir traten Integritätsprobleme zum Einen mit der Datei .user.ini auf – diese war im neuen Owncloud-Verzeichnis gar nicht vorhanden, daher habe ich sie aus dem owncloud-old herüber kopiert.

Eine weitere Datei war die .htaccess. Hier lag, gemäß Logfile, keine Übereinstimmung der Hashes vor. Das Löschen der .htaccess im Owncloud-Verzeichnis und das kopieren der Datei aus owncloud-old brachte keine Abhilfe. So musste ich das Update-Zip-File erneut entpacken und aus dem wiederholt entpackten Owncloud-Ordner die .htaccess Datei in das Owncloud-Verzeichnis schieben.

Warum das genau der Fall war ist mir nicht ganz schlüssig – aber zumindest gibt es nun keine Fehlermeldung mehr – da kann man Nachts auch ruhig schlafen.

Falls bei euch ebenfalls solche Probleme auftreten, dann achtet beim Kopieren/Verschieben der Daten immer auf die Dateirechte!

Auf diese Art habe ich bisher auch noch kein Update durchgeführt – war zwar nicht ganz leicht, hat aber Spaß gemacht.

zurück zum Inhalt

Schlusswort

Das Thema ist tatsächlich sehr umfangreich geworden. Sicherlich könnte ich nun auch noch ausführlich die Nutzung von Owncloud behandeln – allerdings ist diese wirklich Nutzer freundlich gestaltet und erklärt sich im Groben von selbst. Legt einfach ein paar Benutzer an, erstellt Ordner – installiert die App auf euren Endgeräten und verschiebt eure Daten einfach auf die Cloud. Auch Kontakte usw. lassen sich nun in eurer eigenen Cloud bequem sichern. Wer brauch schon Google-Drive?!

Als ich diesen Beitrag hier geschrieben habe, hatte ich Owncloud schon ca. zwei Monate in Benutzung und bin vollauf zufrieden damit. Die kleineren Problemchen mit dem Security-Check z.B. und das Update habe ich sogar quasi Live während der Arbeit an diesem Beitrag bearbeitet. Insgesamt ist dafür schon einiges an Zeit drauf gegangen – aber wenn es irgendwem weiter hilft, dann hat sich meine Arbeit gelohnt.

Falls ich noch irgendwelche sensationellen Funktionen entdecke, oder auf Probleme stoße, deren Lösung mir interessant erscheint – ich werde es berichten.

zurück zum Inhalt