GNU/Linux >> Belajar Linux >  >> Linux

Cara Mencari LDAP menggunakan ldapsearch (Dengan Contoh)

Jika Anda bekerja di perusahaan menengah hingga besar, Anda mungkin berinteraksi setiap hari dengan LDAP.

Apakah ini di pengontrol domain Windows, atau di server OpenLDAP Linux , protokol LDAP sangat berguna untuk memusatkan otentikasi.

Namun, seiring bertambahnya direktori LDAP, Anda mungkin tersesat di semua entri yang mungkin harus Anda kelola.

Untungnya, ada perintah yang akan membantu Anda mencari entri di pohon direktori LDAP :ldapsearch .

Dalam tutorial ini, kita akan melihat bagaimana Anda dapat dengan mudah menelusuri LDAP menggunakan ldapsearch .

Kami juga akan meninjau opsi yang disediakan oleh perintah untuk melakukan penelusuran LDAP tingkat lanjut .

Telusuri LDAP menggunakan ldapsearch

Cara termudah untuk menelusuri LDAP adalah dengan menggunakan ldapsearch dengan opsi “-x” untuk autentikasi sederhana dan menentukan basis penelusuran dengan “-b”.

Jika Anda tidak menjalankan pencarian secara langsung di server LDAP, Anda harus menentukan host dengan opsi “-H”.

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

Sebagai contoh, katakanlah Anda memiliki server OpenLDAP yang terinstal dan berjalan di 192.168.178.29 host jaringan Anda.

Jika server Anda menerima autentikasi anonim, Anda akan dapat melakukan kueri penelusuran LDAP tanpa mengikat akun admin.

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

Seperti yang Anda lihat, jika Anda tidak menentukan filter apa pun, klien LDAP akan berasumsi bahwa Anda ingin menjalankan penelusuran di semua kelas objek pohon direktori Anda.

Akibatnya, Anda akan disajikan dengan banyak informasi. Jika Anda ingin membatasi informasi yang disajikan, kami akan menjelaskan filter LDAP di bab berikutnya.

Telusuri LDAP dengan akun admin

Dalam beberapa kasus, Anda mungkin ingin menjalankan kueri LDAP sebagai akun admin agar informasi tambahan disajikan kepada Anda.

Untuk mencapainya, Anda perlu membuat permintaan pengikatan menggunakan akun administrator pohon LDAP.

Untuk menelusuri LDAP menggunakan akun admin, Anda harus menjalankan kueri “ldapsearch” dengan opsi “-D” untuk DN pengikatan dan “-W” untuk dimintai sandi.

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

Sebagai contoh, katakanlah akun administrator Anda memiliki nama khusus berikut:“cn=admin,dc=devconnected,dc=com “.

Untuk melakukan penelusuran LDAP sebagai akun ini, Anda harus menjalankan kueri berikut

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

Saat menjalankan penelusuran LDAP sebagai akun administrator, Anda mungkin terpapar sandi terenkripsi pengguna, jadi pastikan Anda menjalankan kueri secara pribadi.

Menjalankan Penelusuran LDAP dengan Filter

Menjalankan kueri penelusuran LDAP plain tanpa filter apa pun kemungkinan akan membuang-buang waktu dan sumber daya.

Sering kali, Anda ingin menjalankan penelusuran LDAP kueri untuk menemukan objek tertentu di pohon direktori LDAP Anda.

Untuk mencari entri LDAP dengan filter, Anda dapat menambahkan filter di akhir perintah ldapsearch :di sebelah kiri Anda menentukan jenis objek dan di sebelah kanan nilai objek.

Secara opsional, Anda dapat menentukan atribut yang akan dikembalikan dari objek (nama pengguna, kata sandi pengguna, dll.)

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

Menemukan semua objek di pohon direktori

Untuk mengembalikan semua objek yang tersedia di pohon LDAP, Anda dapat menambahkan filter “kelas objek” dan karakter pengganti “*” untuk menentukan bahwa Anda ingin mengembalikan semua objek.

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

Saat menjalankan kueri ini, Anda akan disajikan dengan semua objek dan semua atribut yang tersedia di pohon.

Menemukan akun pengguna menggunakan ldapsearch

Misalnya, Anda ingin menemukan semua akun pengguna di pohon direktori LDAP.

Secara default, akun pengguna kemungkinan besar akan memiliki kelas objek struktural "akun", yang dapat digunakan untuk mempersempit semua akun pengguna.

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

Secara default, kueri akan mengembalikan semua atribut yang tersedia untuk kelas objek yang diberikan.

Seperti yang ditentukan di bagian sebelumnya, Anda dapat menambahkan atribut opsional ke kueri Anda jika Anda ingin mempersempit pencarian Anda.

Misalnya, jika Anda hanya tertarik pada CN pengguna, UID, dan direktori home, Anda akan menjalankan pencarian LDAP berikut

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

Luar biasa, Anda telah berhasil melakukan penelusuran LDAP menggunakan filter dan pemilih atribut!

DAN Operator menggunakan ldapsearch

Agar beberapa filter dipisahkan oleh operator “DAN”, Anda harus menyertakan semua ketentuan di antara tanda kurung dan memiliki karakter “&” yang ditulis di awal kueri.

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

Misalnya, katakanlah Anda ingin menemukan semua entri memiliki "kelas objek" yang sama dengan "akun" dan "uid" yang sama dengan "john", Anda akan menjalankan kueri berikut

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

ATAU Operator menggunakan ldapsearch

Agar beberapa filter dipisahkan oleh operator “ATAU”, Anda harus menyertakan semua kondisi di antara tanda kurung dan memiliki tanda “|” karakter yang ditulis di awal kueri.

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

Misalnya, jika Anda ingin menemukan semua entri yang memiliki kelas objek jenis "akun" atau atau jenis "Peran organisasi", Anda akan menjalankan kueri berikut

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

Filter Negasi menggunakan ldapsearch

Dalam beberapa kasus, Anda ingin mencocokkan secara negatif beberapa entri di hierarki direktori LDAP Anda.

Untuk mendapatkan filter pencocokan negatif, Anda harus menyertakan kondisi Anda dengan tanda “!" karakter dan memiliki kondisi yang dipisahkan dengan tanda kurung.

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

Misalnya, jika Anda ingin mencocokkan semua entri yang TIDAK memiliki atribut "cn" dengan nilai "john", Anda harus menulis kueri berikut

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

Menemukan konfigurasi server LDAP menggunakan ldapsearch

Salah satu penggunaan lanjutan dari perintah ldapsearch adalah untuk mengambil konfigurasi pohon LDAP Anda.

Jika Anda terbiasa dengan OpenLDAP, Anda tahu bahwa ada objek konfigurasi global yang berada di bagian atas hierarki LDAP Anda.

Dalam beberapa kasus, Anda mungkin ingin melihat atribut konfigurasi LDAP Anda, misalnya untuk mengubah kontrol akses atau untuk mengubah kata sandi admin root.

Untuk menelusuri konfigurasi LDAP, gunakan perintah “ldapsearch” dan tentukan “cn=config” sebagai basis pencarian untuk pohon LDAP Anda.

Untuk menjalankan pencarian ini, Anda harus menggunakan opsi “-Y” dan menentukan “EKSTERNAL” sebagai mekanisme otentikasi.

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

Catatan :perintah ini harus dijalankan di server secara langsung, bukan dari salah satu klien LDAP Anda.

Secara default, perintah ini akan mengembalikan banyak hasil karena mengembalikan backend, skema, dan modul.

Jika Anda ingin membatasi pencarian Anda pada konfigurasi database, Anda dapat menentukan kelas objek “olcDatabaseConfig” dengan ldapsearch.

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

Menggunakan Wildcard dalam penelusuran LDAP

Cara ampuh lainnya untuk menelusuri daftar entri LDAP adalah dengan menggunakan karakter wildcard seperti tanda bintang (“*”).

Karakter wildcard memiliki fungsi yang sama dengan asterisk yang Anda gunakan di regex :karakter ini akan digunakan untuk mencocokkan atribut apa pun yang dimulai atau diakhiri dengan substring tertentu.

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

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

Sebagai contoh, katakanlah Anda ingin menemukan semua entri yang memiliki atribut "uid" yang dimulai dengan huruf "j".

$ ldapsearch <previous_options> "uid=jo*"

Opsi Lanjutan Ldapsearch

Dalam tutorial ini, Anda belajar tentang opsi pencarian ldap dasar tetapi ada banyak opsi lain yang mungkin menarik bagi Anda.

Filter Pencocokan yang Dapat Diperluas LDAP

Filter kecocokan LDAP yang dapat diperluas digunakan untuk memperbesar biaya operator yang ada (misalnya operator kesetaraan) dengan menentukan jenis perbandingan yang ingin Anda lakukan.

Operator default supercharge

Untuk menambah biaya operator LDAP, Anda harus menggunakan sintaks “:=".

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

Misalnya, jika Anda ingin mencari semua entri yang memiliki "cn" yang sama dengan "john", Anda akan menjalankan perintah berikut

$ ldapsearch <previous_options> "cn:=john"

# Which is equivalent to

$ ldapsearch <previous_options> "cn=john"

Seperti yang mungkin Anda perhatikan, menjalankan penelusuran pada “john” atau pada “JOHN” mengembalikan hasil yang sama persis.

Akibatnya, Anda mungkin ingin membatasi hasil ke pencocokan persis “john”, membuat pencarian peka huruf besar/kecil.

Menggunakan ldapsearch, Anda dapat menambahkan filter tambahan yang dipisahkan oleh karakter “:”.

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

Misalnya, untuk memiliki pencarian yang peka huruf besar/kecil, Anda akan menjalankan perintah berikut

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

Jika Anda tidak terbiasa dengan filter pencocokan LDAP, berikut adalah daftar semua operator yang tersedia untuk Anda.

Kesimpulan

Dalam tutorial ini, Anda mempelajari cara menelusuri pohon direktori LDAP menggunakan ldapsearch perintah.

Anda telah melihat dasar-dasar pencarian entri dan atribut dasar serta membangun filter pencocokan yang kompleks dengan operator (dan, atau dan operator negatif).

Anda juga mengetahui bahwa adalah mungkin untuk menghargai operator yang ada dengan menggunakan opsi pencocokan yang dapat diperluas dan menentukan operator khusus yang akan digunakan.

Jika Anda tertarik dengan Administrasi Sistem Linux Tingkat Lanjut, kami memiliki bagian lengkap yang didedikasikan untuk itu di situs web, jadi pastikan untuk memeriksanya!


Linux
  1. SSH ke Port Selain 22:Bagaimana Melakukannya (dengan Contoh)

  2. Bagaimana Cara Membuat Ldapsearch Bekerja Pada Sles Over Tls Menggunakan Sertifikat?

  3. Bagaimana cara mengisi file dengan FF menggunakan dd?

  1. Cara Unzip File di Linux (dengan Contoh)

  2. Cara Membuat Pasangan Kunci SSH (dengan Contoh)

  3. Tambahkan Pengguna ke Grup di Linux, Bagaimana Melakukannya (Dengan Contoh)

  1. Cara Menggunakan Perintah ethtool dengan Contoh

  2. Cara mencari database menggunakan phpMyAdmin

  3. Bagaimana cara memasukkan pustaka C yang diperlukan menggunakan gcc?