Назад | Перейти на главную страницу

Конфигурация Openldap на клиенте RHEL 6.6

У нас есть сценарий оболочки, который запускает программу Perl для подключения к серверу LDAP и создания записей.

Это единственный скрипт, использующий ldap. На этом сервере размещаются все файлы, связанные с пакетной обработкой, и выполняются пакетные задания на autosys. Поэтому нам не нужна аутентификация LDAP на этом сервере. Мы используем ldap только для подключения к серверу LDAP и обновления записей. Аутентификация LDAP для некоторых других пользователей веб-приложений, которые нас сейчас не интересуют.

Теперь мы переводим наши серверы пакетной обработки с Solairs 10 на RHEL 6.6. На старой машине есть SUNWlldap, и мы пытаемся настроить клиент OpenLDAP на новой машине Linux. Сервер LDAP - это RHEL 5.11, использующий openldap.

На новой машине мы установили ниже оборотов.

nss-pam-ldapd-0.7.5-18.2.el6_4.x86_64, 
openldap-2.4.39-8.el6.x86_64, 
pam_ldap-185-11.el6.x86_64, 
apr-util-ldap-1.3.9-3.el6_0.1.x86_64, 
perl-Mozilla-LDAP-1.5.3-4.el6.x86_64, 
compat-openldap-2.3.43-2.el6.x86_64, 
perl-LDAP-0.40-1.el6.noarch.

Настроил клиент по ссылке ниже:

http://unixadminschool.com/blog/2013/03/rhel-6-implementation-of-ldap-authentication

Я пропустил часть сертификатов. Я искал сертификаты на старом сервере, но нигде не нашел. Я не понимаю, как он подключается без использования сертификатов, и не уверен, нужны ли нам сертификаты для нашей цели.

Ниже приведен сценарий, использующий ldap:

$oid001i.pl $input_file $LDAP_Server $LDAP_Port $LDAP_ID $LDAP_PWD $LDAP_UserBaseDN

Все эти переменные взяты из другого файла. Ниже представлено содержимое файла

LDAP_Server=servername.company.com
LDAP_Port=1389
LDAP_ID="cn=username,cn=users,dc=company,dc=com"
LDAP_PWD="password"
LDAP_UserBaseDN="cn=users,dc=company,dc=com"

Код Perl для привязки в oid001i.pl:

$ldap = Net::LDAP->new( $LDAP_Server, port=>$LDAP_Port, version => 3);
$mesg = $ldap->bind( $LDAP_ID,password => $LDAP_PWD);
$SearchFor="cn=$cn";
#Perform Search
$mesg = $ldap->search( base   => $LDAP_UserBaseDN, filter => $SearchFor,callback => \&ParseEntry,);

$mesg = $ldap->unbind;   # take down session

Когда я выполняю

$perl oid001i.pl input_file server.company.com port "cn=username,cn=users,dc=company,dc=com" password "cn=users,dc=company,dc=com"

Получаем такую ​​ошибку:

Can't call method "bind" on an undefined value at oid001i.pl line 21, <IN> line 1.

Я запускаю эту команду, чтобы проверить подключение и получить ошибки:

$ldapsearch -h servername.company.com -p 1389 -LLLx -b 'cn=users,dc=comapany,dc=com' -s base
Cannot connect to the LDAP server

Я что-то упустил? Требуются ли сертификаты для подключения к серверу LDAP? Что еще нужно сделать на стороне сервера ldap? Любая помощь будет оценена?