Может соединиться с сервером LDAP, но не может связать: сообщение об ошибке OpenLdap: не Может связаться с сервером LDAP

Нам развернули приложение PHP на машине RHEL6, которая полагается на некоторые вызовы ldap для функционирования. В частности, ldap_connect и ldap_bind используются, чтобы проверить пользователей и также искать их детали.

Этот механизм работает просто великолепно на нашем сервере разработки, который работает на сервере Ubuntu. На нашей производственной машине, которая работает на RHEL6, сбоях процесса. В обоих случаях мы соединяемся с тем же сервером LDAP с помощью тех же учетных данных, так ясно что-то неправильно в сервере RHEL6. Мы используем основной LDAP, никакой материал SSL.

Я могу подтвердить, что нет никакого брандмауэра или сетевой проблемы на новом сервере. Проверка с помощью ping-запросов к серверу LDAP работает просто великолепно. Кроме того, вызов ldap_connect успешен также.

Для изоляции проблемы от нашего приложения я использовал ниже простого сценария тестирования PHP:

<?php 
// Set the ldap server
$ldapurl = "[snipped]";
$ldapuser = "[snipped]";
$ldappass = "[snipped]";
// Set the debug flag
$debug = true;

// Set debugging
if ($debug) {
  ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
}

// connect to ldap server
echo "Trying to connect<br/>";
echo "1: " . date('l jS \of F Y h:i:s A') . "<br/>";
$ldapconn = ldap_connect($ldapurl) or die ("Couldn't connect"); 
echo "2: " . date('l jS \of F Y h:i:s A') . "<br/>";

// binding to ldap server
echo "Trying to bind with $ldapuser - $ldappass<br/>";
echo "3: " . date('l jS \of F Y h:i:s A') . "<br/>";
$ldapbind = @ldap_bind($ldapconn, $ldapuser, $ldappass);
echo "4: " . date('l jS \of F Y h:i:s A') . "<br/>";

if (!$ldapbind) {
echo "Unable to bind to server $ldapurl\n";
echo "OpenLdap error message: " . ldap_error($ldapconn) . "\n";
exit;
}

// Rest of code goes here

?>

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

Сообщение об ошибке OpenLdap: не Может связаться с сервером LDAP

Я не системный администратор вообще, поэтому большинство обсуждений, найденных относительно этой ошибки онлайн, я не полностью схватываю. Я надеюсь, что кто-то здесь может помочь мне с этим.Заранее большое спасибо.

1
задан 4 December 2013 в 16:11
2 ответа

В отличие от RHEL5, RHEL6 требует ssl сертификатов (точнее TLS) для подключения к openldap. Я ходил по кругу, пытаясь найти обходной путь, и в конце концов смирился с тем, что использование ssl сертификата было проще и безопаснее, чем поиск способа не использовать его.

Эта ссылка может помочь: http://www.linuxquestions.org/questions/linux-enterprise-47/rhel-6-ldap-now-requires-tls-843917/

Вы можете попробовать использовать старый режим, и это может сработать, но я обнаружил, что он не полностью работает, и вы можете увидеть проблемы позже.

authconfig --enableldap --enableldapauth --forcelegacy=yes --ldapserver=myldapserver.com --ldapbasedn="dc=example,dc=com" --update 
1
ответ дан 4 December 2019 в 08:55

Для centos7 / RHEL7 измените свои значения:

authconfig --enableforcelegacy --enableshadow --enablemd5 --enableldap --enableldapauth --disableldaptls --ldapserver=127.0.0.1 --ldapbasedn="dc=**ldap,dc=***.uk" --enablemkhomedir --disablesssd --disablesssdauth  --update 
-1
ответ дан 4 December 2019 в 08:55

Теги

Похожие вопросы