===== Утилита ldapsearch (клиент OpenLDAP) и проверка подключения к контроллеру домена Active Directory ===== Проверку выполняем на примере **Debian GNU/Linux 8 (Jessie)**. Сначала убедимся в том, что клиент **OpenLDAP** установлен в системе: # dpkg -l | grep ldap
ii ldap-utils 2.4.40+dfsg-1+deb8u2 amd64 OpenLDAP utilities ii libldap-2.4-2:amd64 2.4.40+dfsg-1+deb8u2 amd64 OpenLDAP libraries
Исходные данные для проверки подключения клиента **OpenLDAP** к **LDAP**-каталогу на примере контроллера домена **Active Directory** (**AD**): * **ad.holding.com** - Имя домена AD; * **dc01.ad.holding.com** - FQDN-имя контроллера домена AD; * **s-LDAP-Check-User** - Имя пользователь в домене AD, от имени которого выполняется подключение (уровень прав в домене - рядовой пользователь); * **PaZsw0rd** - Пароль пользователя s-LDAP-Check-User. * **Test-User** - Имя пользователя в домене AD, которого мы пытаемся найти в LDAP-каталоге. * "**OU=Test Users,OU=KOM,DC=ad,DC=holding,DC=com**" - DN-имя контейнера в AD, в котором выполняется поиск пользователя Test-User. ---- \\ ==== Проверка подключения по протоколу LDAP (TCP 389) ==== Используется подключение типа **ldap:/**. Учётные данные пользователя s-LDAP-Check-User передаются по сети в открытом виде: $ ldapsearch -v -x \ -D "s-LDAP-Check-User@ad.holding.com" -w "PaZsw0rd" \ -b "OU=Test Users,OU=KOM,DC=ad,DC=holding,DC=com" \ -H "ldap://dc01.ad.holding.com" sAMAccountName=Test-User ---- \\ ==== Проверка подключения по протоколу LDAPS (TCP 636) ==== Используется подключение типа **ldaps:/**. LDAP-сессия шифруется с помощью **SSL**-сертификата, предоставляемого контроллером домена. Чтобы LDAP-клиент доверял сертификату контроллера домена, нам нужно создать файл, содержащий корневые сертификаты доменных Центров сертификации, которыми подписан сертификат контроллера домена. Назовём этот файл, например **/etc/ssl/certs/cacerts.pem**, и скопируем в него корневые сертификаты доменных ЦС в формате **PEM** и кодировке **Base-64**. Изменим на время проверки конфигурационный файл клиента OpenLDAP **/etc/ldap/ldap.conf**, указав в переменной **TLS_CACERT** путь к созданному нами файлу с корневыми сертификатами доменных ЦС: ... #TLS_CACERT /etc/ssl/certs/ca-certificates.crt TLS_CACERT /etc/ssl/certs/cacerts.pem ... После этого можно попробовать выполнить поиск по протоколу **LDAPS**: $ ldapsearch -v -x \ -D "s-LDAP-Check-User@ad.holding.com" -w "PaZsw0rd" \ -b "OU=Test Users,OU=KOM,DC=ad,DC=holding,DC=com" \ -H "ldaps://dc01.ad.holding.com" sAMAccountName=Test-User ---- \\ ==== Проверка подключения по протоколу LDAP с защитой StartTLS (TCP 389) ==== Используется подключение типа **ldap:/** с дополнительными ключами, включающими **TLS** : **-Z** и **-ZZ**. LDAP-сессия также шифруется с помощью **SSL**-сертификата, предоставляемого контроллером домена. Первичное подключение к контроллеру домена AD происходит по порту **389**, затем создаётся отдельный защищённый **TLS**-туннель, внутри которого и происходит весь LDAP-обмен между клиентом и сервером. Используется настроенный нами ранее файл корневых сертификатов доменных ЦС. $ ldapsearch -Z -v -x \ -D "s-LDAP-Check-User@ad.holding.com" -w "PaZsw0rd" \ -b "OU=Test Users,OU=KOM,DC=ad,DC=holding,DC=com" \ -H "ldap://dc01.ad.holding.com" sAMAccountName=Test-User ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 19.03.2017 18:04 {{tag>Linux Debian "Debian 8" "Debian Jessie" LDAP OpenLDAP ldapsearch "Active Directory" SSL TLS StartTLS Certificate "Certification Authority"}} ~~DISCUSSION~~ ~~NOTOC~~