1 votos

Se puede conectar al servidor LDAP, pero no se puede enlazar: mensaje de error de OpenLdap: No se puede contactar con el servidor LDAP

Tenemos una aplicación PHP desplegada en una máquina RHEL6 que depende de algunas llamadas a ldap para funcionar. En particular, ldap_connect y ldap_bind se utilizan para verificar los usuarios y también para buscar sus detalles.

Este mecanismo funciona bien en nuestro servidor de desarrollo, que se ejecuta en el servidor Ubuntu. En nuestra máquina de producción, que funciona con RHEL6, el proceso falla. En ambos casos, nos conectamos al mismo servidor LDAP usando las mismas credenciales, así que claramente algo está mal en el servidor RHEL6. Estamos usando LDAP básico, sin cosas de SSL.

Puedo confirmar que no hay ningún problema de firewall o de red en el nuevo servidor. El ping al servidor LDAP funciona bien. Además, una llamada ldap_connect también tiene éxito.

Para aislar el problema de nuestra aplicación, utilicé la siguiente prueba sencilla de PHP script:

<?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

?>

Estoy ejecutando el anterior script en ambos servidores. En nuestro servidor de desarrollo, todo está bien. En nuestro servidor RHEL6, la conexión funciona, pero el enlace falla después de un retraso de más de un minuto:

Mensaje de error de OpenLdap: No se puede contactar con el servidor LDAP

No soy un administrador de sistemas en absoluto, por lo tanto, la mayoría de las discusiones que se encuentran con respecto a este error en línea no entiendo completamente. Espero que alguien aquí sea capaz de ayudarme con esto. Muchas gracias de antemano.

1voto

CLIJO JOSE Puntos 6

A diferencia de RHEL5, RHEL6 requiere certificados ssl (más concretamente TLS) para conectarse a openldap. Di vueltas y vueltas tratando de encontrar una solución y finalmente me conformé con el hecho de que usar un certificado ssl era más fácil y más seguro que encontrar una manera de no usarlo.

Este enlace puede ayudar: http://www.linuxquestions.org/questions/linux-enterprise-47/rhel-6-ldap-now-requires-tls-843917/

Puedes intentar forzar el modo heredado, y puede que funcione, pero he descubierto que no funciona del todo y puedes ver problemas más adelante.

authconfig --enableldap --enableldapauth --forcelegacy=yes --ldapserver=myldapserver.com --ldapbasedn="dc=example,dc=com" --update

-1voto

user171095 Puntos 1

Para centos7/RHEL7, cambie por sus valores:

authconfig --enableforcelegacy --enableshadow --enablemd5 --enableldap --enableldapauth --disableldaptls --ldapserver=127.0.0.1 --ldapbasedn="dc=**ldap,dc=***.uk" --enablemkhomedir --disablesssd --disablesssdauth  --update

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: