Die Sicherheit von Paperless-ngx ist von entscheidender Bedeutung, da hier wichtige und sensible Daten enthalten sein können. Eine effektive Methode, um deine Dokumentenverwaltung vor potenziellen Brute-Force-Angriffen zu schützen, ist die Implementierung von Fail2ban. Fail2ban ist eine bewährte Software zur Intrusion Detection and Prevention.
Falls noch nicht geschehen, wird Fail2ban einfach mit folgendem Befehl installiert:
apt-get install fail2ban
Erstelle jetzt einen Filter für Paperless-ngx.
nano /etc/fail2ban/filter.d/paperless.conf
Trage hier den folgenden Inhalt ein. Diese Konfiguration definiert ein Fail2ban-Jail für das Monitoring von Log-Einträgen, die von der Paperless-Instanz erzeugt werden. Sie erfasst fehlgeschlagene Anmeldeversuche und Trusted-Domain-Fehler und verwendet ein Datumsmuster für die Zeitstempel in den Log-Einträgen.
[Definition] failregex = ^.*Login failed for user `.*` from IP ``. ignoreregex =
Erstelle jetzt eine neue neue Konfigurations-Datei für den Jail:
nano /etc/fail2ban/jail.d/paperless.local
In diese Datei kommt folgender Inhalt hinein. Die Zeitsperre wird in Sekunden angegeben, in meinem Beispiel wird der User nach 5 fehlgeschlagenen Anmeldeversuchen für 1 Stunde ausgesperrt. Je nach Einrichtung von Nextcloud musst du den Pfad zur Log-Datei anpassen.
enabled = true port = 80,443 filter = paperless logpath = /Pfad/zu/Paperless/data/log/paperless.log maxretry = 5 bantime = 3600 findtime = 600
Anschließend wird Fail2ban noch einmal neu gestartet:
/etc/init.d/fail2ban restart
Bei mehrfacher falschen Passworteingabe in Paperless-ngx wird die IP-Adresse des Nutzers für die angegebene Zeit gesperrt. Mit folgendem Befehl lässt sich der aktuelle Status des Jails auslesen:
fail2ban-client status paperless
Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.