2012. szeptember 4., kedd

OpenLDAP jelszóházirend Ubuntu 12.04-en - második rész

A múltkor nekiálltunk a jelszóházirend megvalósításának. A szerveroldallal kábé meg is vagyunk. Most egy kis tesztelgetés következik.

A tesztelést megkönnyítendő, erősen javallom, hogy tölts le magadnak egy Apache Directory Studio-t Telepíteni nem kell, csak kicsomagolod a ~ alá, és futtatod. Azért érdekes, mert kiír egy csomó rejtett attribútumot is - ha beállítod (figyeld az egérmutatót):
Ezt kapcsold be az Apache Directory Studio-ban
Ezek a rejtett attribútumok tartalmaznak majd' mindent, amit a ppolicy overlay felírogat magának.

Akkor a tesztelés:
  • Jelszó hossza és az előző három jelszó: ennek már most mennie kell. Lépj be egy kliensre, ahol LDAP-hitelesítés van, és próbálj jelszót változtatni a passwd programmal. Ha túl rövid jelszót adsz meg, vagy az előző három jelszó valamelyikét, akkor nem fog menni a jelszóváltoztatás. Az utóbbin tudsz úgy csalni, ha törlöd a felhasználó pwdHistory jellemzőit. Ha tudnád. Na, majd még visszatérünk rá a jelszó beállításához tartozó időbélyeg módosításánál. (Ha olyan a beállításod, mint az enyém, azaz az smbkrb5pwd segítségével a jelszóváltoztatásokat propagálod a Samba és/vagy a Kerberos felé, akkor a helyzet nem ilyen egyszerű. Majd írok róla.)
  • Fiókzárolás: ennek is azonnal mennie kell. Rontsd el a jelszódat háromszor. Közben figyeld a pwdFailureTime attribútumok megjelenését a felhasználódnál. A harmadik rontás után a szerver a beállított ideig (nálam ugye 300 másodperc) azt hazudja majd a kliensnek, hogy rossz a jelszó, még akkor is, ha a jót írja be a felhasználó (tail -f /var/log/auth.log). Az LDAP-ban megjelenik a pwdAccountLockedTime attribútum. Ha a megadott idő lejártát nem akarod kivárni, akkor törlöd ezt az attribútumot. Ha nem adtál meg lejárós időt, akkor csak így tudod megszüntetni a zárolást. Megoldható az is, hogy ilyenkor ne rossz jelszót hazudjon a szerver, hanem igenis mondja meg, hogy zárolt a fiók. Ez biztonsági problémákat vet fel, keresgélj a neten. Ha zárolás alatt az admin új jelszót ad a felhasználónak, a zárolás megszűnik.
  • Lejárás miatti figyelmeztetés: na, ez már neccesebb. Ez ugyanis két részből áll: az egyik, hogy a figyelmeztetés elmenjen a kliensig, a másik, hogy a kliens vegye figyelembe. Kezdjük először a teszteset előállításával. Úgy állítottuk be, hogy 5 hétig él a jelszó, és 3 héttel a lejárat előtt kezd figyelmeztetgetni. Most már csak az kéne, hogy legyen egy 4 hete beállított jelszónk. De a pwdChangedTime nem állítható. Vagy de? Állítsuk be a felhasználó jelszavát:
    ldappasswd -D cn=admin,dc=itthon,dc=cucc -w titok -s ujjelszo uid=suser1,ou=People,dc=itthon,dc=cucc
    
    Hozzunk létre egy fájlt pwdchangedtime.ldif néven:
    dn: uid=suser1,ou=People,dc=itthon,dc=cucc
    changetype: modify
    replace: pwdChangedTime
    pwdChangedTime: 20120427192853Z
    
    Írjunk bele egy hónappal ezelőtti dátumot. Most jön a lényeg (vastaggal az igazi lényeg):
    ldapmodify -D cn=admin,dc=itthon,dc=cucc -w titok -e relax -f pwdchangedtime.ldif
    
    Így lett a jelszó egy hónapos :) Na és akkor adjuk ki ezt az utasítást:
    ldapwhoami -e ppolicy -x -D uid=suser1,ou=People,dc=itthon,dc=cucc -w ujjelszo
    
    Ott lesz benne egy "Password expires in 256244 seconds" üzenet - nyilván más idővel. Eddig oké. Ha most megnézzük a syslog-ot:
    tail -f /var/log/syslog|grep ppolicy_bind
    
    akkor ilyet találunk benne: ppolicy_bind: Setting warning for password expiry for uid= és ez jó. Ha kliensen jelentkezünk be, akkor ugyanez látszódik a syslog-ban, de a kliensen méla kuss van. Legközelebb írok róla.
  • Jelszóváltoztatás kikényszerítése: olyankor jó, amikor te állítottad be valaki jelszavát, és azt akarod, hogy az első dolga legyen megváltoztatni. Beállítani úgy tudod, hogy elhelyezel a felhasználó attribútumai között egy pwdReset attribútumot TRUE értékkel. A Directory Studio sírni fog, hogy ejnye, de az nem baj, attól még megcsináljuk. A fenti ldapwhoami parancsot kiadva ilyet látsz, hogy "Password must be changed". A klienseden persze ez sem látszik. Sebaj, majd legközelebb.

2 megjegyzés:

Bekes Ádám Hemues írta...

Szia !

Ha elvileg működik minden. Kipróbáltam azt is, ha rosszul adom meg, azt is, ha lockout van, azt is, ha letelik az idő, azt is, ha nem jó jelszóra próbálom meg elváltani, az is jó, hogy ha már korábbi jelszó volt megadva.
Viszont, HA hozzácsapom az ldap adatbázishoz, pl. az "aaa" -nevu userhoz, hogy pwdReset és TRUE értéket adok neki, ahogy te is leírtad nem történik semmi sem. Simán be tud jelentkezni és "éli" világát.
Én ezt SSH-s bejelentkezéssel próbáltam ki, de elvileg oda is működik a ppolicy. syslog meg nem mutat semmit, csak annyit, hogy simán és jól bejelentkezett.

Bekes Ádám Hemues írta...

Köszönöm, már megtaláltam a választ nálad, csak kicsit arrébb :-)

http://raerek.blogspot.hu/2012/09/openldap-jelszohazirend-ubuntu-1204-en_6.html