cum să căutați LDAP folosind Ldapsearch (cu exemple)

dacă lucrați într-o companie medie spre mare, probabil interacționați zilnic cu LDAP.

fie că este vorba de un controler de domeniu Windows sau de un server Linux OpenLDAP, protocolul LDAP este foarte util pentru centralizarea autentificării.cu toate acestea, pe măsură ce directorul LDAP crește, s-ar putea să vă pierdeți în toate intrările pe care trebuie să le gestionați.din fericire ,există o comandă care vă va ajuta să căutați intrări într-un arbore de directoare LDAP : ldapsearch.

în acest tutorial, vom vedea cum puteți căuta cu ușurință LDAP folosind ldapsearch.

de asemenea, vom examina opțiunile furnizate de comandă pentru a efectua căutări avansate LDAP.

cuprins

căutați LDAP folosind ldapsearch

cel mai simplu mod de a căuta LDAP este să utilizați ldapsearch cu opțiunea „-x” pentru autentificare simplă și să specificați baza de căutare cu „-b”.

dacă nu executați căutarea direct pe serverul LDAP, va trebui să specificați gazda cu opțiunea „-H”.

$ ldapsearch -x -b <search_base> -H <ldap_host>

ca exemplu, să presupunem că aveți un server OpenLDAP instalat și care rulează pe gazda 192.168.178.29 a rețelei dvs.

dacă serverul dvs. acceptă autentificarea anonimă, veți putea efectua o interogare de căutare LDAP fără a vă lega de contul de administrator.

$ ldapsearch -x -b "dc=devconnected,dc=com" -H ldap://192.168.178.29
căutare LDAP interogare de bază

după cum puteți vedea, dacă nu specificați niciun filtru, clientul LDAP va presupune că doriți să rulați o căutare pe toate clasele de obiecte din arborele de directoare.

în consecință, vi se vor prezenta o mulțime de informații. Dacă doriți să restricționați informațiile prezentate, vom explica filtrele LDAP în capitolul următor.

căutare LDAP cu cont de administrator

În unele cazuri, poate doriți să rulați interogări LDAP ca cont de administrator pentru a vă prezenta informații suplimentare.

pentru a realiza acest lucru, va trebui să faceți o solicitare de legare utilizând contul de administrator al arborelui LDAP.

pentru a căuta LDAP folosind contul de administrator, trebuie să executați interogarea „ldapsearch” cu opțiunea „-D” pentru legarea DN și „-W” pentru a vi se solicita parola.

$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W

de exemplu, să presupunem că contul dvs. de administrator are următorul nume distins : „cn=admin,dc=devconnected,dc=com”.

pentru a efectua o căutare LDAP ca acest cont, va trebui să executați următoarea interogare

$ ldapsearch -x -b "dc=devconnected,dc=com" -H ldap://192.168.178.29 -D "cn=admin,dc=devconnected,dc=com" -W 

căutare LDAP folosind contul de administrator

când executați o căutare LDAP ca cont de administrator, este posibil să fiți expus parolelor criptate de utilizator, deci asigurați-vă că executați interogarea în mod privat.

rularea căutărilor LDAP cu filtre

rularea unei interogări de căutare LDAP fără filtre este probabil o pierdere de timp și resurse.

de cele mai multe ori, doriți să rulați o interogare de căutare LDAP pentru a găsi obiecte specifice în arborele de directoare LDAP.

pentru a căuta o intrare LDAP cu filtre, puteți adăuga filtrul la sfârșitul comenzii ldapsearch : în stânga specificați tipul obiectului și în dreapta valoarea obiectului.

opțional, puteți specifica atributele care trebuie returnate din obiect (numele de utilizator, parola de utilizator etc.)

$ ldapsearch <previous_options> "(object_type)=(object_value)" <optional_attributes>

găsirea tuturor obiectelor din arborele de directoare

pentru a returna toate obiectele disponibile în arborele LDAP, puteți adăuga filtrul „objectclass” și un caracter wildcard „*” pentru a specifica că doriți să returnați toate obiectele.

$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=*"

când executați această interogare, vi se vor prezenta toate obiectele și toate atributele disponibile în arbore.

găsirea conturilor de utilizator folosind ldapsearch

de exemplu, să presupunem că doriți să găsiți toate conturile de utilizator din arborele de directoare LDAP.

în mod implicit, conturile de utilizator vor avea cel mai probabil clasa de obiecte structurale „cont”, care poate fi utilizată pentru a restrânge toate conturile de utilizator.

$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account"

în mod implicit, interogarea va returna toate atributele disponibile pentru clasa de obiecte dată.

găsiți toți utilizatorii din ldap folosind ldapsearch

după cum se specifică în secțiunea anterioară, puteți adăuga atribute opționale la interogare dacă doriți să restrângeți căutarea.

de exemplu, dacă sunteți interesat doar de CN utilizator, UID, și directorul de acasă, ar rula următoarea căutare LDAP

$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account" cn uid homeDirectory
specificarea atribute ldap în ldapsearch

minunat, ați efectuat cu succes o căutare LDAP folosind filtre și selectoare de atribute!

și operatorul care utilizează ldapsearch

pentru a avea mai multe filtre separate de „și” operatori, trebuie să anexați toate condițiile între paranteze și să aveți un caracter „&” scris la începutul interogării.

$ ldapsearch <previous_options> "(&(<condition_1>)(<condition_2>)...)"

de exemplu, să presupunem că doriți să găsiți toate intrările au un „objectclass”, care este egal cu „cont” și un „uid”, care este egal cu „john”, ar rula următoarea interogare

$ ldapsearch <previous_options> "(&(objectclass=account)(uid=john))"
și operator LDAP interogare de căutare

sau operator folosind ldapsearch

pentru a avea mai multe filtre separate de „sau” operatori, trebuie să anexați toate condițiile între paranteze și să aveți un caracter „|” scris la începutul interogării.

$ ldapsearch <previous_options> "(|(<condition_1>)(<condition_2>)...)"

de exemplu, dacă doriți să găsiți toate intrările care au o clasă obiect de tip „cont” sau sau de tip „organizationalRole”, ar rula următoarea interogare

$ ldapsearch <previous_options> "(|(objectclass=account)(objectclass=organizationalRole))"

filtre de negare folosind Ldapsearch

În unele cazuri, doriți să se potrivească negativ unele dintre intrările arborele directorului LDAP.

pentru a avea un filtru de potrivire negativ, trebuie să anexați starea (e) cu un „!”caracter și au condiții separate prin anexarea paranteză.

$ ldapsearch <previous_options> "(!(<condition_1>)(<condition_2>)...)"

de exemplu, dacă doriți să potriviți toate intrările care nu au un atribut „CN” de valoare „john”, veți scrie următoarea interogare

$ ldapsearch <previous_options> "(!(cn=john))"

găsirea configurației serverului LDAP folosind ldapsearch

o utilizare avansată a comenzii ldapsearch este de a prelua configurația copac.

dacă sunteți familiarizat cu OpenLDAP, știți că există un obiect de configurare globală așezat în partea de sus a ierarhiei LDAP.

în unele cazuri, poate doriți să vedeți atributele configurației LDAP, pentru a modifica controlul accesului sau pentru a modifica parola de administrator rădăcină, de exemplu.

pentru a căuta configurația LDAP, utilizați comanda „ldapsearch” și specificați „CN=config” ca bază de căutare pentru arborele LDAP.

pentru a rula această căutare, trebuie să utilizați opțiunea „-Y” și să specificați „extern” ca mecanism de autentificare.

$ ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config 

Notă : Această comandă trebuie rulată direct pe server, nu de la unul dintre clienții LDAP.

căutarea obiectului de configurare ldap

în mod implicit, această comandă va returna o mulțime de rezultate pe măsură ce returnează backend-uri, scheme și module.

Dacă doriți să restricționați căutarea la configurațiile bazei de date, puteți specifica clasa de obiecte „olcDatabaseConfig” cu ldapsearch.

$ ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config "(objectclass=olcDatabaseConfig)"

utilizarea metacaracterelor în căutările LDAP

Un alt mod puternic de căutare printr-o listă de intrări LDAP este utilizarea caracterelor metacaractere, cum ar fi asteriscul („*”).

caracterul wildcard are aceeași funcție ca asteriscul pe care îl utilizați în regex : va fi folosit pentru a se potrivi cu orice atribut care începe sau se termină cu un subșir dat.

$ ldapsearch <previous_options> "(object_type)=*(object_value)"$ ldapsearch <previous_options> "(object_type)=(object_value)*"

de exemplu, să presupunem că doriți să găsiți toate intrările care au un atribut „uid” începând cu litera „j”.

$ ldapsearch <previous_options> "uid=jo*"
utilizarea metacaracterelor în interogările de căutare ldap

Ldapsearch Opțiuni avansate

în acest tutorial, ați învățat despre opțiunile de căutare ldapsearch de bază, dar există multe altele care ar putea fi interesate de dvs.

filtre de potrivire extensibile LDAP

filtrele de potrivire LDAP extensibile sunt utilizate pentru a supraîncărca operatorii existenți (de exemplu operatorul de egalitate) specificând tipul de comparație pe care doriți să îl efectuați.

supraalimentarea operatorilor implicite

pentru a supraîncărca un operator LDAP, trebuie să utilizați sintaxa”:=”.

$ ldapsearch <previous_options> "<object_type>:=<object_value>"

de exemplu, dacă doriți să căutați toate intrările au un „CN” care este egal cu „john”, ar rula următoarea comandă

$ ldapsearch <previous_options> "cn:=john"# Which is equivalent to$ ldapsearch <previous_options> "cn=john"

după cum probabil ați observat, rularea căutării pe „john” sau pe „JOHN” returnează același rezultat exact.

în consecință, poate doriți să constrângeți rezultatele la potrivirea exactă „john”, făcând căutarea sensibilă la majuscule.

folosind ldapsearch, puteți adăuga filtre suplimentare separate prin caractere”:”.

$ ldapsearch <previous_options> "<object_type>:<op1>:<op2>:=<object_value>"

de exemplu, pentru a avea o căutare sensibilă la majuscule și minuscule, executați următoarea comandă

$ ldapsearch <previous_options> "cn:caseExactMatch:=john"

dacă nu sunteți familiarizați cu filtrele de potrivire LDAP, iată o listă a tuturor operatorilor disponibili pentru dvs.

concluzie

în acest tutorial, ați învățat cum puteți căuta un arbore de directoare LDAP folosind comanda ldapsearch.

ați văzut elementele de bază ale căutării intrărilor și atributelor de bază, precum și construirea de filtre complexe de potrivire cu operatorii (și, sau și operatorii negativi).

de asemenea, ați învățat că este posibil să supraîncărcați operatorii existenți utilizând opțiuni de potrivire extensibile și specificând operatorul personalizat care va fi utilizat.

dacă sunteți interesat de administrarea avansată a sistemului Linux, avem o secțiune completă dedicată acestuia pe site, așa că asigurați-vă că o verificați!

ldap

Related Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *