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.

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.

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.

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.

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.