Zählung der fehlgeschlagenen Logins

Zählung der fehlgeschlagenen Logins

von Martin Smaxwil -
Anzahl Antworten: 3
Nutzerbild von Besonders aktive Moodler

Tag zusammen.

Moodle hat bis v2.4 die Anzahl der Logins gezählt. in moodle/lib/moodlelib.php gab es die Funktion

function update_login_count()

die in der Session gespeichert hat, wie oft ein User sich versucht hat anzumelden. Wenn logincount größer

$max_logins = 10;

wurde, konnte der User gesperrt werden und eine Fehlermeldung (http://docs.moodle.org/24/en/error/moodle/errortoomanylogins) wurde angezeigt.

Wird seit MDL 2.5 irgendwie anders gemacht. Wer weiß, wie?

 

Hintergrund:
Wir authentifizieren via LDAP / Active Directory. Das AD sperrt User nach drei fehlgeschlagenen Logins für 60 Minuten, um z.B. Bruteforce-Attacken zu verhindern (oder zumindest auszubremsen). Damit das Verhalten von Moodle bei fehlerhaften Login-Versuchen mit dem des AD übereinstimmt, haben wir Moodle so modifiziert, dass $max_logins auf 3 gesetzt wurde und statt der Standard-Fehlermeldung so etwas wie "Nein, Ihr Benutzerkonto ist nicht kaputt. Aber Sie haben jetzt 60 Minuten Pause. Ansonsten wenden Sie sich an ..." angezeigt wurde.

Gruß,
Martin

Anzahl der Bewertungen:  -
Als Antwort auf Martin Smaxwil

Re: Zählung der fehlgeschlagenen Logins

von Torsten Händler -

schau mal in der lib/outputrenderers.php da gibts ne funktion login_info, da wird auch eine funktion count_login_failure aufgerufen, vielleicht kann dir das weiter helfen.

Als Antwort auf Martin Smaxwil

Re: Zählung der fehlgeschlagenen Logins

von Ralf Hilgenstock -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Deutsche Moodle Übersetzer Nutzerbild von Entwickler Nutzerbild von Moodle Partner Nutzerbild von Translators

Unter Website-Rechte  kann nun ähnliches festgelegt werden:

Wie viele fehlgeschlagene Loginversuche eines Nutzers innerhalb welches Zeitraums führen zu einer wie langen Sperre.

Anzahl der Bewertungen:  (1)
Als Antwort auf Ralf Hilgenstock

Re: Zählung der fehlgeschlagenen Logins

von Martin Smaxwil -
Nutzerbild von Besonders aktive Moodler

Hallo nochmal.

Ja, die Einstellungen zu 'lockoutthreshold', 'lockoutwindow' und 'lockoutduration' habe ich auch schon gefunden. Toll, zwischen MDL 1.8 und 2.3 haben wir das selber gebaut lächelnd

Da ein dreimaliger fehlerhafter Loginversuch allerdings zur Sperrung des Active-Directory-Kontos führt, müsste man das Verhalten von Moodle mit dem Verhalten des AD "synchronisieren" - also wenn (lockoutthreshold) drei fehlerhafte Versuche in (lockoutwindow) 30 Minuten, dann (lockoutduration) 60 Minuten Sperre.

Aber:

  1. Der User bekommt (im Browser) keine Rückmeldung, dass sein Konto gesperrt ist, oder? Zumindest in unserer v2.6 nicht. Das ist für den User *wenig* transparent...
  2. Die automatische Mail, die im Falle einer Sperre generiert wird und den Link zum sofortigen Entsperren beinhaltet, ist in der Standard-Form nicht brauchbar.
    • Denn man kann damit das Moodle-Konto entsperren, nicht aber das AD-Konto (Das Moodle-Konto ist ja quasi nur eine abgespeckte Kopie des AD-Kontos).
    • Man könnte eventuell Infos zur Sperre und zu Entsperr-Möglichkeiten über diese Mail verteilen, allerdings hängen die Mail-Postfächer, die in den Moodle-Konten benutzt werden, ebenfalls an der AD-Authentifizierung - d.h. die Mail kann gar nicht empfangen werden.

 

Mögliche Lösungsansätze:

Zu 1: (Vermutlich?) ist die Funktion

function login_attempt_failed()

in der Datei lib/authlib.php für das Zählen der Loginversuche nach Maßgabe von 'lockoutthreshold' verantwortlich und führt in Verbindung mit

function login_lock_account()

zur Sperre des Moodle-Benutzerkontos führt. Da müsste man die Rückmeldung an den User aufhängen. Also dass nach dem dritten Fehlversuch eine Seite angezeigt wird, auf der steht: "Ihr AD-Konto ist für 60 Minuten gesperrt. Bitte warten." oder so.

 

Zu 2: Die Auto-Mail wird ebenfalls in der Funktion

function login_lock_account()

generiert. Die müsste dann unterdrückt werden.

 

Nehme gerne weitere Anregungen entgegen lächelnd

Gruß,

Martin