Serverul de LDAP are două tipuri de baze de date. O bază de date internă, pentru configuare, și o bază de date cu informații LDAP. Baza de date internă permite serverului de LDAP configurarea acestuia tot prin comenzi LDAP; se asigură astfel o interfață unificată și, mai mult, posibilitatea de a realiza configurații fără a fi nevoie de repornirea serverului.
Pentru a urmări și configura întreaga bază de date de internă a serverului rulăm, pe stația de tip server, comanda
root@ldap-server:~# ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" [...]
Sunt afișate foarte multe informații, practic toată baza de date internă a serverului LDAP. Dacă vrem să afișăm doar informațiile ce țin de configurarea informațiilor, vom investiga intrarea olcDatabase={1}hdb,cn=config:
root@ldap-server:~# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}hdb,cn=config" SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: olcDatabase={1}hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=labs,dc=cs,dc=pub,dc=ro [...]
Dacă vrem să afișăm informații legate strict de configurarea serverului LDAP (număr de thread-uri folosite, nivel de jurnalizare, certificat) vom investiga doar baza intrării cn=config:
root@ldap-server:~# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=config" -s base SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: cn=config objectClass: olcGlobal cn: config olcArgsFile: /var/run/slapd/slapd.args olcLogLevel: none olcPidFile: /var/run/slapd/slapd.pid olcTLSCACertificateFile: /etc/ssl/certs/cacert.org_root.pem olcTLSCertificateFile: /etc/ssl/certs/slapd-cert.pem olcTLSCertificateKeyFile: /etc/ssl/private/slapd-key.pem olcToolThreads: 1
Directivele de configurare în serverul LDAP sunt atribute în intrările cu dn-uri care se termină în cn=config. Atributele încep cu prefixul olc însemnând OpenLDAP Configuration.
Dorim să configurăm nivelul de jurnalizare al serverului LDAP. Directiva de configurare se numește olcLogLevel, așa cum este documentată aici. Observăm că area valoarea none. Vrem să-i schimbăm valoarea la stats.
Pentru aceasta construim un fișier LDIF:
dn: cn=config changetype: modify replace: olcLogLevel olcLogLevel: stats
apoi încărcăm fișierul în baza de date LDAP:
root@ldap-server:~# ldapadd -Y EXTERNAL -H ldapi:/// -f change-log-level.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=config"
și verificăm faptul că a fost încărcat corespunzător:
root@ldap-server:~# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=config" -s base olcLogLevel SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: cn=config olcLogLevel: stats
În exemplul de mai sus am creat un fișier LDIF care a modificat valoarea atributului olcLogLevel la valoarea stats. Putem observa informațiile de jurnalizare generate de serverul de LDAP în fișierul /var/log/syslog de pe stația server; eventual facem niște cereri de interogare LDAP (folosind ldapsearch) de pe stația client.
Exercițiu: Modificați nivelul de jurnalizare al serverului LDAP astfel încât să jurnalizeze și mesaje de tipul stats și mesaje de tipul stats2. E ceva simplu