hoe LDAP te zoeken met Ldapsearch (met voorbeelden)

Als u in een middelgrote tot grote onderneming werkt, hebt u waarschijnlijk dagelijks interactie met LDAP.

of dit nu op een Windows domeincontroller is, of op een Linux OpenLDAP-server, het LDAP-protocol is erg handig om authenticatie te centraliseren.

echter, als uw LDAP directory groeit, kunt u verdwalen in alle items die u mogelijk moet beheren.

gelukkig is er een commando dat u zal helpen bij het zoeken naar items in een LDAP directory tree : ldapsearch.

in deze tutorial gaan we zien hoe u eenvoudig LDAP kunt zoeken met ldapsearch.

we gaan ook de opties bekijken die het commando biedt om geavanceerde LDAP-zoekopdrachten uit te voeren.

inhoudsopgave

LDAP zoeken met behulp van ldapsearch

De gemakkelijkste manier om LDAP te zoeken is door ldapsearch te gebruiken met de optie “-x” voor eenvoudige authenticatie en de zoekbasis op te geven met “-b”.

als u de zoekopdracht niet direct op de LDAP-server uitvoert, moet u de host opgeven met de optie “-H”.

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

als voorbeeld, stel dat je een OpenLDAP server hebt geïnstalleerd en draait op de 192.168.178.29 host van je netwerk.

als uw server anonieme verificatie accepteert, kunt u een LDAP-zoekopdracht uitvoeren zonder binding met het admin-account.

$ ldapsearch -x -b "dc=devconnected,dc=com" -H ldap://192.168.178.29
LDAP search basic query

zoals u kunt zien, als u geen filters opgeeft, zal de LDAP-client aannemen dat u wilt voer een zoekopdracht uit op alle objectklassen van uw mapstructuur.

als gevolg hiervan krijgt u veel informatie te zien. Als u de gepresenteerde informatie wilt beperken, gaan we LDAP-filters in het volgende hoofdstuk uitleggen.

LDAP doorzoeken met beheerdersaccount

in sommige gevallen kunt u LDAP-query ‘ s als beheerdersaccount uitvoeren om extra informatie aan u te tonen.

om dat te bereiken, moet u een bind-verzoek doen met behulp van het administrator-account van de LDAP-boom.

om LDAP te zoeken met behulp van het admin account, moet u de “ldapsearch” query uitvoeren met de “-D” optie voor de bind DN en de “-W” om naar het wachtwoord gevraagd te worden.

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

als voorbeeld, laten we zeggen dat uw administrator account de volgende distinguished name heeft:”cn=admin,dc=devconnected,dc=com”.

om een LDAP-zoekopdracht als dit account uit te voeren, moet u de volgende query uitvoeren

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

tijdens het uitvoeren een LDAP-zoekopdracht als administratoraccount kunt u worden blootgesteld aan door de gebruiker versleutelde wachtwoorden, dus zorg ervoor dat u uw query privé uitvoert.

LDAP-zoekopdrachten uitvoeren met Filters

het uitvoeren van een gewone LDAP-zoekopdracht zonder filters is waarschijnlijk een verspilling van tijd en middelen.

meestal wilt u een LDAP-zoekopdracht uitvoeren om specifieke objecten in uw LDAP-mappenstructuur te vinden.

om een LDAP-ingang met filters te zoeken, kunt u uw filter toevoegen aan het einde van het commando ldapsearch : links specificeert u het objecttype en rechts de objectwaarde.

Optioneel kunt u de attributen opgeven die van het object moeten worden geretourneerd (de gebruikersnaam, het gebruikerswachtwoord, enz.)

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

alle objecten in de mappenboom vinden

om alle objecten in uw LDAP-boom te retourneren, kunt u het filter” objectclass “en een jokerteken” * ” toevoegen om aan te geven dat u alle objecten wilt retourneren.

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

bij het uitvoeren van deze query worden alle objecten en attributen getoond die beschikbaar zijn in de boomstructuur.

gebruikersaccounts vinden met behulp van ldapsearch

bijvoorbeeld, laten we zeggen dat u alle gebruikersaccounts in de LDAP-mappenboom wilt vinden.

standaard hebben gebruikersaccounts waarschijnlijk de structurele objectklasse “account”, die gebruikt kan worden om alle gebruikersaccounts te beperken.

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

standaard retourneert de query alle attributen die beschikbaar zijn voor de opgegeven objectklasse.

Zoek alle gebruikers in ldap met behulp van ldapsearch

zoals aangegeven in de vorige sectie, kunt u optionele attributen toevoegen aan uw zoekopdracht als u uw zoekopdracht wilt verfijnen.

bijvoorbeeld, als je alleen geïnteresseerd zijn in de user-CN, UID, en home directory, voert u de volgende LDAP-zoekopdracht

$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account" cn uid homeDirectory
opgeven van ldap attributen in ldapsearch

Geweldig, u hebt succesvol een LDAP-zoekopdracht met behulp van filters en attribuut-selectors!

en Operator die ldapsearch

gebruikt om meerdere filters gescheiden te hebben door “en” operators, moet u alle voorwaarden tussen haakjes plaatsen en een “&” teken aan het begin van de zoekopdracht hebben.

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

bijvoorbeeld, laten we zeggen dat je wilt zoeken naar alle items hebben een “objectclass” die gelijk is aan “account” en een “uid” die gelijk is aan “john”, zou je de volgende query uitvoeren

$ ldapsearch <previous_options> "(&(objectclass=account)(uid=john))"

operator ldap-zoekopdracht

OF Operator met ldapsearch

om meerdere filters gescheiden door “OF” – operators je plaatst alle voorwaarden tussen haakjes en hebben een “|” teken geschreven aan het begin van de query.

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

bijvoorbeeld, als u alle items wilt vinden met een objectklasse van het type” account “of het type” organizationalRole”, zou u de volgende query

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

Negatiefilters uitvoeren met behulp van ldapsearch

In sommige gevallen wilt u negatief overeenkomen met sommige items in uw LDAP-mappenstructuur.

om een negatieve match filter te hebben, moet je je conditie(en) omsluiten met een “!”karakter en hebben Voorwaarden gescheiden door het omsluiten van haakjes.

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

bijvoorbeeld, als u wilt overeenkomen met alle items die geen” cn “attribuut van de waarde” john”hebben, dan zou u de volgende query schrijven

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

LDAP-serverconfiguratie vinden met behulp van ldapsearch

een geavanceerd gebruik van het ldapsearch commando is om de configuratie van uw LDAP-boom op te halen.

als u bekend bent met OpenLDAP, weet u dat er een globaal configuratieobject bovenaan uw LDAP-hiërarchie staat.

in sommige gevallen wilt u attributen van uw LDAP-configuratie zien, bijvoorbeeld om de toegangscontrole aan te passen of om het root-beheerderswachtwoord aan te passen.

om naar de LDAP-configuratie te zoeken, gebruikt u het commando “ldapsearch” en specificeert u “cn=config” als zoekbasis voor uw LDAP-boom.

om deze zoekopdracht uit te voeren, moet u de “-Y” optie gebruiken en “extern” opgeven als het authenticatiemechanisme.

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

Opmerking : Dit commando moet direct op de server worden uitgevoerd, niet vanaf een van uw LDAP-clients.

zoeken LDAP configuratie object

standaard zal dit commando veel resultaten opleveren als het backends, schema ‘ s en modules retourneert.

als u uw zoekopdracht wilt beperken tot databaseconfiguraties, kunt u de objectklasse “olcDatabaseConfig” opgeven met ldapsearch.

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

jokertekens gebruiken in LDAP-zoekopdrachten

een andere krachtige manier om door een lijst met LDAP-items te zoeken is het gebruik van jokertekens zoals het sterretje (“*”).

het jokerteken heeft dezelfde functie als het sterretje dat u gebruikt in regex : het zal worden gebruikt om elk attribuut te matchen dat begint of eindigt met een bepaalde substring.

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

als voorbeeld, laten we zeggen dat u alle items wilt vinden met een attribuut” uid “beginnend met de letter”j”.

$ ldapsearch <previous_options> "uid=jo*"
jokertekens gebruiken in LDAP-zoekopdrachten

Ldapsearch geavanceerde opties

In deze tutorial, je geleerd over de basis ldapsearch opties, maar er zijn vele anderen die geïnteresseerd zijn voor u.

LDAP Extensible Match Filters

Extensible LDAP match filters worden gebruikt om bestaande operators (bijvoorbeeld de equality operator) een boost te geven door het type vergelijking op te geven dat u wilt uitvoeren.

Supercharging standaard operators

om een LDAP-operator aan te vullen, moet u de syntaxis “:=” gebruiken.

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

bijvoorbeeld, als u wilt zoeken naar alle items hebben een” cn “die gelijk is aan” john,”dan zou u het volgende commando uitvoeren

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

zoals u waarschijnlijk hebt gemerkt, geeft het uitvoeren van de zoekopdracht op” john “of op” JOHN ” exact hetzelfde resultaat.

als gevolg hiervan kunt u de resultaten beperken tot de “john” exacte overeenkomst, waardoor de zoek hoofdletter gevoelig wordt.

met ldapsearch kunt u extra filters toevoegen, gescheiden door”: “- tekens.

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

bijvoorbeeld, om een zoekopdracht te hebben die hoofdlettergevoelig is, voer je het volgende commando uit

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

als je niet bekend bent met LDAP-zoekfilters, dan is hier een lijst van alle operators die voor je beschikbaar zijn.

conclusie

In deze tutorial hebt u geleerd hoe u een LDAP-mapstructuur kunt doorzoeken met behulp van het ldapsearch-Commando.

u hebt de basisprincipes gezien van het zoeken naar basisingangen en attributen en het bouwen van complexe overeenkomende filters met operators (en, or en negatieve operators).

u hebt ook geleerd dat het mogelijk is om bestaande operators extra te laden door uitbreidbare match-opties te gebruiken en de te gebruiken aangepaste operator op te geven.

als je geà nteresseerd bent in Advanced Linux System Administration, hebben we een complete sectie gewijd aan het op de website, dus zorg ervoor om het uit te checken!

ldap

Related Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *