Bug 18750 - Sperrung des Benutzerkontos nach X erfolglosen Anmeldeversuchen
Sperrung des Benutzerkontos nach X erfolglosen Anmeldeversuchen
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: PAM
UCS 2.3
Other Linux
: P5 enhancement (vote)
: UCS 2.4
Assigned To: Stefan Gohmann
Philipp Hahn
:
Depends on:
Blocks: 18776 18825 18835 18836 18837 18838 19100 19888
  Show dependency treegraph
 
Reported: 2010-06-23 16:13 CEST by Stefan Gohmann
Modified: 2018-11-27 14:12 CET (History)
0 users

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
Test-Skript (3.14 KB, text/plain)
2010-07-02 13:57 CEST, Philipp Hahn
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Gohmann univentionstaff 2010-06-23 16:13:30 CEST
Pro UCS-System sollte konfiguriert werden können, nach wie viel erfolglosen Anmeldeversuchen der Benutzer gesperrt wird.
Comment 1 Stefan Gohmann univentionstaff 2010-06-23 16:51:01 CEST
Vom Prinzip her erfüllt pam_tally die Anforderungen. Allerdings werden per Default die SSH-Anmeldeversuche nicht gespiechert, hier müsste ggf. die ssh-Konfiguration angepasst werden.
Comment 2 Stefan Gohmann univentionstaff 2010-06-24 13:49:12 CEST
Mit geänderten SSH-Einstellungen funktioniert der Zähler, sshd_config:
ChallengeResponseAuthentication yes
PasswordAuthentication no

Zusätzlich muss pam_tally in den PAM-Stack aufgenommen werden:
account     required       pam_tally.so
auth     required       pam_tally.so per_user

Damit wird der Counter erhöht und eine Anmeldung kann entsprechend verhindert werden.
Comment 3 Stefan Gohmann univentionstaff 2010-06-24 14:12:08 CEST
Das Zurücksetzen eines Accounts kann im Moment nur per faillog -r <user> erfolgen. Hier wäre eine Abbildung im LDAP sinnvoll.

- ein Gesperrt-Falg für shadowAccounts

- im UDM wird das Attribut gesperrt dafür verwendet

- dieses Flag muss von den DCs und Memberserver gesetzt werden können

- Zurücksetzen erfolgt per Listener

- Das Sperren erfolgt per Listener

- root sollte per Default ausgenommen werden, das sollte per UCR anpassbar sein, besser ist es, wenn der root-Login allgemein nicht erlaubt ist

Fraglich ist, wie das Attribut im UDM gesetzt wird? Direkt aus dem PAM Stack oder per Cron oder per inotify.
Comment 4 Stefan Gohmann univentionstaff 2010-06-25 06:50:36 CEST
(In reply to comment #3)
> - ein Gesperrt-Falg für shadowAccounts

Eine Alternative wäre locked und disabled zusammenzuführen. Ein shadowAccount kann über das ! im Passwort-Hash gelockt werden. Im UDM ist die Abbildung des ! im Passwort-Hash derzeit auf disabled.

Die Unterscheidung zwischen locked und disabled sind die Samba Flags L und D. Die könnten dann über UDM nicht direkt unterschieden werden.

Falls die Unterscheidung benötigt wird, so könnte ein Extended Attribute angezeigt werden, welches die Samba Account Flags abbildet.
Comment 5 Stefan Gohmann univentionstaff 2010-06-30 11:13:42 CEST
Das wurde jetzt entsprechend umgesetzt.

- Per Default deaktiviert

- Aktivierung per auth/faillog

- Limit per auth/faillog/limit einstellbar

- Per Default gilt das nicht für root (auth/faillog/root)

- Optional kann auth/faillog/unlock_time für ein automatisches Entsperren gesetzt werden

- Mit auth/faillog/lock_global kann veranlasst werden, das der Benutzer auch direkt im LDAP gesperrt wird, das ist per Default nicht aktiv

- Beim Entsperren im LDAP wird der lokale Counter zurückgesetzt
Comment 6 Philipp Hahn univentionstaff 2010-07-02 13:57:50 CEST
Created attachment 2483 [details]
Test-Skript

Die Variante "nur POSIX" funktioniert nicht; ein Login ist weiterhin möglich:

# udm users/user modify --dn uid=$NAME,cn=users,$ldap_base --set locked=windows ; ssh_login "$passwd"
ma46

# udm users/user modify --dn uid=$NAME,cn=users,$ldap_base --set locked=none ; ssh_login "$passwd"
ma46

# udm users/user modify --dn uid=$NAME,cn=users,$ldap_base --set locked=posix ; ssh_login "$passwd"
ma46

# udm users/user modify --dn uid=$NAME,cn=users,$ldap_base --set locked=all ; ssh_login "$passwd"
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).
Comment 7 Stefan Gohmann univentionstaff 2010-07-02 14:48:27 CEST
Problem ist folgendes, Heimdal wertet die Samba Account Flags aus, das bedeutet:

locked: all
pam_krb5 -> failed
pam_ldap -> failed

locked: windows
pam_krb5 -> failed
pam_ldap -> success

locked: posix/ldap
pam_krb5 -> success
pam_ldap -> failed

Ich würde jetzt vorschlagen einfach die Bezeichnung in Windows/Kerberos ändern.
Comment 8 Stefan Gohmann univentionstaff 2010-07-02 15:46:24 CEST
Ich habe den Text jetzt angepasst.
Comment 9 Philipp Hahn univentionstaff 2010-07-05 20:48:48 CEST
Die Implementierung wurde auf i386(2.3->2.4), i386(2.4) und amd64(2.3->2.4) getestet. Leider gibt es gewisse Querabhängigkeiten zwischen Shadow, Ldap, Windows und Kerberos, die nicht ganz einfach zu überblicken sind. Diese sollten noch dokumentiert werden (Siege Bug #18836 Comment 1).

ChangeLog-Eintrag ist vorhanden.
Comment 10 Stefan Gohmann univentionstaff 2010-08-31 13:22:14 CEST
UCS 2.4 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".