Am încercat să fac cele de mai sus cu acest tutorial:
https://www.unixguide.net/content/openldap-allow-users-change-their-password-unix-passwd-command
Așa că am creat acest ldif:
dn: olcDatabase={2}hdb,cn=config
changetype: modifică
adăugați: olcAccess
olcAccess: to attrs=userPassword de la sine scriere prin autentificare anonimă de dn.base="cn=ldapadm,dc=bbb,dc=local" scrie de *none
adăugați: olcAccess
olcAccess: to * by self write by dn.base="cn=ldapadm,dc=bbb,dc=local" scrie prin * read
A rulat ldapmodify, acum niciun utilizator nu se poate conecta la niciun client cu parola, când putea înainte de a rula modificarea de mai sus.
acum, încercând să vă autentificați, spune că permisiunea a fost refuzată după ce ați introdus parola corectă....ce am spart ?? (complet nou pentru openldap)
Și, deoarece ar putea fi relevant, acesta este modul în care mi-am conectat clienții la serverul meu openldap:
yum install -y openldap-clients nss-pam-ldapd
authconfig --enableldap --enableldapauth --ldapserver=192.168.1.10 --ldapbasedn="dc=bbb,dc=local" --enablemkhomedir --update
Din cutie, dacă tastesc passwd pe un utilizator ldap... rezultatul se întâmplă:
[ldapuser@sdss5-db ~]$ passwd
Schimbarea parolei pentru utilizatorul ldapuser.
(actuală) Parolă LDAP:
Parolă Nouă:
Reintroduceți parola nouă:
Schimbarea parolei a eșuat: acces insuficient
passwd: Eroare de manipulare a simbolului de autentificare
Deși, din nou, fișierul ldif de mai sus cu olcAccess mi-a spart ldap-ul nu a făcut nimic să funcționeze (a trebuit să revin la VM-ul înainte de a rula acea comandă... mai ales pentru că sunt nou la ldap și nu știu cum să elimin elementele etc. )
Iată toate fișierele mele cn=config:
olcDatabase={-1}frontend.ldif
# FIȘIER GENERAT AUTOMAT - NU EDIȚI!! Utilizați ldapmodify.
# CRC32 daf543d1
dn: olcDatabase={-1}frontend
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
structuralObjectClass: olcDatabaseConfig
entryUUID: 1244881e-5cf7-103b-94a5-5f5943b4315f
creatorsName: cn=config
createTimestamp: 20210608224613Z
intrareCSN: 20210608224613.408737Z#000000#000#000000
modificatoriNume: cn=config
modifică ștampila: 20210608224613Z
olcDatabase={0}config.ldif
# FIȘIER GENERAT AUTOMAT - NU EDIȚI!! Utilizați ldapmodify.
# CRC32 54d58ed2
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" gestionați de * niciunul
structuralObjectClass: olcDatabaseConfig
entryUUID: 12448a9e-5cf7-103b-94a6-5f5943b4315f
creatorsName: cn=config
createTimestamp: 20210608224613Z
intrareCSN: 20210608224613.408801Z#000000#000#000000
modificatoriNume: cn=config
modifică ștampila: 20210608224613Z
olcDatabase={1}monitor.ldif
# FIȘIER GENERAT AUTOMAT - NU EDIȚI!! Utilizați ldapmodify.
# CRC32 3165478b
dn: olcDatabase={1}monitorizează
objectClass: olcDatabaseConfig
olcDatabase: {1}monitorizează
structuralObjectClass: olcDatabaseConfig
intrareUUID: 12448d32-5cf7-103b-94a7-5f5943b4315f
creatorsName: cn=config
createTimestamp: 20210608224613Z
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al, cn=auth" citit de dn.base="cn=ldapadm,dc=bbb,dc=local" citit de * niciunul
intrareCSN: 20210608225001.645649Z#000000#000#000000
modificatoriNume: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifică ștampila: 20210608225001Z
olcDatabase={2}hdb.ldif
# FIȘIER GENERAT AUTOMAT - NU EDIȚI!! Utilizați ldapmodify.
# CRC32 89413e34
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,nume,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1244907a-5cf7-103b-94a8-5f5943b4315f
creatorsName: cn=config
createTimestamp: 20210608224613Z
olcSuffix: dc=bbb,dc=local
olcRootDN: cn=ldapadm,dc=bbb,dc=local
olcRootPW:: e1NTSEF9QTB0dS94UjR6cy83ZEMvQUxPL21uS2RLaXZUeFNXVEg=
olcAccess: {0}to attrs=userParola de sine stătătoare prin autentificare anonimă de către dn.ba
se="cn=ldapadm,dc=bbb,dc=local" scrie prin * niciunul
intrareCSN: 20210702202550.687485Z#000000#000#000000
modificatoriNume: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifică ștampila: 20210702202550Z
Se pare că nu scrie a doua parte a:
adăugați: olcAccess
olcAccess: to * by self write by dn.base="cn=ldapadm,dc=unixguide,dc=net" write by * read
La olcDatabase={2}hdb.ldif , după exemplul pe care îl are olcAccess: {1}pentru a * de sine stătător de către dn.base="cn=ldapadm,dc=unixguide,dc=net" scrie prin * de citit
Bănuiesc că acesta este ceea ce nu funcționează și anulează capacitatea de a te autentifica după ce rulez comanda. Nu sunt sigur de ce nu apare, deși nu primesc erori când rulez comanda de modificare cu ldif-ul meu postat mai sus...
Rezultatul modificării ldap este următorul:
[root@openldapserver ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f passwordaccess.ldif
Autentificarea SASL/EXTERNĂ a început
Nume utilizator SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modificarea intrării „olcDatabase={2}hdb,cn=config”