OwnCloud auf Linux Debian installieren

Gerade im Unternehmensumfeld sind kommerzielle Clouanbieter datenschutzrechtlich und bzgl. Datensicherheit problematisch. »Owncloud«1) ist ein Open Source Produkt, lizenziert unter AGPLv32) und stellt eine sehr komfortable Cloud Software für die Eigenverwaltung und Selbstadministration bereit. Es stehen Clients für Windows, Mac, Linux, iOS und Android zur Verfügung. Die Clients für die mobilen Endgeräte sind jedoch kostenpflichtig. Dieser Artikel beschreibt die Installation von »OwnCloud« 6.0.3 auf Apache2 Webserver basierend auf Linux Debian 7.5.0 x64 inclusive SSL Verschlüsselung. Die im Tutorial verwendeten Pfade sind beispielhaft und für den Zweck einer Dokumentation ausgelegt, diese können sich bei produktiven Installation davon unterscheiden.

Für dieses Tutorial wird eine laufende Apache2 Installation auf Linux Debian 7.5.0x64 bzw dazu kompatibel vorausgesetzt. Der Host »cloud.pronto.de« befindet sich bereits in einer lauffähigen Konfiguration oder wird von Ihnen während der Einrichtung der ownClod Software mit angelegt. Information zum Installieren des Apache2 Webservers und der Konfiguration virtueller Hosts finden Sie im Artikel "Virtuelle Hosts auf Apache2 Webserver einrichten"

Anlegen des DocumentRoot- und Data-Verzeichnis

Um ein späteres Storage-Management zu erleichtern, wird das DocumentRoot und das Data-Verzeichnis voneinander getrennt. Somit kann das Data-Verzeichnis auch auf einen eigenen Mountpoint gelegt werden, wo Speicher billig nachgerüstet werden kann.

  • DocumentRoot:
    # mkdir /home/cloud.pronto.de/
  • Data-Verzeichnis:
    # mkdir -p /home/OwnCloud/data
    Wenn das Data-Verzeichnis nicht im Standardpfad angelegt wird, möchte der Installer im data-Verzeichnis eine leere Datei ».ocdata« sehen.
    # touch /home/OwnCloud/data/.ocdata
    Machen Sie zum Abschluss das data-Verzeichnis für den Webserver beschreibbar:
    # chown -R www-data:www-data /home/OwnCloud/data/

Abhängigkeiten installieren

OwnCloud basiert auf »PHP« und »MySQL«, zu der Standardinstallation des »Apache2« Webservers sind noch folgende Pakete nachzuinstallieren:

# aptitude install mysql-server
Notieren Sie das MySQL Root Passwort, welches Sie während der Installation angelegt haben. Installieren Sie die restlichen Pakete:
# aptitude install libapache2-mod-php5 php5-gd php5-mysql

Datenbank und Datenbankbenutzer anlegen

# mysqladmin -u root -p create owncloud
# mysql owncloud -u root -p -e"GRANT ALL ON owncloud.* TO owncloud_admin@localhost IDENTIFIED BY 'ocpasswd'"

OwnCloud Paket herunterladen und entpacken

  • Download:
    # cd /home/cloud.pronto.de/
    /home/cloud.pronto.de# wget http://download.owncloud.org/community/owncloud-6.0.3.tar.bz2
  • Entpacken:
    /home/cloud.pronto.de# tar -xvjf owncloud-6.0.3.tar.bz2
  • Rechte anpassen:
    /home/cloud.pronto.de# chown -R www-data:www-data owncloud/

Passen Sie danach ggf das »DocumentRoot« Verzeichnis in der vhost-Konfigurationsdatei entsprechend an. Im og Fall wäre das »/home/cloud.pronto.de/owncloud«

Installation abschließen

Nachdem alle notwendigen Schritte durchgeführt wurden, kann man nun im Webinterface die Installation abschließen. Rufen Sie dazu in Ihrem Browser die Web-Adresse der OwnCloud Website auf:


Hier können Sie einen Admin User anlegen und das Standard Data Verzeichnis auswählen. Der Datenbank-Name und -Admin sowie das -Passwort sind durch unsere Einstellungen beim Anlegen der Datenbank vorgegeben. Nach Abschluss dieser finalen Einstellungen befinden Sie sich im Admin Backend Ihrer OwnCloud Installation:

Uploadgröße anpassen

Um Ihren Usern die Möglichkeit zu geben auch größere Daten in Ihre Cloud oder/und Sie auf eine bestimmte maximal Größe festzulegen müssen die Parameter »post_max_size« und »upload_max_filesize« in der Datei »/etc/php5/apache2/php.ini« angepasst werden. Um Dateien von einer Größe bis zu 1 GB zuzulassen setzen Sie beide Parameter auf »1024M«:

/etc/php5/apache2/php.ini

# Maximum allowed size for uploaded files.
# http://php.net/upload-max-filesize
upload_max_filesize = 1024M
 
# Maximum size of POST data that PHP will accept.
# Its value may be 0 to disable the limit. It is ignored if POST data reading
# is disabled through enable_post_data_reading.
# http://php.net/post-max-size
post_max_size = 1024M

Starten Sie im Anschluss Ihren Webserver neu:

# service apache2 restart

Des Weiteren muss noch im Admin Backend unter »Administration« im Punkt »Dateibehandlung« die »Maximale Upload-Größe« auf »1 GB« gesetzt werden:

SSL für die Webseite bereitstellen

Gerade bei der Benutzung einer Cloud ist es wichtig, dass die Verbindung von Ihrem Client zum Server verschlüsselt stattfindet. Andernfalls kann die Kommunikation belauscht und sensible Daten abgegriffen werden. Erstellen Sie dazu zuerst eine »Zertifikatsanforderung«, welche bei einer Zertifikats Autorität (CA) eingereicht werden kann. Füllen Sie die notwendigen Informationen aus und achten Sie darauf, dass der Wert unter »common name« exakt dem FQDN Ihrer Webseite entspricht. In diesem Beispiel hier wäre das »cloud.pronto.de«:

Zertifikatsanforderung erstellen:

# openssl req -new -nodes -keyout cloud.key -out cloud.csr -newkey rsa:2048
Generating a 2048 bit RSA private key
---snip---
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:BY
Locality Name (eg, city) []:Wolnzach
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Pronto EDV
Organizational Unit Name (eg, section) []:HQ
Common Name (e.g. server FQDN or YOUR name) []:cloud.pronto.de
Email Address []:edv@email.de        

---snip---
A challenge password []:mysecret
An optional company name []:

Sie finden im Anschluss die Zertifikatsanforderung in der Datei »cloud.csr«:

cloud.csr

-----BEGIN CERTIFICATE REQUEST-----
MIIC5DCCAcwCAQAwgYYxCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCWTERMA8GA1UE
BwwIV29sbnphY2gxEzARBgNVBAoMClByb250byBFRFYxCzAJBgNVBAsMAkhRMRgw
FgYDVQQDDA9jbG91ZC5wcm9udG8uZGUxGzAZBgkqhkiG9w0BCQEWDGVkdkBlbWFp
bC5kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKUU9TQ82dOViT8h
/ZI/mdliGTmAsGF1S/b540tQoi80vXEKaTSDrhI3B6/rv/XyCZv5jqfwlYoOzoN+
WDL+w05dFuzzL3AVVQMv4kkpDzGhKq9+nl07u8KiA0cn2T/zyj7tPexRLBXe8PW+
rvBkqio5u+ry9z9XRO1LwZYMtLi88ry/SgSV/4nO4MuHwPDEzxcEXVLMUIsnzcM0
mPiiQJHhz/842GOiqXVHO4IRnkq60F62Y/kAAS/eLj3Ttnsew/bL2c2jpJ9cjgCY
VjDH1zV1r1Yhn+BOqp/jpWriH3/Nxyxh/smo8wGUrJ02fCpZpNiIoi3gChYZtUC0
IToluVkCAwEAAaAYMBYGCSqGSIb3DQEJBzEJDAdzbWlsZTE1MA0GCSqGSIb3DQEB
BQUAA4IBAQBeK2KiCkOtP4hOo62D9RpT5xTxo8icHrMw9/cakknmI0Tc7TzhCYTx
AaUDECpUPf7/zQefX+Uu6NkFNGJXL3vqK8hKiwMLfIwBnVvUpFQ5ty3CbCujTeWb
QpkDOpDQsdMDzYR8ZxYoBoP/u5J9e+iQ86enDWUY1ujos0JUp16h03ywt0KKIApk
z7hGH9hcLZs9/748W1sYKIT4gmdlMvJO4s1nRuWvWfk9g98RBZoTbx9GeTWDQqNy
d9FRaPaMXbPUPuKrczBp7mhWsydqjsHyP4sQsnnasVd9IVk+O9rabYV1YyiDiw19
//7bNnuYGNAWnqPh6M8MsvGa4+vOysZ9
-----END CERTIFICATE REQUEST-----

Soweit so gut. Diesen Zertifikats Request reichen Sie dann bei einer beglaubigten »CA« (»Certification Authority«) ein, welche Ihnen ein Zertifikat für Ihren Host ausstellt. Da ich aber a) jetzt für diese Anleitung kein Geld für ein Zertifikat aufbringen möchte und ich b) auch nicht der legitime Inhaber der Domain »pronto.de« bin, muss ich auf eine andere Möglichkeit zurückgreifen und ein selbstsigniertes Zertifikat exemplarisch verwenden. Dazu sende ich die Datei »cloud.csr« an den Admin des Servers der die »CA« administriert. Der Nachteil dieser Methode ist, dass eigentlich nur ich die signierende »CA« kenne und der Rest der Welt dieser dann auch nicht vertraut, was zwangsläufig zu einer Zertifikatswarnung im Browser führt aber verschlüsselt wird die Kommunikation trotzdem. Wenn Sie den »HTTPS« Service nur auf Ihnen bekannten Geräten nutzen, können Sie dort das Zertifikat Ihrer bzw der signierenden »Root CA« importieren, somit vertraut dieses Client System dann der ausstellenden »CA« und wird Sie fortan nicht mehr mit einer Warnung belästigen. Informationen zum Erstellen einer eigenen »Root CA« und dort Zertifikate zu erstellen und zu signieren, sowie zum Import des »RootCA Zertifikats« in Client Systeme erhalten Sie im Artikel Erstellen und Anwenden einer RootCA. Bewahren Sie die Datei »cloud.key« sorgfältig auf, Sie enthält Ihren privaten Schlüssel und sollte nicht in falsche Hände geraten.

Kopieren Sie sowohl den Key »cloud.key« als auch das zurück erhaltene Zertifikat »cloud.cer« nach »/etc/ssl«. Der Speicherort sowie die Bennenung der Dateien bleibt Ihnen überlassen, es muss lediglich eindeutig zwischen einem Zertikat, einer Zertifikatsanforderung und einem Key unterschieden werden, auch der Speicherplatz muss später nur in der Host Konfigurationsdatei angegeben werden.

Tipp: Vergeben Sie kein Passwort für Ihr Zertifikat, weil dies sonst bei jedem Start des Webservers abgefragt wird. Bleibt die Eingabe aus, funktioniert die Seite nicht mehr.

Wenn Sie nun das Zertifikat zurück erhalten haben, können Sie im Host »cloud.pronto.de« die SSL Verschlüsselung einstellen. Der Apache2 hat in seiner Konfiguration bereits einen vorgefertigten Code Block, der im Prinzip nur noch fertig ausgefüllt werden muss. Zuerst sollte aber das Apache Modul »ssl« aktiviert werden:

# a2enmod ssl

Kopieren Sie den SSL Code Block in die Konfigurationsdatei3) des Hosts:

# cat /etc/apache2/sites-available/default-ssl >> /etc/apache2/sites-available/cloud.pronto.de

Im Wesentlichen kann der einleitende und abschließende »<IfModule mod_ssl.c>« entfernt werden (damit prüft Apache nicht ob das Modul »ssl« geladen ist) und die folgenden Parameter Ihren Anforderungen entsprechend angepasst werden:

/etc/apache2/sites-available/cloud.pronto.de

<VirtualHost 192.168.167.241:443>
ServerName cloud.kastner.de
DocumentRoot /home/cloud.pronto.de/owncloud/
SSLCertificateFile    /etc/ssl/cloud.cer
SSLCertificateKeyFile /etc/ssl/cloud.key
ErrorLog ${APACHE_LOG_DIR}/ssl_cloud.pronto.de-error.log
CustomLog ${APACHE_LOG_DIR}/ssl_cloud.pronto.de-error.log combined

Die gesamte Konfigurationsdatei finden Sie als PDF verlinkt4)

Starten Sie abschließend Ihren Webserver neu:

# service apache2 restart

Anschließend sollte Ihre Cloud auch über HTTPS erreichbar sein, lediglich noch mit der oben bereits erwähnten Zertifikatswarnung:

WikiSysop 2014/06/02 13:52

tux/install_owncloud.txt (3940 views) · Zuletzt geändert: 2014/08/05 13:43 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0