Pode se conectar ao servidor LDAP, mas não pode ligar: Mensagem de erro do OpenLdap: Não é possível entrar em contato com o servidor LDAP

1

Temos um aplicativo PHP implementado em uma máquina RHEL6 que depende de algumas chamadas do ldap para a função. Em particular, ldap_connect e ldap_bind são usados para verificar usuários e também para procurar seus detalhes.

Esse mecanismo funciona bem no nosso servidor de desenvolvimento, que é executado no servidor Ubuntu. Na nossa máquina de produção, que é executada no RHEL6, o processo falha. Em ambos os casos, nos conectamos ao mesmo servidor LDAP usando as mesmas credenciais, então, claramente, algo está errado no servidor RHEL6. Estamos usando o LDAP básico, sem material SSL.

Posso confirmar que não há problema de firewall ou rede no novo servidor. Ping para o servidor LDAP funciona muito bem. Além disso, uma chamada ldap_connect também é bem-sucedida.

Para isolar o problema do nosso aplicativo, usei o script de teste PHP abaixo:

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

?>

Estou executando o script acima nos dois servidores. No nosso servidor de desenvolvimento, tudo está bem. No nosso servidor RHEL6, a conexão funciona, mas a ligação falha após um atraso de mais de um minuto:

Mensagem de erro do OpenLdap: não é possível entrar em contato com o servidor LDAP

Eu não sou um administrador de sistema, portanto, a maioria das discussões encontradas a respeito desse erro on-line não entendi completamente. Espero que alguém aqui possa me ajudar com isso. Muito obrigado antecipadamente.

    
por Ferdy 04.12.2013 / 15:11

2 respostas

1

Ao contrário do RHEL5, o RHEL6 requer certificados ssl (mais especificamente o TLS) para se conectar ao openldap. Eu dei voltas e voltas tentando encontrar uma solução alternativa e finalmente resolvi o fato de que usar um certificado ssl era mais fácil e mais seguro do que encontrar uma maneira de não usá-lo.

Este link pode ajudar: link

Você pode tentar forçar o modo herdado, e isso pode funcionar, mas descobri que ele não funciona completamente e você pode ver problemas mais tarde.

authconfig --enableldap --enableldapauth --forcelegacy=yes --ldapserver=myldapserver.com --ldapbasedn="dc=example,dc=com" --update 
    
por 14.05.2015 / 01:12
-1

Para centos7 / RHEL7, altere seus valores:

authconfig --enableforcelegacy --enableshadow --enablemd5 --enableldap --enableldapauth --disableldaptls --ldapserver=127.0.0.1 --ldapbasedn="dc=**ldap,dc=***.uk" --enablemkhomedir --disablesssd --disablesssdauth  --update 
    
por 15.01.2018 / 17:16