Univention Bugzilla – Bug 18838
ucs-test: Sperrung des Benutzerkontos nach X erfolglosen Anmeldeversuchen
Last modified: 2023-03-25 06:50:48 CET
Dafür sollte es einen automatisierten Test geben. +++ This bug was initially created as a clone of Bug #18750 +++ Pro UCS-System sollte konfiguriert werden können, nach wie viel erfolglosen Anmeldeversuchen der Benutzer gesperrt wird.
Ein erster kleiner Test ist implementiert scripts-00_base/47faillog. Hier könnte noch deutlich mehr geprüft werden, u.a. root Login, admin-auth usw.
Created attachment 2478 [details] WIP Version 1. s/oldauth/old_auth/ 2. rm -f "$fake_passwd" "$passwd" 3. Quoting TODO: 4. Das Skript überprüft am Anfang "current_ucs_version_greater_equal 2.4", das reicht nicht: Bei einer Neuinstallation läuft das Skript durch, bei einem upgegradeded System sind die Einstellungen Password- und ChallendeResponseAuthentication genau invertiert, was zu einer unterschiedlichen Anzahl der Login-versuche führt: 5. Das Skript setzt am Ende die UCR-Variablen auf die "alten" Werte zurück. Waren diese vorher jedoch nicht gesetzt, so enthalten die Variablen danach die leere Zeichenkette. Das führt dazu, daß in "/etc/univention/templates/files/etc/pam.d/common-auth.d/30univention-pam_local" der Aufruf von baseConfig.get('auth/faillog/limit', '5') nur die leere Zeichenkette zurückliefert und deswegen in der /etc/pam.d/common-auth auth required pam_tally.so per_user per_user deny= steht, was in /var/log/auth.log angeprangert wird: pam_tally(sshd:auth): bad number supplied: deny=
(In reply to comment #2) > 1. s/oldauth/old_auth/ fixed > 2. rm -f "$fake_passwd" "$passwd" fixed > 3. Quoting > > TODO: > 4. Das Skript überprüft am Anfang "current_ucs_version_greater_equal 2.4", das > reicht nicht: Bei einer Neuinstallation läuft das Skript durch, bei einem > upgegradeded System sind die Einstellungen Password- und > ChallendeResponseAuthentication genau invertiert, was zu einer > unterschiedlichen Anzahl der Login-versuche führt: Die Variablen werden jetzt am Anfang passend gesetzt und am Ende wieder zurückgesetzt. > 5. Das Skript setzt am Ende die UCR-Variablen auf die "alten" Werte zurück. > Waren diese vorher jedoch nicht gesetzt, so enthalten die Variablen danach die > leere Zeichenkette. Das führt dazu, daß in > "/etc/univention/templates/files/etc/pam.d/common-auth.d/30univention-pam_local" > der Aufruf von > baseConfig.get('auth/faillog/limit', '5') > nur die leere Zeichenkette zurückliefert und deswegen in der > /etc/pam.d/common-auth > auth required pam_tally.so per_user per_user deny= > steht, was in /var/log/auth.log angeprangert wird: > pam_tally(sshd:auth): bad number supplied: deny= Sollte jetzt auch passen.
Weitere Problem waren das unglückliches Zusammenspiel von "univention-ssh -timeout X ssh -o NumberOfPasswordPrompts=Y". Das wurde inzwischen behoben. Bei den Tests ist auch noch ein Problem mit Umlauten im Benutzernamen entdeckt worden, was an Bug #18750 korrigiert wurde. Skript wurde auf 2.3->2.4_i386, 2.3->2.4_amd64 und 2.4_i386 getestet und läuft da jetzt durch. Das 2.4_amd64 ISO ist derzeit kaputt (Bug #18891), deswegen wurde das nicht explizit getestet.