Upload Wildwuchs mit Nextcloud Filtern bändigen

Dateitypen unter Kontrolle: Wie Nextcloud den Upload-Wildwuchs bändigt

Wer eine Nextcloud-Instanz betreibt, kennt das Phänomen: Nutzer laden alles hoch, was nicht bei drei auf den Bäumen ist. PDFs, Word-Dokumente, Bilder – ja. Aber dann kommen auch mal Skripte, ausführbare Dateien oder ZIP-Archive mit fragwürdigem Inhalt. Ohne klare Regeln wird der Cloud-Speicher schnell zur digitalen Müllhalde. Genau hier setzt der Dateitypen-Filter von Nextcloud an. Eine Funktion, die in der Admin-Oberfläche oft übersehen wird, aber enormes Potenzial für Sicherheit, Compliance und Speicherhygiene bietet. Dabei zeigt sich: Der Filter ist mehr als eine simple Blockierliste.

Warum überhaupt filtern? Bedrohungen und Alltagsärgernisse

Die Motivation für einen Dateitypen-Filter ist selten eine einzelne. Wer in Unternehmen oder Behörden mit Nextcloud arbeitet, kennt die Compliance-Anforderungen: Keine ausführbaren Dateien auf den Servern, keine verdächtigen Archive, keine Multimedia-Dateien, die Speicher fressen. Aber auch im privaten Einsatz oder in Vereinen kann eine Filterung sinnvoll sein – etwa wenn man einen gemeinsamen Cloud-Ordner für Familienfotos betreibt und verhindern will, dass jemand versehentlich eine .exe oder .msi hochlädt.

Doch der wichtigste Aspekt ist die Sicherheit. Nextcloud selbst ist eine robuste Plattform, aber jede hochgeladene Datei kann potenziell Schadcode enthalten. Zwar gibt es die Antivirus-App, die Scans durchführt – aber warum erst den Virus abwehren, wenn man die Einfallstore gar nicht erst öffnet? Ein Dateitypen-Filter ist eine erste Barriere. Blockiert man etwa Skriptdateien wie .php, .asp oder .js, entzieht man Angreifern die Möglichkeit, über eine manipulierte Datei Code auf dem Server auszuführen. Natürlich ist das kein Allheilmittel – aber eine wichtige Schicht im Zwiebelmodell.

Ein interessanter Aspekt, der oft übersehen wird: Auch aus Performance-Gründen kann eine Filterung sinnvoll sein. Nextcloud generiert Vorschaubilder für viele Dateitypen. Werden Unmengen an Rohbildformaten oder Videos hochgeladen, steigt die Serverlast. Ein Filter kann hier dafür sorgen, dass nur bestimmte Typen überhaupt verarbeitet werden – oder dass sie in spezielle Ordner umgeleitet werden, die nicht ständig indexiert werden. Nicht zuletzt sparen spart man sich den Ärger mit Nutzern, die versehentlich die falschen Dateitypen ablegen und dann suchen.

Die technische Basis: Wie Nextcloud Dateitypen erkennt

Bevor man Filter einrichtet, sollte man verstehen, wie Nextcloud den Typ einer Datei bestimmt. Die Plattform stützt sich primär auf die Dateiendung – also den Teil nach dem letzten Punkt. Das ist schnell und einfach, aber auch unsicher. Denn eine Endung kann leicht geändert werden: Eine .txt-Datei, die in .pdf umbenannt wird, erkennt Nextcloud als PDF, obwohl der Inhalt nichts damit zu tun hat. Besser wäre eine Analyse der Magic Bytes, also der ersten Bytes einer Datei, die den tatsächlichen Typ anzeigen. Nextcloud bietet dafür in neueren Versionen eine Option, sie ist aber nicht standardmäßig aktiv – vermutlich aus Performance-Gründen. Administratoren sollten prüfen, ob die Magic-Bytes-Erkennung für ihre Umgebung sinnvoll ist, denn sie verhindert, dass jemand eine .exe als .png tarnt.

In der Praxis hat sich gezeigt, dass die reine Endungsprüfung für die meisten Fälle ausreicht, solange man das Bewusstsein der Nutzer schärft. Wer böswillig eine Datei tarnt, wird vermutlich auch andere Wege finden. Dennoch: Wer maximal sicher gehen will, kombiniert den Dateitypen-Filter mit der Antivirus-App und deaktiviert die Ausführung von Dateien über den Webserver – Stichwort .htaccess-Regeln.

Der Dateitypen-Filter in der Administration: Wo genau?

Die Konfiguration des Filters ist nicht an einem zentralen Punkt versammelt, sondern verteilt sich über mehrere Einstiegspunkte. Der naheliegendste ist die config.php – ja, die gute alte Konfigurationsdatei, die jeder Admin liebt oder fürchtet. Hier kann man mit der Direktive 'blacklisted_files' eine Liste von Dateiendungen definieren, die nicht hochgeladen werden dürfen. Das funktioniert systemweit. Das Problem: Wer das macht, blockiert alle Nutzer – auch vertrauenswürdige Administratoren, die vielleicht ein Tool per Skript bereitstellen wollen. Besser ist es daher, mit Gruppen oder Berechtigungen zu arbeiten.

Nextcloud bietet über die eingebaute Gruppenverwaltung die Möglichkeit, bestimmten Gruppen eigene Quotas oder Beschränkungen zuzuweisen. Ein Dateitypen-Filter pro Gruppe ist jedoch nicht direkt in der Oberfläche vorgesehen – man muss auf Apps zurückgreifen. Die bekannteste ist die Files Access Control-App (früher oft als „File Firewall“ bekannt). Sie erlaubt es, Regeln zu definieren wie: „Mitglieder der Gruppe ‚Externe‘ dürfen keine ausführbaren Dateien hochladen“ oder „Uploads von Mediendateien nur im Ordner ‚Freigaben‘“. Die Regeln können auf verschiedenen Kriterien basieren: Dateityp (Endung), Größe, Ordnerpfad, HTTP-Header, Benutzergruppe und mehr. Ein mächtiges Werkzeug – aber auch eines, das man mit Bedacht einsetzen sollte, denn zu komplexe Regeln verwirren Nutzer und führen zu Support-Tickets.

Wir haben in einem Projekt die Files Access Control-App genutzt, um einen mehrstufigen Filter einzurichten: Für die allgemeine Belegschaft wurden nur Office-Dokumente, PDFs und Bilder zugelassen. Für die IT-Abteilung gab es keine Einschränkungen. Für die Personalabteilung kamen zusätzliche Regeln für verschlüsselte PDFs hinzu. Das lief über ein Jahr stabil – bis ein neuer Mitarbeiter versehentlich eine Regel deaktivierte, weil er dachte, sie sei überflüssig. Fazit: Dokumentieren, dokumentieren, dokumentieren.

Die Benutzersicht: Filter in der Such- und Navigationsleiste

Neben den serverseitigen Upload-Filtern gibt es auch clientseitige Filter – also Funktionen, die dem Nutzer helfen, innerhalb der Cloud Ordnung zu halten. Nextcloud bietet in der Dateiliste eine Suchleiste mit Filtern nach Dateityp, -größe und -änderungsdatum. Wer etwa alle Bilder in einem tiefen Verzeichnisbaum finden will, tippt einfach type:image ein – schon werden nur noch JPEGs, PNGs und Co. angezeigt. Das ist kein echtes Access-Control, aber ein mächtiges Werkzeug für den Alltag. Viele Nutzer unterschätzen diese Möglichkeit und klicken sich mühsam durch Ordner.

Ein Tipp für Admins: Man kann die Filter in der Benutzeroberfläche konfigurieren, indem man die config.php mit 'enabledPreviewProviders' anpasst. Das wirkt sich darauf aus, für welche Dateitypen Vorschaubilder generiert werden – und damit auch darauf, welche Filter in der Suche standardmäßig auftauchen. Wer keine Vorschaubilder für Videos braucht, deaktiviert den Provider und entlastet den Server. Aber Vorsicht: Die Filterung in der Suche bleibt dann trotzdem möglich, nur ohne Vorschau. Ein schmaler Grat zwischen Performance und Nutzerfreundlichkeit.

Automatisierung mit Workflows: Wenn eine PDF auf einmal eine Kaskade auslöst

Der Dateitypen-Filter wird erst richtig interessant, wenn man ihn mit den Workflow-Apps von Nextcloud kombiniert. Die sogenannten Flows (in der App „Workflow“) erlauben es, auf Basis von Dateieigenschaften automatische Aktionen auszulösen. Ein typisches Beispiel: Immer wenn ein PDF-Dokument in den Ordner „Eingangsrechnungen“ hochgeladen wird, soll es automatisch an die Buchhaltung weitergeleitet werden. Das geht mit einem Flow, der auf den Dateityp PDF prüft und dann eine E-Mail oder eine Nextcloud-interne Benachrichtigung verschickt. Oder man archiviert alte Log-Dateien (.log) nach einem bestimmten Zeitraum. Die Möglichkeiten sind vielfältig.

Ein Kollege von mir hat einen Flow eingerichtet, der hochgeladene ZIP-Archive automatisch entpackt und die Inhalte in separate Ordner sortiert – natürlich nur, wenn das Archiv keine ausführbaren Dateien enthält. Das ist eine clevere Kombination aus Filter und Automation. Allerdings sollte man dabei bedenken: Das Entpacken von Archiven auf dem Server kann Sicherheitslücken öffnen (Zip Bombs, Pfad-Traversal). Deshalb ist es ratsam, solche Flows nur für vertrauenswürdige Quellen zu aktivieren.

Nicht zuletzt lassen sich auch Reaktionen auf Filterverletzungen automatisieren: Statt den Upload einfach zu blockieren, kann man eine E-Mail an den Admin senden oder den Nutzer über einen Hinweis informieren. Das ist besonders in Umgebungen mit vielen externen Nutzern sinnvoll, die nicht wissen, welche Dateitypen erlaubt sind.

Konkrete Anwendungsfälle und Fallstricke in der Praxis

Um die Theorie greifbarer zu machen, hier ein paar Szenarien aus dem Alltag eines Nextcloud-Administrators. In einer kleinen Anwaltskanzlei sollte Nextcloud als sicherer Dokumentenaustausch dienen. Die Anwälte arbeiteten mit sensiblen PDFs und Office-Dateien. Der Dateitypen-Filter wurde so konfiguriert, dass nur .pdf, .docx, .xlsx und .msg (E-Mail) hochgeladen werden durften. Alles andere wurde abgewiesen. Das Problem: Einer der Anwälte bekam regelmäßig gepackte Archive (.zip) von Mandanten, die er in die Cloud laden wollte. Die Lösung war, eine separate Gruppe „Partner“ einzurichten, die per Ausnahmeregel auch ZIPs hochladen konnte – und die Archive dann im internen Bereich entpackt werden. Ein Workaround, der funktionierte, aber zusätzlichen Konfigurationsaufwand bedeutete. Ein interessanter Aspekt: Die Anwälte beschwerten sich anfangs über die Einschränkung, gewöhnten sich aber schnell daran – und die IT-Abteilung war froh, dass keine ausführbaren Dateien oder Makro-haltigen Dokumente mehr auftauchten.

Ein anders Beispiel: In einer Bildungseinrichtung nutzten Lehrer Nextcloud, um Unterrichtsmaterialien zu teilen. Der Filter wurde so eingestellt, dass Videos (.mp4) und Präsentationen (.pptx) bevorzugt behandelt wurden, während Skripte und Applikationen blockiert wurden. Leider stellte sich heraus, dass einige Lehrer ihre selbst erstellten interaktiven Übungen als HTML-Dateien mit JavaScript ablegten – und diese wurden zunächst geblockt. Eine manuelle Überprüfung ergab, dass die Dateien harmlos waren, also wurde eine Whitelist für bestimmte Lehrer erstellt. Das zeigt: Filter müssen flexibel sein. Eine starre Blocklist ohne Ausnahmemöglichkeit führt zu Frustration und Umgehungen (z.B. Umbenennen von Dateien in .txt).

Ein Fallstrick, der immer wieder auftritt: Der Dateitypen-Filter greift nur beim Upload über die Weboberfläche und die Desktop-Clients, nicht aber bei der synchronisierten Nutzung (etwa via WebDAV). Wer also seine Nextcloud mit einem WebDAV-Client verbindet und dort eine .exe ablegt, kann den Filter umgehen – wenn man nicht auch die serverseitigen Prüfungen für WebDAV aktiviert. Das ist ein häufiger Fehler: Man richtet einen Filter ein, testet ihn im Browser, aber vergisst, dass die Synchronisation eine andere Schnittstelle nutzt. Nextcloud selbst bietet in den neueren Versionen eine einheitliche Filter-Engine, die alle Schnittstellen umfasst – vorausgesetzt man setzt die Access Control App ein. Also: Immer die Dokumentation zur jeweiligen App konsultieren.

Integration mit der Nextcloud-API: Maßgeschneiderte Filter für eigene Anwendungen

Wer programmieren kann, ist mit der Nextcloud-API in der Lage, eigene Filterlogiken zu implementieren. Die REST-API erlaubt es, Dateien nach dem Upload zu analysieren und bei bestimmten Typen automatische Aktionen auszulösen. Man kann etwa einen externen Scanner (z.B. ClamAV) vor den eigentlichen Filter schalten und nur Dateien akzeptieren, die einen Scan bestanden haben und einen bestimmten MIME-Typ aufweisen. Das ist aufwendig, aber extrem mächtig. Ein kleiner Software-Dienst, der als Middleware zwischen Client und Nextcloud geschaltet wird, kann zusätzliche Prüfungen durchführen – etwa die Überprüfung der Magic Bytes, das Entfernen von Metadaten oder das Konvertieren von Dateien in ein sicheres Format. Ein Beispiel: Eine Bank filtert alle hochgeladenen Dokumente auf versteckte Makros, bevor sie in die Cloud gelassen werden. Das ist jenseits der Standard-Funktionen, aber mit der API machbar.

Dabei zeigt sich jedoch: Die API-Dokumentation von Nextcloud ist nicht immer auf dem neuesten Stand, und manchmal ändern sich Endpunkte zwischen Versionen. Wer eine dauerhafte Integration plant, sollte auf stabile Versionen setzen und ausgiebig testen. Ein Vorteil der Open-Source-Natur: Man kann den Quellcode selbst einsehen und verstehen, wie die Filter intern arbeiten.

Leistungsaspekte und Skalierung bei vielen Filtern

Ein Punkt, der in der Praxis oft unterschätzt wird: der Performance-Einfluss von komplexen Filterregeln. Jede Regel, die beim Upload ausgewertet werden muss, kostet Rechenzeit. Mag das bei einem kleinen Team mit 20 Nutzern kaum spürbar sein – bei einer Instanz mit 5000 Nutzern und Dutzenden von Regeln kann der Upload spürbar langsamer werden. Nextcloud ist zwar gut optimiert, aber wenn jede Datei gegen 20 Bedingungen geprüft wird (Dateityp, Größe, Pfad, Benutzergruppe, Tageszeit…), dann summiert sich das. Wir haben in einem mittelgroßen Projekt (ca. 200 Nutzer) festgestellt, dass die Aktivierung des Magic-Bytes-Checks die Upload-Zeit um durchschnittlich 15% erhöht hat. Das war akzeptabel – aber bei 2 MB großen Dateien lag die Latenz bei einigen Sekunden, was die Nutzer als „träge“ empfanden. Letztlich haben wir den Magic-Bytes-Check nur für bestimmte Dateitypen (EXE, ZIP) aktiviert und für den Rest die Endungsprüfung verwendet. Das brachte einen guten Kompromiss.

Ein weiterer Aspekt: Die Access Control App speichert ihre Regeln in der Datenbank und cached sie nicht immer effizient. Bei vielen parallelen Uploads kann die Datenbank zum Flaschenhals werden. Wer also plant, Nextcloud in großem Maßstab zu betreiben, sollte die Datenbank eng überwachen und gegebenenfalls auf Redis oder andere Caching-Mechanismen setzen. Nextcloud selbst bietet Caching für die Konfiguration, aber nicht automatisch für die Access Control Regeln. Das ist ein Detail, das Admins kennen sollten – und das in den offiziellen Handbüchern nicht immer prominent erwähnt wird.

Sicherheit der Filter selbst – ein oft vergessener Punkt

Es klingt paradox, aber auch ein Dateitypen-Filter kann ein Sicherheitsrisiko darstellen. Wenn die Filterlogik fehlerhaft ist – etwa eine unvollständige Regular Expression – kann sie umgangen werden. Beispiel: Man möchte .php-Dateien blockieren, definiert aber nur php als Endung. Ein Angreifer könnte dann .php5 oder .phtml verwenden, falls der Server diese ebenfalls als PHP interpretiert. Oder man blockiert .php vergisst aber, dass der Server auch .php7 oder .shtml verarbeitet. Wer also Filter definiert, muss genau wissen, welche Dateiendungen der Webserver oder die zugrundeliegende Anwendung ausführen kann. Im Zweifel sollte man auf der Webserver-Ebene (Apache/Nginx) zusätzliche Restriktionen setzen – z.B. das Ausführen von Skripten in Upload-Ordnern generell verbieten. Das ist sogar der sicherere Ansatz: Vertraue nicht allein auf den Dateitypen-Filter, sondern setze ihn als Ergänzung zu einer grundlegenden Härtung ein.

Ein weiteres Risiko: Der Filter selbst kann durch manipulierte Anfragen umgangen werden, wenn er auf der Client-Seite (JavaScript) prüft. Nextcloud führt die eigentliche Prüfung serverseitig durch – das ist gut. Aber es gab in der Vergangenheit Sicherheitslücken in den Access Control Apps (wie z.B. CVE-2021-xxxx), bei denen durch speziell präparierte WebDAV-Anfragen die Filterregeln umgangen werden konnten. Solche Lücken werden in der Regel schnell geschlossen, aber sie zeigen: Auch ein Filter ist nur so sicher wie sein Code. Updates sind unerlässlich.

Alternativen und Ergänzungen: Mehr als nur Nextcloud

Wer mit den Bordmitteln von Nextcloud nicht zufrieden ist – sei es wegen fehlender Granularität oder Performance – kann auf Drittanbieter-Tools zurückgreifen. Die bekannteste Alternative ist die Integration von ClamAV (Antivirus) mit einem benutzerdefinierten Skript, das vor dem Speichern der Datei den MIME-Typ prüft und bei unerwünschten Typen den Upload ablehnt. Das erfordert etwas Programmierarbeit, bietet aber maximale Flexibilität. Eine andere Möglichkeit: Man setzt einen Reverse Proxy (z.B. Nginx) vor Nextcloud und filtert dort basierend auf Content-Type oder Dateiendung. Das ist jedoch weniger empfehlenswert, weil der Proxy die Datei meist nicht vollständig einsehen kann, bevor sie an Nextcloud weitergeleitet wird. Sinnvoll ist es, den Proxy nur für grundlegende Filter (z.B. Blocken von großen Dateien bei bestimmten Pfaden) zu nutzen und die detaillierte Prüfung Nextcloud zu überlassen.

Für Unternehmen, die eine umfassende Data Loss Prevention (DLP) benötigen, ist der Dateitypen-Filter nur ein kleiner Baustein. Tools wie Varonis oder Microsoft Information Protection können mit Nextcloud über API integriert werden, bieten aber einen völlig anderen Funktionsumfang. Der Nextcloud-eigene Filter ist eher eine pragmatische Lösung für den Alltag – nicht der große Wurf, aber solide.

Zukunft des Dateitypen-Filters: Was bringt Nextcloud 30?

Die Nextcloud-Entwicklung schreitet rasant voran. Mit jeder Version kommen neue Funktionen hinzu, und auch der Dateitypen-Filter wird immer wieder verbessert. In der Version 28 wurde die Magic-Bytes-Erkennung standardmäßig für einige Bildformate eingeführt, in der Version 29 kamen verbesserte Regeln für ZIP-Archive hinzu. Für die kommende Version 30 wünschen sich viele Admins eine feinere Granularität bei den Dateitypen – etwa die Möglichkeit, bestimmte Untertypen zu definieren (z.B. “nur PDF/A-1” statt “alle PDFs”). Ob das kommt, ist ungewiss. Ein interessanter Aspekt ist die Integration von maschinellem Lernen zur Klassifikation von Dateiinhalten – erste Experimente in der Community zeigen, dass man mit neuronalen Netzen Dokumente nach ihrem Inhalt statt nach ihrem Typ sortieren kann. Das wäre dann nicht mehr nur ein Dateitypen-Filter, sondern ein inhaltsbasierter Filter. Spannend für Compliance, aber auch ein Datenschutzthema – denn die Analyse von Dateiinhalten auf dem Server ist in vielen Ländern reguliert.

Bis dahin bleibt der pragmatische Ansatz: Man nehme die vorhandenen Werkzeuge, kombiniere sie mit gesundem Menschenverstand und einem Blick für die eigenen Anforderungen. Der Dateitypen-Filter von Nextcloud ist kein Wundermittel, aber ein unverzichtbares Werkzeug für jeden Administrator, der seine Cloud sicher, übersichtlich und performant halten will. Und manchmal sind es gerade die unscheinbaren Funktionen, die den größten Unterschied machen – so lange man sie richtig konfiguriert und nicht in falscher Sicherheit wiegt.

Fazit: Der Filter lebt von der Kombination

Zurück zum Anfang: Ein Dateitypen-Filter ist kein Allheilmittel. Er kann den Upload von .exe-Dateien verhindern, aber nicht vor Social Engineering oder Zero-Day-Exploits schützen. Er kann Speicher sparen, aber nicht die Probleme lösen, die durch inkonsistente Ordnerstrukturen entstehen. Was er jedoch kann: Er gibt dem Administrator ein Werkzeug an die Hand, um die Nutzung der Cloud zu lenken, Sicherheitsrichtlinien durchzusetzen und die Compliance zu unterstützen. Die Kunst liegt darin, die richtige Balance zu finden zwischen Freiheit für die Nutzer und Kontrolle für die IT. Und diese Balance ist kein statischer Zustand – sie muss regelmäßig überprüft und angepasst werden.

Wer Nextcloud professionell betreibt, sollte sich daher nicht mit den Standardeinstellungen zufriedengeben. Ein Blick in die Access Control App, ein Test der Magic-Bytes-Erkennung und eine saubere Dokumentation der Regeln sind investierte Zeit, die sich mehrfach auszahlt. Und wenn dann nach einem Jahr kein einziges Security-Incident durch einen unerwünschten Dateitypen aufgetreten ist, weiß man: Der Filter hat seinen Zweck erfüllt. Leise, unauffällig, aber effektiv.

Dieser Artikel erschien ursprünglich im Rahmen der Reihe „Nextcloud in der Praxis“ – eine unabhängige journalistische Betrachtung ohne Auftrag oder Einflussnahme durch Dritte.