ADMIN

2022

07

2022-06-29T12:00:00

Mobiles Arbeiten

SCHWERPUNKT

080

Cloud

Mobile Geräte

ownCloud

Daten speichern mit ownCloud Infinite Scale

Mein Haus, mein Auto, meine Wolke

von Martin Loschwitz

Veröffentlicht in Ausgabe 07/2022 - SCHWERPUNKT

KMU sind von den Pflichten der DSGVO keinesfalls befreit, verfügen aber anders als große Unternehmen meist nicht über umfassende Compliance-Regeln. Wer etwa viele PDF-Dateien speichern muss, steht vor dem Problem, dies zentral, sicher und ohne datenschutzrechtliche Bedenken umzusetzen – idealerweise noch so, dass der Zugriff von mobilen Endgeräten aus problemlos klappt. ownCloud Infinite Scale in Kombination mit seinen mobilen Clients bietet hier die passenden Möglichkeiten. Wie Sie die Plattform aufsetzen, erfahren Sie in unserem Workshop.

Dass Fliesenleger, Frisöre und Konditoreien sich nicht mit den Niederungen des Datenschutzes und der IT-Sicherheit befassen wollen, weil es nicht ihre Kernkompetenz ist, leuchtet einerseits ein. Das entbindet sie jedoch nicht von der Pflicht, geltende Regeln und geltendes Recht einzuhalten. Daher tummeln sich am Markt mittlerweile Anbieter, die Rundum-Sorglos-Pakete im Portfolio haben. Oft reißen diese allerdings ein heftiges Loch in den Säckel – und zwar periodisch, denn viele Produkte kommen als Abonnement daher.
ownCloud Infinite Scale (oCIS) bietet einen Ausweg: Die Plattform ermöglicht es einerseits, einen zentralen Speicher für Dateien aller Art mit Up- und Downloadmöglichkeiten im Internet zu betreiben, und kommt andererseits mit Clients für die gängigen mobilen Betriebssysteme daher. Damit versetzt das Werkzeug ein Unternehmen in die Lage, Daten sicher und mit verschlüsselter Übertragung auf eigener Hardware zu speichern und unterwegs zu benutzen. Welche Vorarbeiten dafür notwendig sind und wie Sie mit möglichst geringem Aufwand zu einem funktionalen Ergebnis kommen, beschreiben wir nun genauer.
Voraussetzungen für oCIS-Instanz
Eine aus dem Internet erreichbare oCIS-Instanz ist an gewisse Bedingungen geknüpft, um sinnvoll nutzbar zu sein. Die erste lautet, dass sie auf einem System laufen muss, das idealerweise über eine ständige Internet-Verbindung verfügt. Ein passendes System lässt sich natürlich im Rechenzentrum hosten; viele Unternehmen haben allerdings im eigenen Büro mittlerweile ebenfalls hinreichend leistungsfähige Leitungen. Wichtig ist vor allem der Upstream, die Geschwindigkeit also, mit der ein Anschluss Daten ins Internet überträgt. Denn über diesen spielt ownCloud später Dateien aus, die Mitarbeiter unterwegs auf ihren mobilen Endgeräten öffnen.
Dass Fliesenleger, Frisöre und Konditoreien sich nicht mit den Niederungen des Datenschutzes und der IT-Sicherheit befassen wollen, weil es nicht ihre Kernkompetenz ist, leuchtet einerseits ein. Das entbindet sie jedoch nicht von der Pflicht, geltende Regeln und geltendes Recht einzuhalten. Daher tummeln sich am Markt mittlerweile Anbieter, die Rundum-Sorglos-Pakete im Portfolio haben. Oft reißen diese allerdings ein heftiges Loch in den Säckel – und zwar periodisch, denn viele Produkte kommen als Abonnement daher.
ownCloud Infinite Scale (oCIS) bietet einen Ausweg: Die Plattform ermöglicht es einerseits, einen zentralen Speicher für Dateien aller Art mit Up- und Downloadmöglichkeiten im Internet zu betreiben, und kommt andererseits mit Clients für die gängigen mobilen Betriebssysteme daher. Damit versetzt das Werkzeug ein Unternehmen in die Lage, Daten sicher und mit verschlüsselter Übertragung auf eigener Hardware zu speichern und unterwegs zu benutzen. Welche Vorarbeiten dafür notwendig sind und wie Sie mit möglichst geringem Aufwand zu einem funktionalen Ergebnis kommen, beschreiben wir nun genauer.
Voraussetzungen für oCIS-Instanz
Eine aus dem Internet erreichbare oCIS-Instanz ist an gewisse Bedingungen geknüpft, um sinnvoll nutzbar zu sein. Die erste lautet, dass sie auf einem System laufen muss, das idealerweise über eine ständige Internet-Verbindung verfügt. Ein passendes System lässt sich natürlich im Rechenzentrum hosten; viele Unternehmen haben allerdings im eigenen Büro mittlerweile ebenfalls hinreichend leistungsfähige Leitungen. Wichtig ist vor allem der Upstream, die Geschwindigkeit also, mit der ein Anschluss Daten ins Internet überträgt. Denn über diesen spielt ownCloud später Dateien aus, die Mitarbeiter unterwegs auf ihren mobilen Endgeräten öffnen.
Unser Beispiel geht davon aus, dass ein 50-MBit/s-Upstream zur Verfügung steht, der für die meisten alltäglichen Aufgaben ausreicht. Besonders bei Business-Anschlüssen ist zudem eine feste, öffentliche IP-Adresse die Regel, für die im Nameserver ein passender DNS-Eintrag angelegt sein sollte. Das folgende Exempel verwendet dafür "owncloud.example.net", das auf die IP-Adresse 93.184.216.34 zeigt.
Falls ein lokaler Router, eine lokale Firewall oder ein Loadbalancer zum Einsatz kommt, sollten diese Geräte so konfiguriert sein, dass sie eingehende Anfragen auf Port 443 an die IP-Adresse des Systems weiterleiten, auf dem später ownCloud Infinite Scale läuft – und dort auf den Port 9200. In unserem Workshop lautet diese IP-Adresse 192.168.1.100. Obendrein sollte ein gültiges SSL-Zertifikat für den Hostnamen der oCIS-Instanz zur Verfügung stehen, im Beispiel also eines für "owncloud.example.net". Im Netz gibt es passende, offizielle SSL-Zertifikate für wenige Euro, etwa beim Anbieter AlphaSSL. Auch eine Integration mit Googles Let's Encrypt wäre möglich, würde jedoch den Rahmen dieser Anleitung sprengen.
Die passende Hardware
Der erste Schritt auf dem Weg zur eigenen oCIS-Instanz besteht darin, ein passendes System auszuwählen oder zu bauen, auf dem ownCloud läuft. Die gute Nachricht ist, dass ownCloud Infinite Scale ein kompletter Rewrite des klassischen ownCloud ist, der bei vergleichbarer Hardware deutlich mehr Performance bietet. In vielen Fällen dürfte ein einfacher Raspberry Pi deshalb ausreichen. Eine lokale Festplatte mit ausreichend viel Platz sollte natürlich eingebaut sein, in unserem Beispiel kommt eine Festplatte mit 5 TByte zum Einsatz.
Wer Redundanz benötigt, konfiguriert zwei Laufwerke in einer RAID-1-Verbindung. Dann ist ein Raspberry Pi allerdings auch nicht mehr das Mittel der Wahl; in solchen Fällen empfiehlt es sich stattdessen, auf einen NUC (Next Unit of Computing ) von Intel oder einen MicroServer von HP zuzugreifen. Eine einfache CPU mit vier oder acht Kernen sowie 16 GByte Hauptspeicher bietet alles, was oCIS in KMU an Ressourcen benötigt. Der finanzielle Aufwand hält sich in Grenzen – mit ungefähr 80 bis 600 Euro müssen Admins je nach gewünschter Funktionalität rechnen.
Im Folgenden gehen wir davon aus, dass ein entsprechendes System verfügbar ist, in Form von "/dev/sdb" ein Datenträger für die ownCloud-Daten bereitsteht und Ubuntu 22.04 als Grundsystem vorinstalliert ist. Die oCIS-Installation verläuft in mehreren Schritten: Weil die ownCloud-Entwickler ihr Produkt als fertigen Container für Docker bereitstellen, steht zunächst das Aufspielen der Laufzeitumgebung für Container von Docker auf dem Plan. Dann erfolgt die Konfiguration des Containers, um im letzten Schritt oCIS per "docker-compose" an den Start zu bringen. Schließlich erfolgt die oCIS-Einrichtung sowie die der Clients auf den Endgeräten der Anwender.
Bild 1: Genügsam – ein NUC von Intel reicht für den Betrieb einer eigenen oCIS-Instanz völlig aus.
Docker ausrollen
Gegeben sei also ein System mit Ubuntu 22.04. Obwohl die neue LTS-Version von Ubuntu gerade erst das Licht der Welt erblickt hat, steht die Docker-Community-Umgebung für die Distribution bereits zur Verfügung. Allerdings müssen Sie auf dem System ein spezielles Paketverzeichnis (Repository) aktivieren, um an die jeweiligen Pakete heranzukommen. Dazu besorgen Sie zunächst mit
sudo apt install apt-transport-https ca-certificates curl software-properties-common
die notwendigen Pakete. Das Kommando
curl -fsSL
      https://download.docker.com/linux/ubuntu/gpg | sudo gpg
      --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
veranlasst im nächsten Schritt, dass das lokale System den GPG-Schlüssel kennt, den Docker nutzt, um die eigenen Paketlisten zu signieren – nur so kann das System sicherstellen, dass die von Docker heruntergeladenen Pakete tatsächlich auch von den Docker-Entwicklern stammen.
Der nächste Schritt fügt dann das offizielle Docker-Verzeichnis den lokalen Paketquellen hinzu:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Mittels apt-get update veranlassen Sie dann, dass der Paketverwalter "apt" seine Paketquellen einmal komplett aktualisiert. sudo apt install docker-ce sorgt schließlich dafür, dass Docker den Weg auf das lokale System findet. Die beschriebenen Arbeiten lassen sich übrigens nur als Systemverwalter "root" durchführen, der Zugriff auf dessen Rechte mittels "sudo" ist für den ausführenden Benutzer also zwingende Voraussetzung.
Die Festplatte einbinden
Wie erwähnt setzt unser Workshop voraus, dass ein Laufwerk in Form von "/dev/sdb" vorhanden ist, das ownClouds Nutzdaten aufnimmt. Um welche Art von Hardware es sich dabei handelt, etwa eine pfeilschnelle SSD oder doch eine langsame Festplatte, ist dabei Ihrem Geschmack und Ihren Anforderungen überlassen. Falls ein RAID Verwendung finden soll, konfigurieren Sie es entweder auf einem entsprechend vorhandenen RAID-Controller, der das RAID-1-Laufwerk dann gleich als "fertiges" Gerät ins System durchschleift, oder Sie erzeugen mittels "mdraid" ein Software-RAID, das hinterher als "/dev/md0" verfügbar ist. Die Befehle im folgenden Teil dieses Artikels sind dann anzupassen, indem Sie "sdb" durch "md0" ersetzen.
Damit das Laufwerk unter Linux überhaupt nutzbar ist, benötigt es ein Dateisystem. VFAT oder NTFS, die oft auf gekauften Festplatten vorgegeben sind, ergeben bei der beabsichtigten Nutzung unter Linux keinen Sinn. Stattdessen eignet sich XFS, das gute Performance und hohe Stabilität bietet. Falls in diesem Schritt kein Software-RAID zum Einsatz kommt, legen Sie zunächst mittels "cfdisk" auf der Platte eine einzelne, große Partition an. Dann folgt der Befehl sudo mkfs.xfs -L data /dev/sdb1 oder sudo mkfs.xfs -L DATA /dev/md0 im Fall eines Software-RAID. Falls der Befehl nicht funktioniert, ist möglicherweise die Installation des Pakets "xfsprogs" notwendig.
Der im Kommando enthaltene Parameter "-L" sorgt dafür, dass das neue Dateisystem mit einem Label ausgestattet wird, anhand dessen Sie es in der Datei "/etc/fstab" genau referenzieren. Denn das Bearbeiten dieser Datei ist der nächste Schritt: Damit Ubuntu die Datenpartition für ownCloud bereits beim Systemstart in das Dateisystem einhängt, braucht "/etc/fstab" einen Eintrag für sie. "LABEL=DATA /srv/data xfs defaults 0 0" erledigt diese Aufgabe. Das nötige Verzeichnis erzeugen Sie mittels sudo mkdir /srv/data. Anschließend lässt sich die neue Partition mittels sudo mount -a einhängen. Abschließend legt
docker volume create --driver local
      --opt type=none
      --opt device=/srv/data
      --opt o=bind ocis‑data
ein Volume in Docker an, das sich beim Starten des Containers als Parameter übergeben lässt.
Bild 2: oCIS als offizieller ownCloud-Nachfolger bietet zentrales Speichern von Dateien an und stellt diese (mobilen) Endgeräten zur Verfügung.
Das System vorbereiten
Sämtliche Konfigurationsparameter, die oCIS für den Betrieb benötigt, übergeben Sie als Umgebungsvariable beim Starten des Containers. Hier stellt sich für das weitere Vorgehen eine wichtige Frage: Soll ein zentrales Benutzerverzeichnis zum Einsatz kommen oder soll oCIS die Nutzer, die Zugriff auf den Dienst haben, in seiner eigenen Datenbank verwalten? Grundsätzlich beherrscht oCIS zwar beide Varianten, doch gibt es im Hinblick auf das Thema eines zentralen Benutzerverzeichnisses mehrere Einschränkungen.
Die oCIS-Entwickler setzen bei der Abwicklung von Benutzerzugängen über ein zentrales Verzeichnis streng auf das Open­ID-Protokoll. Komplementär dazu lässt sich auch ein eigener Verzeichnisdienst zusammen mit oCIS ausrollen. Ein entsprechendes Beispiel findet sich in der oCIS-Dokumentation. Dieses fußt dann auf openLDAP und konfiguriert oCIS so, dass es unmittelbar mit LDAP im Hintergrund kommuniziert. Theoretisch ist es in der Praxis dadurch natürlich ebenfalls möglich, oCIS mit einem bestehenden Active Directory zu verbinden.
Offiziell unterstützt oCIS solch ein Setup aber noch nicht, und um es zu konfigurieren, sind einige Sprünge durch brennende Reifen notwendig. Obendrein findet sich in den wenigsten KMU heute eine zentrale Benutzerverwaltung. Hier dominieren stattdessen lokale Benutzerzugänge. Der Workshop geht im Folgenden deshalb davon aus, dass oCIS die Hoheit über die Verwaltung seiner eigenen Benutzer hat.
Damit das funktioniert, ist allerdings noch etwas zusätzliche Konfigurationsarbeit auf dem Host notwendig. Konkret geht es um die Konfigurationsdateien, die oCIS beim eigenen Betrieb anlegt und in denen auch die konfigurierten Benutzerzugänge gespeichert sind. Diese erstellt oCIS in "/home/ocis" innerhalb des Containers. Was freilich auch heißt, dass dort persistenter Speicher vorhanden sein sollte, denn ansonsten ist das Verzeichnis bei jedem Neustart des oCIS-Containers leer und oCIS finge mit einer komplett neuen Benutzer- und Dateistruktur an.
Auf dem Host, auf dem der Container laufen soll, legen Sie deshalb per adduser ocis zunächst einen Benutzer "ocis" an. Beim Starten des Containers später hängen Sie dieses Verzeichnis dann als Vol-ume in den Container ein, sodass oCIS einen persistenten Speicher in "/home/ocis" im Container vorfindet.
oCIS starten
Im Anschluss geht es mit dem Betrieb von oCIS weiter. Damit oCIS später das für den Dienst vorgesehene SSL-Zertifikat samt SSL-Schlüssel finden und verwenden kann, legen Sie den Unterordner "certs" in "/home/ocis" auf dem Host-System an und kopieren beide Dateien in dieses Verzeichnis. Unser Beispiel setzt voraus, dass die Dateien "cert.pem" sowie "key.pem" heißen. Danach beziehen Sie mittels docker pull owncloud/ocis die aktuellste Version des von oCIS bereitgestellten Containers. Schließlich lässt sich der Container auf dem lokalen System starten – er benötigt allerdings eine große Menge an Variablen für seine interne Umgebung:
docker run --rm -ti -p 9200:9200 --name ocis -v ocis-data:/var/lib/ocis -v /home/ocis:/home/ocis -e PROXY_HTTP_ADDR=0.0.0.0:9200 -e OCIS_URL=https://owncloud.example.net:9200 -e PROXY_TRANSPORT_TLS_KEY=/home/ocis/certs/key.pem -e PROXY_TRANSPORT_TLS_CERT=/home/ocis/certs/cert.pem -e OCIS_INSECURE=false -e ACCOUNTS_DEMO_USERS_AND_GROUPS=false -e OCIS_DOMAIN=owncloud.example.net owncloud/ocis
Der Befehl erweckt auf dem lokalen System einen Container zum Leben, in dem dann eine oCIS-Instanz läuft. Achtung: Weil das Anlegen der Standard-Accounts im Kommando ausdrücklich aktiviert ist, gibt es in ownCloud anschließend den Benutzer "admin" mit dem Standardpasswort "admin". Dieses ist leicht zu erraten und obendrein in der oCIS-Dokumentation vermerkt. Es empfiehlt sich in­sofern, zumindest in dieser Phase des Setups den Zugriff auf oCIS auf die IP-Adresse des Administrators zu beschränken. Loggen Sie sich im nächsten Schritt über "https://owncloud.example.net" erstmals in die laufende oCIS-Instanz ein und ändern Sie sofort das Passwort von "admin", damit von Anfang an Missbrauch ausgeschlossen ist.
Listing: Systemd-Unit für oCIS-Container
[Unit] Description=oCIS service After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 Restart=always Environment="PROXY_HTTP_ADDR=0.0.0.0:9200" Environment="OCIS_URL=https://owncloud.example.net:9200" Environment="PROXY_TRANSPORT_TLS_KEY=/home/ocis/certs/key.pem" Environment="PROXY_TRANSPORT_TLS_CERT=/home/ocis/certs/cert.pem" Environment="OCIS_INSECURE=false" Environment="ACCOUNTS_DEMO_USERS_AND_GROUPS=false" Environment="OCIS_DOMAIN=owncloud.example.net" ExecStartPre=-/usr/bin/docker exec %n stop ExecStartPre=-/usr/bin/docker rm %n ExecStartPre=/usr/bin/docker pull owncloud/ocis ExecStart=/usr/bin/docker run --rm --name %n \       -ti -p 9200:9200 \       -v ocis-data:/var/lib/ocis \       -v /home/ocis:/home/ocis \       owncloud/ocis [Install] WantedBy=default.target
ownCloud dauerhaft betreiben
Würde das System mit der laufenden ownCloud-Instanz jetzt neu gestartet, liefe auch ownCloud anschließend nicht mehr. Zwar ließe der Dienst sich – weil seine Daten ja auf persistenten Volumes liegen – jederzeit problemlos wieder starten. Aus Sicht des Administrators ist das aber nicht zufriedenstellend, zumal in Notfällen, etwa nach einem Stromausfall, der Admin vielleicht auch nicht sofort zur Verfügung steht, um ownCloud erneut zu starten. Sinnvoller ist es, den Container mittels einer Systemd-Unit so im System zu verankern, dass er automatisch hochfährt. Das im Listing-Kasten vermerkte Beispiel ist dafür geeignet.
Nachdem die Datei als "ocis.unit" im Unit-Verzeichnis von Systemd abgelegt ist, laden Sie dessen Konfiguration mittels sudo systemctl daemon-reload neu und starten im Anschluss auch Docker mittels sudo systemctl restart docker neu. Sollte der für oCIS zuständige Container nicht laufen oder abstürzen, erweckt Systemd ihn ohne Ihr Eingreifen wieder zum Leben.
Bild 3: Nach der Eingabe der URL einer oCIS-Instanz konfiguriert der Anwender nur noch seinen Benutzernamen sowie sein Passwort.
Benutzer und mobile Geräte einrichten
Nach der Konfiguration des Systems fehlt nur noch ein Schritt, um Ihren Nutzern den Zugang zu oCIS zu ermöglichen: Das Anlegen passender Benutzer-Accounts. Das erledigen Sie über die Administratorkonsole von oCIS, wo der Punkt "Benutzerverwaltung" zu finden ist. Sobald alle benötigten Zugänge eingerichtet sind, steht die Konfiguration der Clients auf dem Plan.
oCIS erbt von seinem Vorgänger own­Cloud das gesamte Kommunikationsprotokoll mit den Clients. Das bringt den unschätzbaren Vorteil mit sich, dass sämtliche Clients, die bereits mit der alten ownCloud-Version funktioniert haben, ihren Dienst auch mit oCIS klaglos verrichten. Um Clients zu verbinden, ist deshalb sehr wenig zusätzliche Arbeit notwendig – es genügt, auf den mobilen Endgeräten den Client aus dem jeweiligen AppStore zu konfigurieren und einzurichten.
Auf iOS gestaltet sich das Prozedere etwa so: Nach der Installation der Anwendung aus Apples AppStore begrüßt die ownCloud-App ihre Nutzer mit dem Einrichtungsdialog. Hier führt "Hinzufügen" zur Seite, auf der die komplette Adresse der oCIS-Instanz anzugeben ist. Danach kommt die Abfrage des Benutzernamens und des Passworts, die im Beispiel Nutzer vom Administrator direkt erfragen. Sobald dieser Schritt beendet ist, loggt die ownCloud-App sich automatisch beim Server ein und sowohl der Download als auch der Upload von Dateien wird möglich.
Die ownCloud-Integration auf mobilen Endgeräten geht allerdings noch einen Schritt weiter. Denn ownCloud integriert sich unmittelbar auch als "Speicherort" in iOS, Android & Co. Das bedeutet im Klartext, dass ownCloud als Speicherziel überall dort auswählbar ist, wo beispielsweise auch Apples iCloud oder Google Drive nativ in das Betriebssystem integriert sind. Das ist besonders für externe Anwendungen praktisch, die herunterladbare Dateien produzieren – etwa Verwaltungssoftware Auftragsabnahmen, auf denen Kunden unterschreiben. Denn solche Dokumente lassen sich im Anschluss unmittelbar in ownCloud hochladen und stehen dann dort der Buchhaltung zur Verfügung, die eine Rechnung schreiben kann.
Noch ein Wort zum Thema Datenschutz: Dessen grundsätzliches Prinzip ist es, dass Nutzer nur auf jene Daten Zugriff erhalten sollten, die sie tatsächlich benötigen. Das lässt sich in ownCloud durchaus realisieren. Die Buchhaltung etwa kann Zugriff auf ihren eigenen Ordner ebenso erhalten wie Monteure oder andere Mitarbeiter in der Verwaltung. Hier kommen ownClouds Rollen und Gruppen ins Spiel, die sich ebenfalls über das Frontend zur Administration einrichten lassen. Der Datenaustausch zwischen Gruppen kann im Bedarfsfall über ownClouds Sharing-Funktionen geschehen, bei denen Anwender einzelne Dateien für andere Gruppen spezifisch zugänglich machen.
Fazit
ownCloud Infinite Cloud bietet kleinen und mittelständischen Unternehmen eine einfache und kostengünstige Art und Weise, Daten auf eigener Hardware zu speichern und auf mobilen Endgeräten verfügbar zu machen. Der Faktor "eigene Hardware" spielt dabei eine besondere Rolle, denn mobile Endgeräte lassen sich über die Features zur Geräteverwaltung von Apple und Google gut aus der Ferne steuern, und wenn die Daten im eigenen Büro auf einem Server liegen, kommen sie garantiert nicht in der Cloud abhanden.
Zusätzliche Sicherheitsmaßnahmen sind freilich denkbar. So wäre es möglich, die Speicherlaufwerke im oCIS-System selbst zu verschlüsseln. Dann würden sogar in den Fällen, in denen das jeweilige Gerät aus einem Büro gestohlen wird, die darauf vorhandenen Daten für Ganoven unzugänglich. Positiv für oCIS ist zudem, dass die Plattform, wenn sie einmal läuft, gut und leicht zu administrieren ist. Wer also auf der Suche nach einem verlässlichen zentralen Datenspeicher ist, sollte oCIS auf der Rechnung haben.
(ln)
Link-Codes
[1] ownCloud Infinity Scale: https://owncloud.com/infinite-scale/