1 votes

Peut se connecter au serveur LDAP, mais ne peut pas se lier : Message d'erreur OpenLdap : Impossible de contacter le serveur LDAP

Nous avons une application PHP déployée sur une machine RHEL6 qui dépend de certains appels ldap pour fonctionner. En particulier, ldap_connect et ldap_bind sont utilisés pour vérifier les utilisateurs et également pour rechercher leurs détails.

Ce mécanisme fonctionne très bien sur notre serveur de développement, qui fonctionne sur Ubuntu server. Sur notre machine de production, qui fonctionne sur RHEL6, le processus échoue. Dans les deux cas, nous nous connectons au même serveur LDAP en utilisant les mêmes informations d'identification, il est donc clair que quelque chose ne va pas sur le serveur RHEL6. Nous utilisons du LDAP de base, pas de trucs SSL.

Je peux confirmer qu'il n'y a aucun problème de pare-feu ou de réseau sur le nouveau serveur. Le ping vers le serveur LDAP fonctionne très bien. De plus, un appel ldap_connect est également réussi.

Pour isoler le problème de notre application, j'ai utilisé le script PHP de test simple ci-dessous:

";
echo "1: " . date('l jS \of F Y h:i:s A') . "";
$ldapconn = ldap_connect($ldapurl) or die ("Impossible de se connecter"); 
echo "2: " . date('l jS \of F Y h:i:s A') . "";

// Liaison au serveur ldap
echo "Tentative de liaison avec $ldapuser - $ldappass";
echo "3: " . date('l jS \of F Y h:i:s A') . "";
$ldapbind = @ldap_bind($ldapconn, $ldapuser, $ldappass);
echo "4: " . date('l jS \of F Y h:i:s A') . "";

if (!$ldapbind) {
echo "Impossible de se lier au serveur $ldapurl\n";
echo "Message d'erreur OpenLdap: " . ldap_error($ldapconn) . "\n";
exit;
}

// Le reste du code va ici

?>

J'exécute le script ci-dessus sur les deux serveurs. Sur notre serveur de développement, tout va bien. Sur notre serveur RHEL6, la connexion fonctionne, mais la liaison échoue après un délai de plus d'une minute:

Message d'erreur OpenLdap: Impossible de contacter le serveur LDAP

Je ne suis pas du tout un sysadmin, donc la plupart des discussions trouvées en ligne concernant cette erreur je ne les comprends pas pleinement. J'espère que quelqu'un ici pourra m'aider avec ça. Merci d'avance.

1voto

Jeight Points 188

Contrairement à RHEL5, RHEL6 exige des certificats ssl (plus spécifiquement TLS) pour se connecter à openldap. J'ai tourné en rond en cherchant une solution de contournement et j'ai finalement accepté le fait qu'utiliser un certificat ssl était plus facile et plus sûr que de chercher un moyen de ne pas l'utiliser.

Ce lien pourrait vous aider: http://www.linuxquestions.org/questions/linux-enterprise-47/rhel-6-ldap-now-requires-tls-843917/

Vous pouvez essayer de forcer le mode hérité, et cela peut fonctionner, mais j'ai constaté que cela ne fonctionne pas complètement et que vous pourriez rencontrer des problèmes plus tard.

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

-1voto

user171095 Points 1

Pour centos7/RHEL7, changez pour vos valeurs :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X