LDAP клиентски софтуер за достъп до LDAP сървъраСъдържание:
1. Предварителна информацияЦелта на този документ е да запознае новите потребители и администратори на LDAP сървъри с най-популярните LDAP клиенти. По-долу са описани два - един с web-интерфейс и един, който се използва от команден ред. Разбира се, съществуват и други LDAP клиенти, които могат да бъдат използвани и които не са описани по-долу (такъв е например Apache Directory Studio, който е базиран на Eclipse). При заявка и интерес, те могат да бъдат добавени към документацията.
2. Web-базиран LDAP клиент върху отдалечен сървърЗа момента, най-популярният и използван web-базиран LDAP клиент, който се изпълнява върху отдалечен сървър през браузъра на клиента, е phpldapadmin. В този случай, за да достъпите клиента, вие трябва да имате само браузър, чрез който да се свържете до web-сървъра, на който се намира инсталацията на phpldapadmin. За да инсталирате phpldapadmin на сървър работещ под CentOS 7 и Scientific Linux 7, трябва да имате върху него инсталиран, конфигуриран и работещ Apache web-сървър, с поддръжка на SSL (последното е задължително). Инсталирането на phpldapadmin върху сървъра става по следния начин (като зависимост ще бъде инсталиран php): # yum install phpldapadmin След като phpldapadmin бъде инсталиран в системата, трябва да редактирате два файла:
Посетете адреса на phpldapadmin клиента (вижте по-горе как той се определя от адреса на web-сървъра и конкретния ресурс, асоцииран с директорията, която съдържа кода на клиента): натиснете връзката "Login" (вляво) и въведете потребителското име или dn-а на потребителя, и паролата, след което натиснете "Authenticate": Ако потребителското име (или dn-а) и паролата са валидни, ще получите достъп до интерфейса на phpldapadmin, в който ще можете лесно да навигирате с помощта на менютата в него:
3. LDAP клиент в команден ред, базиран на пакета openldap-clientsПроверете дали пакета openldap-clients е инсталиран: $ rpm -q openldap-clients Ако пакетът е вече инсталиран в системата, ще получите като резултат името на пакета и версията му: openldap-clients-2.4.44-21.el7_6.x86_64 Ако пакетът не е наличен, инсталирайте го използвайки # yum install openldap-clients Инструментите, които този пакет предлага, са следните: /usr/bin/ldapadd /usr/bin/ldapcompare /usr/bin/ldapdelete /usr/bin/ldapexop /usr/bin/ldapmodify /usr/bin/ldapmodrdn /usr/bin/ldappasswd /usr/bin/ldapsearch /usr/bin/ldapurl /usr/bin/ldapwhoami Всеки инструмент от списъка се извиква в командния интерпретатор (обикновено bash) и изисква (освен инструкциите към сървъра) да се въведе адреса на LDAP сървъра и dn-а, с който ще стане удостоверяването пред сървъра за изпълнение на заявените операции: -H ldaps://server_name -D "cn=Directory Manager" -x -W Например, изпълнението на заявка за търсене на dn по зададени атрибути, с използването на $ ldapsearch -H ldaps://hpc-service-host.unite.uni-sofia.bg -D "cn=Directory Manager" -b "ou=users,o=unite-bg.eu" -x -W 'uid=vesso' email Забележете, че след $ mkdir ~/.cacerts С цел илюстрация как сертификат може да попадне в тази директория, по-долу е даден пример с изтеглянето на X.509 сертификата на Удостоверителя на СУ: $ ca ~/.cacerts $ wget https://pki.uni-sofia.bg/crt/SU_ECC_Root_CA.crt След като файла, който съдържа сертификата на удостоверителя, е изтеглен и поставен в директорията, трябва да се убедите, че той е във формат "PEM" (инструментите от пакета openldap-clients четат сертификати в този формат). За целта използвайте инструкциите, които са дадени в "Приложение 1: Как да определим дали един X.509 сертификат е във формат PEM или DER". Ако файлът съдържа сертификата в двоичен формат, прочетете в "Приложение 2: Конвертиране на X.509 сертификат от PEM в DER и обратно" как да го конвертирате в "PEM". След това изчислете контролната сума на сертификата: $ ca ~/.cacerts $ openssl x509 -fingerprint -sha256 -noout -in SU_ECC_Root_CA.crt и я сравнете с тази, която е обявена от Удостоверителя. Ако има съвпадение, трябва да създадете специален "symlink" обект, който да сочи към файла с копието на удостоверителския сертификат. Това може да направите съгласно инструкциите в "Приложение 3: Създаване на "symlink" към X.509 сертификат". За да може да контролирате параметрите на SSL комуникацията (версия на SSL протолоа, шифри), трябва да създадете файла ~/.ldaprc (този файл е локиран в домашната директория на потребителя, който ще използва инструментите в пакета openldap-clients) и в него да поставите следните три реда: TLS_CACERTDIR /home/username/.cacerts TLS_PROTOCOL_MIN 1.2 TLS_CIPHER_SUITE ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 Отбележете, че след Възможно е да направите така, че да не въвеждате всеки път паролата за dn-а, с който се удостоверявате пред LDAP сървъра. За целта трябва да създадете файл, който съдържа паролата (използвайте точно начина, който е описан по-долу!!!): $ echo -n "password" > ~/.ldappasswd $ chmod 400 ~/.ldappasswd При изпълнението на този команден ред, вместо $ ldapsearch -H ldaps://hpc-service-host.unite.uni-sofia.bg -D "cn=Directory Manager" -b "ou=users,o=unite-bg.eu" -y ~/.ldappasswd 'uid=vesso' email
Приложение 1: Как да определим дали един X.509 сертификат е във формат PEM или DER
Приложение 2: Конвертиране на X.509 сертификат от PEM в DER и обратноПреди да пристъпите към процеса на конвертиране, трябва да проверите в какъв точно формат е съдържанието на X.509 сертификата. За целта използвайте инструкциите, които са дадени по-горе.
Приложение 3: Създаване на "symlink" към X.509 сертификатТези потребителски инструменти и демони на услуги в CentOS 7 и Scientific Linux 7, които разчитат на библиотеките OpenSSL, за да работят със сертификатния модел X.509, се нуждаят от хранилище, в което се намират X.509 сертификатите на удостоверителите (издателите) на сървърски или клиентски сертификати. Това хранилище е директория, в която се намират копия на удостоверителските X.509 сертификати, в "PEM" формат (виж информацията по-горе за конвертиране на сертификатите от един формат в друг). За да са читаеми от библиотеките на OpenSSL, файловете в тази директория файловете със сертификатите трябва да имат специфично име, което съдържа контролната сума на "Subject" полето в X.509 сертификата. От друга страна, тези контролни суми са неразбираеми на пръв поглед шестнадесетични числа и с нищо не спомагат за добрата системна администрация или управление на съдържанието във въпросната директория. Изход от ситуацията е оригиналното име на файла да се запази, а само да се направи "symlink", чието име да е контролната сума. Това става по следния начин: Изпълнете скрипта $ /etc/pki/tls/misc/c_hash SU_ECC_Root_CA.crt Резултатът, който ще получите ще има следния вид: 4c5f24de.0 => SU_ECC_Root_CA.crt В началото ще е името на "symlink" обекта, който трябва да създадете ( $ ln -s SU_ECC_Root_CA.crt 4c5f24de.0 Забележете цифрата 0 в края на името на създадения "symlink". Защо е нужно да има това разширение? Възможно е в същата директория да има два X.509 сертификата, с една и съща стойност на "Subject" полето. Очевидно е, че в в този случай, числото преди "." ще е едно и също. Т.е. ако "symlink" обекта за два сертификата е с едно и също име (число), то е ясно, че няма как да се създадат тези два "symlink" обекта в една и съща директория, защото те ще са релно два различни файла с едно и също име (а това не се допуска от файловата система). Един начин да се реши този проблем с колизията на имена на файлове е, след числото на "symlink" обекта, да се сложи наставка (разширение). Например, ".0" в примера по-горе е такова разширение. Използвайки различно разширение (".0", ".1'" и т.н), два "symlink" обекта, които съдържат едно и също число в името си, могат да съществуват в една директория. |
Последна актуализация: 13 април 2019
2019 УНИТе, Веселин Колев