Seafile / Seahub absichern – Fail2Ban

Die erste Angriffsfläche auf deinen Seafile ist die Weboberfläche bzw. der Login. Um Attacken auf den Login abzusichern hat Seafile bereits einen guten Standardschutz integriert; Wenn zu oft falsche Anmeldedaten verwendet wurden, muss ein Captcha eingegeben werden. In der Weboberfläche als Systemadministrator eingeloggt kannst du diesen aktivieren bzw. früher anfordern.

Seafile absichern mit Fail2Ban – stephansnet.de

Ein Klick auf den Avatar oben rechts, dann auf System-Administration und auf Einstellungen nach der Zeile „LOGIN_ATTEMPT_LIMIT“ suchen. Der Standardwert liegt bei 5 (Versuchen), den Wert kannst du anpassen. In meiner Konfiguration habe ich den Wert bereits auf 3 reduziert.

Den Schutz können wir deutlich erhöhen mit Fail2Ban. Das ist schnell erledigt und funktioniert wie folgt.

Auf dem RaspberryPi* eingeloggt folgendes ausführen:

sudo apt-get install fail2ban -y
cd /etc/fail2ban
sudo nano jail.local

Folgenden Inhalt einfügen, speichern und schließen:

[seafile]
enabled  = true
port     = http, https
filter   = seafile-auth
logpath  = /home/seafile/logs/seahub.log
maxretry = 3

Im Bereich „logpath“ musst du den Pfad deiner Konfiguration anpassen. Ich gehe hier davon aus, dass du meinem Tutorial gefolgt bist oder das Image von mir heruntergeladen hast.

Im Anschluss wechselst du in einen weiteren Unterordner erstellst eine weitere Datei:

cd filter.d
sudo nano seafile-auth.conf

Folgenden Inhalt einfügen, speichern und schließen:

[INCLUDES]
before = common.conf

[Definition]
_daemon = seaf-server
failregex = Login attempt limit reached.*, ip: <HOST>
ignoreregex =

Nun startest du Fail2Ban einmal neu und überprüfst ob alles geklappt hat:

sudo systemctl restart fail2ban
sudo fail2ban-client status

Die Ausgabe sollte wie folgt aussehen:

Status
|- Number of jail:	2
`- Jail list:	seafile, sshd

Wenn in der Jail list „seafile“ auftaucht hat alles geklappt und fail2ban sichert nun deinen Login ab.

Konkret sieht die Absicherung so aus: Wenn eine IP-Adresse mehr als drei mal versucht sich erfolglos einzuloggen wird diese IP Adresse für eine gewisse Zeit gebannt.

Damit Seafile sein Log in die korrekte Zeitzone schreibt und damit für Fail2Ban auswertbar ist muss noch eine Zeile in die seahuh_settings.py hinzugefügt werden:

sudo su seafile
cd
nano conf/seahub_settings.py

TIME_ZONE = 'Europe/Berlin'

Speichern, schließen und wie immer bei Änderungen an den Seahub Settings muss Seahub neu gestartet werden, damit die Änderungen wirksam werden.

sudo systemctl restart seahub

Das war es dann auch schon. Ich freue mich auf deine Unterstützung: PayPal.Me

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.