Wenn du eine Nextcloud für einen Haushalt, einen Verein oder ein kleines Team betreibst, kennst du diese Situation vermutlich: Jemand legt eine Datei in einen geteilten Ordner, und erst später fällt auf, dass sie nicht das war, was sie vorgab zu sein. Die Blockierung über Dateiendungen in Nextcloud hilft ein wenig, aber eine Endung ist nur ein Etikett auf der Datei. Benenne ein Programm in photo.jpg um, und das Etikett lügt. Der einzige zuverlässige Weg, die Dateitypen in Nextcloud einzuschränken, ist, sich anzusehen, was die Datei tatsächlich enthält.
Genau das macht Erlaubte Dateitypen. Es ist ein Nextcloud-Plugin, mit dem du pro Gruppe festlegst, welche Arten von Dateien hochgeladen werden dürfen – beurteilt nach den Bytes der Datei (ihren Magic Numbers) und nach ihrem Namen zusammen. Beides muss erlaubt sein: Ein zu photo.jpg umbenanntes Programm bleibt ein Programm, und ein Bild namens setup.exe wird weiterhin abgelehnt. Dieses Tutorial führt dich durch die Einrichtung, die neun Arten, die Regeln pro Gruppe und für öffentliche Links und zeigt, wie du testest, bevor du etwas ausrollst.
Voraussetzungen
- Nextcloud 30 bis 34 mit PHP 8.1 oder neuer.
- Ein MediaLab Works-Konto mit aktivem Abonnement, eine Lifetime-Lizenz innerhalb ihres Update-Zeitraums oder die kostenlose 30-Tage-Testversion.
- Shell-Zugriff auf den Server (für die Installationsbefehle und den
occ-Testbefehl). - Sonst nichts: Die App braucht keine externen Werkzeuge.
Schritt 1: App installieren und aktivieren
Melde dich in deinem MediaLab Works-Konto an, öffne Licenses und lade das Archiv filetypes-x.y.z.tar.gz herunter. Entpacke es dann in deinen Apps-Ordner, sodass apps/filetypes/ entsteht, im Besitz des Web-Server-Benutzers:
cd /var/www/nextcloud/apps
sudo tar -xzf ~/filetypes-x.y.z.tar.gz
sudo chown -R www-data:www-data filetypes
Aktiviere die App über die Kommandozeile oder über die Seite Apps:
sudo -u www-data php occ app:enable filetypes
Schritt 2: Lizenz aktivieren
Öffne Administrationseinstellungen → Erlaubte Dateitypen → Lizenz, füge deinen Lizenzschlüssel ein und speichere. Die App kontaktiert den Lizenzserver, bindet den Schlüssel an diese Instanz und zeigt die Lizenz als Aktiv an. Die Lizenz wird einmal täglich geprüft; ohne Internet funktioniert die App noch 7 Tage nach der letzten erfolgreichen Prüfung und stoppt danach, bis sie wieder prüfen kann. Läuft die Lizenz ab, wird nichts gelöscht: Uploads werden einfach nicht mehr geprüft, und deine Regeln greifen wieder, sobald die Lizenz gültig ist.
Schritt 3: Die neun Arten kennenlernen
Bevor du Häkchen setzt, hilft es zu wissen, wie Dateien einsortiert werden. Die App gruppiert alles in neun Arten:
- Bilder
- Videos
- Audio
- Dokumente — reiner Text, Rich Text, Office-Dateien, PDF, E-Books, E-Mail und Ähnliches
- Archive
- Code und Webseiten — HTML, JavaScript, Skripte, SVG und Ähnliches
- Programme und Installer — Windows- und Linux-Executables, APK, deb/rpm/AppImage, JAR und Ähnliches
- Schriftarten
- Alles andere
Zwei davon verdienen Aufmerksamkeit. SVG-Dateien zählen als Code und Webseiten, nicht als Bilder, weil sie genau das sind. Und ein als .txt gespeichertes Skript bleibt ein Skript, es kommt also nicht als Dokument durch. Behalte beides im Hinterkopf, wenn du deine Regeln entwirfst.
Schritt 4: Regeln pro Gruppe festlegen
Öffne Administrationseinstellungen → Erlaubte Dateitypen. Die Seite zeigt eine Zeile pro Gruppe, ein Kästchen pro Art und eine Option Keine Einschränkung pro Zeile. Setze die Häkchen für das, was Mitglieder dieser Gruppe hochladen dürfen.
Ein paar Punkte, die man leicht übersieht:
- Regeln werden großzügig kombiniert. Wer in mehreren Gruppen ist, darf hochladen, was irgendeine seiner Gruppen darf. Wenn ein eingeschränkter Nutzer trotzdem alles hochladen kann, suche nach einer zweiten Gruppe mit Keine Einschränkung.
- Administratoren sind nicht besonders. Die Gruppe
adminbraucht ihre eigene Zeile (oder Keine Einschränkung), wenn du Admins nicht einschränken willst. - Alle anderen ist eine eigene Zeile für Personen, die in keiner Gruppe mit einer Regel sind. Standardmäßig ist sie uneingeschränkt, was das bisherige Verhalten für sie beibehält.
- Öffentliche Links ist eine eigene Zeile und deckt Uploads von Personen ohne Konto ab — Dateiablage und Freigaben mit aktiviertem Upload.
Schritt 5: Mit einem Preset starten
Du musst nicht jedes Kästchen von Hand setzen. Drei Presets geben dir einen sinnvollen Ausgangspunkt:
- nur Medien
- Medien + Dokumente
- alles außer Code und Programme
Wähle eines, passe die Zeilen für deine Gruppen an und klicke dann auf Speichern. Die Regeln gelten ab dem nächsten Upload.
Schritt 6: Wissen, wo die Prüfung läuft
Die Prüfung läuft auf der Speicherebene und ist damit nicht an eine bestimmte Oberfläche gebunden. Sie deckt die Weboberfläche, die Desktop- und Mobil-Clients, WebDAV, Uploads über öffentliche Links und Dateien ab, die von anderen Apps gespeichert werden (Text, Office und Ähnliches). Das ist in der Praxis wichtig: Eine Regel, die nur das Web-Upload-Formular schützt, ließe sich leicht mit einem Sync-Client oder einer curl-Anfrage über WebDAV umgehen. Hier folgt dieselbe Regel der Datei, egal wo sie ankommt.
Eine bewusste Ausnahme: Dateien, die von occ-Befehlen und Hintergrundjobs geschrieben werden, werden nicht geprüft, weil sie nicht von jemandem hochgeladen werden.
Schritt 7: Sehen, was Nutzer sehen
Wird eine Datei abgelehnt, wird sie sofort entfernt, und die Person erfährt im Client oder auf der Webseite, warum. Die Meldung nennt die Datei, die erkannte Art und was erlaubt ist, zum Beispiel:
„setup.exe“ wird nicht akzeptiert: Sie ist Programme und Installer, und du darfst nur Bilder, Videos, Dokumente hochladen.
So eine Meldung spart dir ein Support-Ticket. Der Nutzer weiß sofort, ob er die falsche Datei erwischt hat oder ob die Regel einfach strenger ist als angenommen.
Schritt 8: Testen, bevor du ausrollst
Es gibt zwei Wege, eine Datei zu prüfen, ohne deine aktiven Regeln anzufassen.
Testfeld auf der Einstellungsseite: Wähle eine Datei von deinem Computer und sieh, als was sie zählt (nach ihren Bytes und nach ihrem Namen) und welche Gruppen sie hochladen dürfen. Es werden nur die ersten 64 KB gesendet, und nichts wird gespeichert.
Vom Terminal aus, für eine Datei, die bereits auf dem Server liegt:
sudo -u www-data php occ filetypes:test <file> [name]
Das zeigt dir, als was die lokale Datei zählt und wer sie hochladen darf. Probiere es mit ein paar der Dateien aus, mit denen deine Nutzer tatsächlich arbeiten — ein Office-Export, ein gescanntes PDF, ein SVG-Logo —, bevor du die Regeln einer Gruppe verschärfst.
Tipps und Fehlerbehebung
Eine Datei wird abgelehnt, obwohl ihre Endung erlaubt ist. Ihre Bytes sagen etwas anderes. Ein als .txt gespeichertes Skript oder ein SVG wird als Code und Webseiten eingestuft. Prüfe es mit dem Testfeld oder occ filetypes:test.
Dateien, die schon in der Cloud waren, sind noch da. Das ist so gewollt. Die Regeln gelten für neue Uploads, Verschiebungen und Kopien; bestehende Dateien werden nicht angefasst. Wenn du einen sauberen Ausgangspunkt brauchst, sieh dir alte Inhalte separat an.
Ein Nutzer in einer eingeschränkten Gruppe kann trotzdem alles hochladen. Er ist auch in einer anderen Gruppe mit Keine Einschränkung, und die großzügigste Gruppe gewinnt. Prüfe zuerst die Gruppenmitgliedschaften, dann die Regeln.
Öffentliche Links sind noch offen. Denk daran, dass Öffentliche Links eine eigene Zeile hat. Strengere Gruppenregeln ändern nichts an der anonymen Dateiablage, bis du auch diese Zeile bearbeitest.
Datenschutz. Es werden nur die ersten 64 KB einer Datei gelesen, um zu erkennen, was sie ist, und die App speichert nichts über die Datei.
Fazit
Blockierung über Endungen ist ein Schild an der Tür; Regeln nach Inhalt sind das Schloss. Erlaubte Dateitypen gibt dir neun verständliche Arten, Regeln pro Gruppe, eine eigene Zeile für alle anderen und eine für öffentliche Links sowie eine Durchsetzung auf der Speicherebene über Web, Clients und WebDAV — mit Ablehnungsmeldungen, die sich selbst erklären. Starte mit einem Preset, teste ein paar echte Dateien mit dem Testfeld oder occ filetypes:test und verschärfe dann eine Gruppe nach der anderen.
Die vollständige Anleitung findest du im Benutzerhandbuch, die Versionshinweise im Changelog. Mehr Material zum Selbsthosten gibt es in unserer Wissensdatenbank, und wenn sich etwas unerwartet verhält, schau in die FAQ oder kontaktiere uns.