Nextcloud SFTP-External-Storage: Bestehende Speicherlandschaften nahtlos integrieren

Es ist eine verbreitete Illusion, die da in vielen IT-Abteilungen herumgeistert: die einer einzigen, allumfassenden Datenwolke. In der Realität sieht es anders aus, fast immer. Daten lagern verstreut auf alten Fileservern, in Projektshares, auf NAS-Systemen und in den Tiefen von Archivspeichern. Diese Fragmente zu einer kohärenten, benutzerfreundlichen Oberfläche zu vereinen, ohne sie physisch zu verschieben, ist eine der größten Herausforderungen für Administratoren. Genau hier setzt eine oft unterschätzte Funktion von Nextcloud an: der External Storage.

Im Speziellen geht es um die Anbindung via SFTP, dem Secure File Transfer Protocol. Was auf den ersten Blick wie eine simple Brücke zu einem anderen Server wirkt, entpuppt sich bei genauerem Hinsehen als eine der flexibelsten und robustesten Methoden, heterogene Speicherlandschaften zu integrieren. Anders als bei reinen SMB/CIFS-Freigaben oder der direkten NFS-Einbindung bietet SFTP eine Ebene der Abstraktion und Sicherheit, die es erlaubt, auch über unsichere Netzwerke hinweg und mit granularer Zugriffskontrolle zu arbeiten.

Mehr als nur ein Tunnel: Die technische Grundlage von SFTP

Bevor man sich in die Konfiguration stürzt, lohnt ein kurzer Blick unter die Haube. SFTP ist nicht, wie manch einer fälschlich annimmt, einfach FTP über SSH. Es ist ein eigenständiges Protokoll, das zwar den SSH-Daemon als Transportmedium nutzt, aber einen komplett anderen Befehlssatz zur Dateiübertragung und -verwaltung verwendet. Diese Symbiose ist entscheidend für seinen Erfolg.

Weil SFTP die Sicherheitsinfrastruktur von SSH erbt, entfällt der Aufwand für separate TLS-Zertifikate oder komplexe VPN-Tunnel. Der SSH-Server, das Arbeitstier in nahezu jeder Linux-Umgebung, wird damit zum Tor zur Außenwelt. Nextcloud nutzt diese Stärke, indem es sich mit den Anmeldeinformationen eines Benutzers auf dem Zielsystem authentifiziert und dann dessen Dateisystem via SFTP abbildet. Das klingt simpel, hat aber weitreichende Implikationen für die Architektur.

Ein interessanter Aspekt ist die Trennung von Berechtigungen. Nextcloud agiert mit den Rechten desjenigen Benutzers, dessen Credentials in der Storage-Konfiguration hinterlegt sind. Das bedeutet: Sieht dieser Benutzer nur ein bestimmtes Verzeichnis, zum Beispiel /srv/data/projekt_alpha, dann wird auch nur dieses in Nextcloud eingebunden. Die feingranulare Berechtigungssteuerung des Unix-Dateisystems wird so zum integralen Bestandteil der Nextcloud-Sicherheit.

Praktische Einrichtung: Vom SSH-Server zum Nextcloud-Mount

Die Theorie ist das eine, die Praxis im Admin-Alltag das andere. Die Konfiguration eines SFTP-Storages in Nextcloud beginnt nicht in der Nextcloud-Oberfläche, sondern auf dem Zielserver. Zunächst muss sichergestellt sein, dass ein SSH-Server läuft und der gewünschte Nutzer sich per Public-Key-Authentifizierung anmelden kann. Passwortbasierte Authentifizierung ist zwar möglich, gilt aus Sicherheitsgründen aber als verpönt und sollte deaktiviert werden.

Ein häufiger Fehler ist es, hier mit dem root-Account zu arbeiten. Besser ist die Erstellung eines dedizierten Systemusers, etwa nextcloud_storage, dessen Shell auf /bin/false oder /usr/sbin/nologin gesetzt ist, um interaktive Logins zu unterbinden. Dieser User erhält dann nur genau die Lese- und Schreibrechte, die für den beabsichtigten Zweck notwendig sind. Das ist Defense in Depth vom Feinsten.

In der Nextcloud-Administration findet sich der External Storage unter „Einstellungen“ -> „Administration“ -> „Externer Speicher“. Nach Auswahl von SFTP als Protokoll sind nur wenige Parameter nötig: die Serveradresse, der Port (standardmäßig 22), der Remote-Pfad, der Username und – entscheidend – der private SSH-Key. Letzteren fügt man am besten direkt im Klartext ein. Nextcloud speichert ihn verschlüsselt in seiner Datenbank. Wer besonders paranoid ist, kann den Key auch mit einem Passphrase schützen, das muss dann aber zusätzlich in der Konfiguration hinterlegt werden. Eine kleine Hürde der Bequemlichkeit für ein deutliches Plus an Sicherheit.

Dabei zeigt sich eine der großen Stärken: Die Einbindung kann global für alle Nutzer, aber auch auf Benutzergruppen- oder individueller Ebene erfolgen. Ein globaler Mountpoint für ein Unternehmens-Archiv, gruppenspezifische Mounts für Projektabteilungen und individuelle Links zu persönlichen Backup-Verzeichnissen auf einem zentralen Server – all das ist mit derselben Technologie möglich.

Die Tücken im Detail: Performance und Datei-Locking

Keine Technologie ist perfekt, und SFTP-External-Storage bildet da keine Ausnahme. Der größte Stolperstein ist die Performance, insbesondere bei Verzeichnissen mit zehntausenden von Dateien. Nextcloud muss für jede Abfrage eine SFTP-Session aufbauen, den Befehl ausführen und die Antwort parsen. Das ist um Größenordnungen langsamer als ein direkter Dateisystemzugriff via NFS oder gar lokal.

Für gelegentlich genutzte Archivdaten mag das hinnehmbar sein. Für aktive Projektverzeichnisse, in denen ständig Dateien erstellt, gelöscht und umbenannt werden, kann diese Latenz jedoch zur Frustrationsquelle für die Anwender werden. Abhilfe schafft hier der Einsatz eines leistungsfähigen SSH-Servers auf der Gegenseite und eine optimale Netzwerkanbindung. Auch das Aktivieren der cached-Option im External-Storage-Modul kann Wunder wirken. Nextcloud hält dann Metadaten im eigenen Cache vor und muss nicht bei jedem Klick eine neue Verbindung aufbauen.

Ein weiteres, oft übersehenes Problem ist das Datei-Locking. Nextclouds kollaborative Features wie die OnlyOffice-Integration oder die gemeinsame Bearbeitung von Textdokumenten sind auf ein zuverlässiges Locking-Mechanismus angewiesen. SFTP als Protokoll bietet hierfür keine native Unterstützung. Nextcloud muss sich behelfen, indem es Lock-Dateien im selben Verzeichnis anlegt. Das funktioniert in den meisten Fällen, kann aber bei verzögerten Netzwerkverbindungen oder konkurrierenden Zugriffen von außerhalb der Nextcloud-Instanz zu Konflikten führen. In hochdynamischen Kollaborationsumgebungen sollte man daher genau abwägen, ob SFTP der richtige Weg ist.

Use-Cases jenseits des Offensichtlichen

Die naheliegende Anwendung ist die Anbindung eines bestehenden Linux-Fileservers. Doch die Möglichkeiten gehen weit darüber hinaus. Denken Sie an Cloud-Speicher, die nicht nativ von Nextcloud unterstützt werden. Viele kleinere Anbieter oder spezialisierte Hoster bieten SSH/SFTP-Zugang zu ihren Servern an. Über den External Storage lässt sich dieser nahtlos in die Nextcloud-Oberfläche integrieren, fast so, als wäre es lokaler Speicher.

Ein besonders elegantes Szenario ist die Migration. Statt Terabytes an Daten in einem Rutsch in die Nextcloud-Instanz zu kopieren und dabei möglicherweise wertvolle Bandbreite zu blockieren, bindet man den alten Speicher einfach per SFTP ein. Die Nutzer können sofort auf die Daten zugreifen. Im Hintergrund lässt sich dann mit Tools wie rsync oder rclone ein schrittweiser, gesteuerter Umzug durchführen. Für den Endanwender ist der Übergang nahtlos, die Daten sind von Beginn an verfügbar.

Nicht zuletzt spielt SFTP seine Stärken in hybriden Umgebungen aus. Stellen Sie sich ein Entwicklerteam vor, das auf einer leistungsstarken On-Premise-Maschine mit großen Binaries arbeitet. Diese Maschine ist über das firmeninterne Netzwerk per SSH erreichbar. Statt den Entwicklern einen separaten Zugang zu diesem System zu geben, bindet man deren Nextcloud-Benutzerkonten einfach per SFTP auf das Entwicklungsverzeichnis. Sie haben direkten Zugriff aus ihrer gewohnten Umgebung, und die Administratoren behalten die vollständige Kontrolle über die Berechtigungen auf Betriebssystemebene.

Sicherheitsbetrachtung: Eine Frage der Schlüssel und Berechtigungen

Jede zusätzliche Integration ist ein potenzieller Angriffsvektor. Bei SFTP liegt das Hauptaugenmerk auf der Verwaltung der SSH-Keys. Der private Schlüssel, der in Nextcloud hinterlegt ist, muss mit derselben Sorgfalt behandelt werden wie ein Master-Passwort. Kompromittiert ein Angreifer die Nextcloud-Datenbank, erlangt er damit automatisch Zugriff auf alle über diesen Key angebundenen SFTP-Speicher.

Eine bewährte Praxis ist deshalb, für jeden SFTP-Storage einen separaten SSH-Key-Pair zu generieren. So lässt sich der Schaden im Falle eines Falles eindämmen. Auf dem Zielsystem kann man die Zugriffe weiter einschränken, indem man in der authorized_keys-Datei des Nutzers Kommandos und Quell-IPs festnagelt. Mit einer Zeile wie from="10.0.1.100",command="/bin/true" vor dem Public Key wird der Zugriff auf die Nextcloud-Server-IP beschränkt und die Ausführung beliebiger Kommandos unterbunden. Der Nutzer nextcloud_storage darf dann nur noch Dateioperationen via SFTP durchführen – nichts anderes.

Interessant ist auch der Aspekt der Verschlüsselung. Nextcloud selbst kann Dateien ja bekanntlich mit Server-Side-Encryption verschlüsseln. Diese Verschlüsselung greift jedoch erst, nachdem die Datei den External Storage passiert hat. Liegen die Daten auf dem SFTP-Zielserver im Klartext vor, ist das ein potenzielles Risiko. Wer durchgängige Verschlüsselung benötigt, muss diese auf Ebene des Ziel-Dateisystems realisieren, etwa mit LUKS oder ecryptfs. Das ist aufwändiger, schließt aber die letzte Lücke.

Im Vergleich: SFTP vs. SMB vs. NFS

Warum sollte man sich überhaupt für SFTP entscheiden, wenn es doch etablierte Protokolle wie SMB für Windows-Umgebungen oder NFS für reine Linux-Netzwerke gibt? Die Antwort liegt in der Universalität und Firewall-Freundlichkeit von SFTP.

SMB ist ein komplexes Protokoll, das für die Kommunikation zwischen Windows-Clients und -Servern optimiert ist. In heterogenen Umgebungen, vor allem über Standorte hinweg, kann es zu Problemen mit Versionen, Authentifizierungsmodi und der Performance kommen. NFS wiederum ist extrem performant, setzt aber eine stabile, low-latency Netzwerkverbindung voraus und ist für den Einsatz über das Internet aufgrund seines fehlenden Sicherheitskonzepts ungeeignet.

SFTP hingegen nutzt einen einzigen, gut definierten Port (normalerweise 22/TCP). Das macht die Firewall-Konfiguration trivial. Es durchdingt problemlos NAT-Gateways und funktioniert auch bei wechselnden IP-Adressen stabil. Die Authentifizierung via Public-Key ist zudem sicherer und einfacher zu automatisieren als die Passwort-Authentifizierung von SMB oder die IP-basierte Vertrauensstellung von NFS. SFTP ist der Generalist unter den Speicherprotokollen – nicht in jeder Disziplin der Beste, aber in der Summe oft die ausgewogenste Wahl.

Skalierung und Betriebsaspekte

Was passiert, wenn hunderte Nextcloud-Nutzer gleichzeitig auf einen zentralen SFTP-Storage zugreifen? Der SSH-Server auf der Gegenseite muss diese Last natürlich verarbeiten können. Die Standardkonfiguration vieler Distributionen ist dafür nicht ausgelegt. Hier sind Anpassungen in der sshd_config nötig.

Die Parameter MaxStartups und MaxSessions sollten erhöht werden, um eine große Anzahl gleichzeitiger Verbindungen zu erlauben. Auch die Einrichtung von Skalierungsgruppen mit mehreren, identisch konfigurierten SFTP-Servern und einem Load-Balancer davor ist denkbar. Nextcloud selbst unterstützt diese Konstellation, indem es für jeden Mountpoint eine feste Serveradresse erwartet, die eben auch die VIP (Virtual IP) eines Load-Balancers sein kann.

Für den Betriebsalltag ist das Monitoring entscheidend. Nextcloud protokolliert Fehler beim Zugriff auf External Storages in seinen eigenen Logs. Darüber hinaus sollte man die Systemlast auf dem SFTP-Zielserver im Auge behalten, insbesondere die I/O-Wartezeiten und die Anzahl der SSH-Prozesse. Ein plötzlicher Anstieg kann auf Probleme im Netzwerk oder auf eine Fehlkonfiguration hinweisen.

Ein letzter, praktischer Tipp: Für Backups des Nextcloud-Systems selbst müssen Sie den Inhalt der SFTP-Storages separat sichern. Nextclouds eigene Backup-Tools wie occ sichern nur die Datenbank und die lokal, also nicht via External Storage, abgelegten Dateien. Die Daten auf den SFTP-Servern liegen außerhalb dieses Backups und benötigen eine eigene Sicherungsstrategie. Das ist eine jener Fallstricke, die man besser früh als spät erkennt.

Fazit: Ein Werkzeug mit Charakter

Nextclouds SFTP-External-Storage ist kein Allheilmittel. Es ist ein Werkzeug mit spezifischen Stärken und klar definierten Schwächen. Seine größte Stärke ist die Fähigkeit, bestehende, oft historisch gewachsene Speicherinfrastruktur ohne großen Migrationsaufwand in die moderne Nextcloud-Oberfläche zu integrieren. Es schafft eine Brücke zwischen der alten Welt der Fileserver und der neuen Welt der kollaborativen Cloud-Plattformen.

Für den Administrator bedeutet das eine enorme Flexibilität. Er kann Speicher dort belassen, wo er aus Performance-, Compliance- oder Kostengründen hingehört, und ihn dennoch für den Endnutzer einfach und einheitlich zugänglich machen. Die Abhängigkeit von einer stabilen Netzwerkverbindung und die potenziellen Performance-Einbußen sind der Preis für diese Flexibilität.

Am Ende geht es, wie so oft, um die richtige Anwendung. SFTP-External-Storage ist die ideale Lösung für weniger frequently accessed Daten, für Migrationsprojekte und für die Integration von Speichersystemen, die sich nicht ohne weiteres ersetzen lassen. Für hochfrequente, kollaborative Arbeitsbereiche mag ein lokaler Speicher die bessere Wahl sein. Doch als das sprichwörtliche Schweizer Taschenmesser im Werkzeugkasten des Nextcloud-Administrators ist es unschlagbar. Manchmal ist die beste Cloud keine neue Cloud, sondern die intelligente Vernetzung des bereits Vorhandenen.