Dies ist eine alte Version des Dokuments!
Sambafreigaben in Univention/UCS vor Verschlüsselungstrojaner schützen
Setzt man Enterprise Linuxserver wie UCS in seiner Umgebung ein sollte man nicht von der Annahme ausgehen das man vor Verschlüsserlungtrojaner sicher ist. Denn hat man auf der Clientseite auch Windows am Laufen und haben diese Windowsrechner auch Zugriff auf die Freigaben, ist das Prinzip des Verschlüsselns vom Client zum Server komplett das selbe. Und Ruckzuck kommt man schon wieder in Teufels Küche.
Da wir auf der Serverseite ein Linuxsystem verwenden ist es mit dem Tool Fail2ban sehr einfach Cryptorojaner mittels Auditlogs auszusperren. Wie das ganze unter UCS funktioniert, erkläre ich dir diesem Beitrag.
Wie funktioniert das ganze?
Zum Einen wird Samba so konfiguriert, dass es alle Aktivitäten mitlogt. Genauer gesagt das Schreiben und Umbenennen von Dateien. In den Logs findet sich dann ein Eintrag wie dieser:
Mar 11 10:44:33 fileserver smbd_audit: IP=192.168.4.211|USER=joe|MACHINE=desktop-joe|VOLUME=public|pwrite|ok|zaehlerstaende - Kopie.locky
Im zweiten Step weisen wir Fail2Ban mit vordefinierten RegEx an, dass er sich diese Logs anschauen und nach Logeinträgen wie diese untersuchen soll. Wird ein Eintrag gefunden, so ist der Client-Computer sofort mittels IPTABLES-Regel vom Server zu entfernen und dem Administrator eine Email zuzuschicken. Eine vordefinierte Bantime ist groß genug gewählt, dass der Administrator genug Zeit zum reagieren hat.
Installation
Diese gestaltet sich recht einfach, und muss auf dem Fileserver passieren. Fail2ban ist nicht in den unterstüzten Quellen enthalten, daher müssen zuerst die unmaintained freigeschalten werden.
ucr set repository/online/unmaintained=yes apt update apt install fail2ban -y
Das war's auch schon. Fahren wir nun mit der Konfiguration fort.
Konfiguration Samba
Wir öffnen also die Datei /etc/samba/local.conf
und fügen folgenden Inhalt in die [GLOBAL] Sektion ein:
[GLOBAL] full_audit:failure = none full_audit:success = pwrite write rename create_file full_audit:prefix = IP=%I|USER=%u|MACHINE=%m|VOLUME=%S full_audit:facility = local7 full_audit:priority = NOTICE
Und Samba neu starten:
/etc/init.d/samba restart
Und für jede Freigabe die überwacht werden soll: vfs objects = full_audit. Dies würde für einen Standard Samba auf Ubuntu genügt. UCS hat für „vfs objects“ default bereits ein Modul geladen, deshalb sieht unser Eintrag in UCS etwas anders aus: vfs objects full_audit acl_xattr
Eingetragen wird das ganze in der UDM (Univention Directory Manager) unter „Domäne → Freigaben → Freigabe auswählen“, „Erweiterte Einstellungen → Erweiterte Samba-Einstellungen → Schlüssel: vfs objects, Wert: full_audit acl_xattr.
Fail2Ban-Konfiguration
Wir brauchen dazu zwei Teile: Zum einen die Datei in der steht auf was genau Fail2Ban achten soll und in der anderen Datei welche Regelungen für diesen Audit gelten. Zunächst erstellen wir die Datei /etc/fail2ban/filter.d/samba.conf
und füllen sie mit folgendem Inhalt:
[Definition] failregex = smbd.*\:\ IP=<HOST>\|.*\.locky$ smbd.*\:\ IP=<HOST>\|.*_Locky_recover_instructions\.txt$ ignoreregex =
Dies hier ist nur ein Beispiel. Eine Datei mit den Ende 2020 bekannten Definition habe ich hier angehängt.