In der Voreinstellung können UCS-Benutzer*innen ihr Kennwort beliebig oft falsch eingeben, ohne dass das System sie aussperrt. Um Brute-Force-Attacken zum Knacken der Kennwörter zu erschweren, können UCS-Administratoren eine automatische Sperre einrichten, die einen Account nach einer frei definierbaren Anzahl von Fehlversuchen am Zutritt hindert.
Univention Corporate Server bietet mehrere Methoden zum Authentifizieren und Autorisieren. In diesem Blogartikel zeige ich Ihnen, wie Sie über PAM-Stack, OpenLDAP und Samba jeweils fehlgeschlagene Anmeldeversuche im System protokollieren und wie Sie als Administrator die Anzahl der erfolglosen Logins einschränken.

Was ist eine Brute-Force-Attacke?

Es gibt mehrere Möglichkeiten, Passwörter zu „knacken“, unter anderem die so genannte Brute Force Method. „Brute Force“ – das heißt wörtlich „brutale Gewalt“. In diesem Zusammenhang bedeutet es, dass ein Computerprogramm jede mögliche Kombination aus Buchstaben, Zahlen und Sonderzeichen ausprobiert, bis das Passwort gefunden ist. Auch wenn das bei längeren Kennwörtern eine gewissen Zeit dauert, ist es so möglich, jedes Passwort herauszufinden.
Ausschlaggebend für den (schnellen) Erfolg ist neben der Rechnergeschwindigkeit die Länge des Passwortes. Darüber hinaus spielt die Kombination eine Rolle: Ein Kennwort, das nur aus Ziffern besteht (10 Zeichen), ist deutlich leichter herauszufinden, als eine Kombination aus Ziffern und Buchstaben (52). Kommen noch Sonderzeichen hinzu (32), dann dauern Brute-Force-Attacken wiederum länger. Sie führen aber letztendlich dennoch zu einer erfolgreichen Dechifferierung. Daher ist eine automatische Sperre nach einer gewissen Anzahl von Fehlversuchen eine gute Methode, um das zu verhindern.

Was können Sie dagegen tun? Fangen wir mit dem PAM-Stack (Pluggable Authentication Modules) in Univention Corporate Server an, die Sie für einen Rechner oder gleich für alle in der UCS-Umgebung konfigurieren können.

Fehlversuche für den PAM-Stack limitieren

Die PAM-Bibliotheken (Pluggable Authentication Modules) sind ein fester Bestandteil jeder Linux-Distribution und damit auch von UCS. Das automatische Sperren von Benutzern nach fehlgeschlagenen Anmeldungen im PAM-Stack können UCS-Admins über eine Variable in der Univention Configuration Registry (UCR) aktivieren. Die UCR-Variablen erreichen Sie über System / Univention Configuration Registry. Suchen Sie nach dem Eintrag auth/faillog und ändern Sie die Voreinstellung no auf yes. Anschließend können Sie eine Obergrenze definieren, also festlegen, wie oft Benutzer*innen ein falsches Kennwort eingeben dürfen, bevor das System sie aussperrt. Zuständig ist die Variable auth/faillog/limit. Tragen Sie hier eine Zahl für die maximal erlaubten Versuche ein; die Voreinstellung ist 5.

screenshot:UCR-Variable anpassen für Obergrenze in UCS

Beachten Sie, dass der Zähler für die falschen Eingaben jedes Mal wieder auf 0 zurückgesetzt wird, wenn Benutzer*innen ihr Passwort korrekt eingegeben haben.
In der Voreinstellung von UCS ist eine solche Sperre über den PAM-Stack unbegrenzt gültig. Sie können aber auch ein Ablaufintervall definieren, damit die Sperrung nach einer bestimmten Zeit wieder aufgehoben wird. Dazu geben Sie einen Zeitraum in Sekunden in der Variablen auth/faillog/unlock_time an. Tragen Sie hier eine 0 ein, dann wird die Sperre direkt wieder aufgehoben.
Der Superuser-Account ist von der automatischen Kontosperrung ausgenommen. Sie können das Konto des Verwalters aber ebenfalls in die Regel aufnehmen. Dazu ändern Sie in der UCR-Variablen auth/faillog/root die Voreinstellung no auf yes.
Da diese Sperre im PAM-Stack zunächst auf ein einziges System lokal begrenzt ist, könnten Anwender*innen nach der erreichten Anzahl von Fehlversuchen theoretisch auf einem weiteren Rechner in der UCS-Umgebung die Authentifizierung probieren und sich natürlich auch anmelden, wenn sie das korrekte Kennwort eintippen. Um das zu verhindern, können Administratoren über die UCR-Variable auth/faillog/lock_global die Sperre auf die gesamte UCS-Umgebung ausweiten.
Das hat zur Folge, dass die Sperre auch im Verzeichnisdienst OpenLDAP registriert wird. Aber Achtung: Die globale Sperre kann nur auf einem DC Master/Backup konfiguriert werden, denn andere Systemrollen verfügen nicht über die nötigen Berechtigungen im LDAP-Verzeichnis. Ein Listener-Modul sorgt dafür, dass die Einstellung auch auf den übrigen Systemen greift.

Kommen wir als Nächstes zu OpenLDAP, denn Sie können die automatische Kontosperrung auch für wiederholt fehlgeschlagene LDAP-Authentifizierungen aktivieren.

OpenLDAP: automatische Kontosperrung einrichten

Sie können eine solche Sperre auch für den Zugriff bei wiederholten LDAP-Authentifizierungs-Fehlern auf den einzelnen Domänencontroller aktivieren. Damit das gelingt, muss der Verzeichnisdienst das MDB-Backend verwenden. MDB (Memory-Mapped Database) ist seit UCS 4 als Standard gesetzt; ältere Systeme müssen aktualisiert und auf das MDB-Backend migriert werden. Unser Handbuch erklärt die dazu notwendigen Schritte.
Die automatische Kontosperrung muss auf jedem DC aktiviert werden. Dazu setzen Sie jeweils die UCR-Variablen ldap/ppolicy und ldap/ppolicy/enabled auf yes.

Screenshot: UCR-Variable anpassen; OpenLDAP für automatische Kontosperrung in UCS

Anschließend starten Sie den Verzeichnisdienst neu, damit die Änderungen greifen. Das können Sie entweder über die Management Console (System / Systemdienste) oder über den Befehl systemctl restart slapd.service erledigen, den Sie in ein Terminalfenster eingeben.
In der Voreinstellung gilt: Fünf wiederholte LDAP-Authentifizierungs-Fehler innerhalb von fünf Minuten führen zur Sperrung des Accounts. Die Anzahl und die Dauer können Sie verändern, wie im entsprechenden Abschnitt unseres Handbuchs beschrieben.

Samba und Active Directory: Accounts automatisch sperren

UCS mit Samba AD behandelt Anmeldungen auf Clients anders als Anmeldungen auf Servern. Das betrifft auch die Anmeldeversuche mit Kerberos z. B. von Windows-Clients, die Samba/Active Directory behandelt. Läuft in Ihrer Umgebung Samba/Active Directory, dann können Sie das Tool samba-tool einsetzen, um die aktuelle Konfiguration anzuzeigen und zu verändern. Sie verwenden das Tool mit Root-Rechten auf der Konsole – entweder lokal am UCS-Server oder über die entfernte Anmeldung per SSH. Um die derzeitige Konfiguration einzublenden, rufen Sie beispielsweise das Kommando samba-tool domain passwordsettings show auf.

Screenshot: Kommando samba tool domain passwordsettings

Mit verschiedenen Parametern und Optionen verändern Sie die Samba-Konfiguration:

  • samba-tool domain passwordsettings set --account-lockout-threshold=5
    Definiert die Anzahl der Versuche, die Benutzer*innen zur Anmeldung haben (hier: 5). Erst danach wird das Konto gesperrt.
  • samba-tool domain passwordsettings set --account-lockout-duration=3
    Legt die Anzahl der Minuten für die Sperrung fest, nachdem Anwender*innen zu oft ein falsches Passwort eingegeben haben.
  • samba-tool domain passwordsettings set --reset-account-lockout-after=5
    Konfiguriert die Anzahl der Minuten, nach der der Zähler zurückgesetzt wird.

Wird ein Konto nach der konfigurierten Dauer automatisch entsperrt, wird der Zähler nicht zurückgesetzt. So bleibt der Account gewissermaßen noch eine Weile unter Beobachtung. Nach dem Ende der Sperre und vor dem endgültigen Zurücksetzen des Zählers führt ein erneuter Fehlversuch direkt wieder zu einer Sperre des Accounts.

Die Sperre wieder aufheben

Als UCS-Administrator können Sie eine Kontosperrung auch manuell wieder aufheben. Für den PAM-Stack erledigen Sie das mit dem Befehl faillog. Der Schalter -r setzt den Zähler für fehlgeschlagene Anmeldeversuche zurück. Dahinter folgt der Parameter -u und der Benutzername des gesperrten Accounts: faillog -r -u USERNAME
Handelt es sich um eine globale Sperre im Verzeichnisdienst, also in der kompletten UCS-Umgebung, heben Administratoren die Sperre über die Univention Management Console in der Benutzerverwaltung wieder auf. Dazu wechseln Sie auf den Reiter Konto und setzen ein Häkchen in der Checkbox Aussperrung zurücksetzen. Diese manuelle Entsperrung gilt ebenfalls für Accounts, die in einer Active-Directory-Domäne gesperrt sind. Optional ist es im Feld darunter möglich, einen Zeitpunkt für das Entsperren zu definieren.

Screenshot: Sperrung aufheben in UCS

Wenn Sie Fragen oder Kommentare zu diesem Artikel und den Funktionen der Kontosperrung haben, können Sie diese gerne über einen Kommentar am Artikel hinterlassen.

UCS Core Edition jetzt kostenfrei einsetzen!
Zum Downloadbereich

Kommentare

  1. Nico Gulden

    Nico Gulden

    17.04.2023 um 12:08 Uhr

    Unter der englischen Fassung dieses Beitrags gibt es ein paar Kommentare, die Sie vor der Umsetzung berücksichtigen sollten, insbesondere im Zusammenhang mit dem automatischen Server Passwortwechsel: https://www.univention.com/blog-en/2020/06/setting-up-automatic-account-lockout-after-failed-login-attempts/

    Antworten

Schreiben Sie einen Kommentar

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