Liste non-exhaustive des points à vérifier :
et qu'il est accessible.
(On utilise pour cela le client ldapsearch installé par le paquet ldap-utils).
# -ZZ force l'utilisation de TLS, vous pouvez l'enlever pour tester en clair ldapsearch -LLL -ZZ -x -h ldap-maitre.guim.info -b "dc=guim,dc=info" uid=mathieu uid sn ldapsearch -LLL -ZZ -x -h replica.guim.info -b "dc=guim,dc=info" uid=mathieu uid sn
Voici un script bash qui permet de tester la connectivité au service LDAP, il interroge le serveur désigné, puis vérifie s'il le nom d'hote est un alias DNS auquel cas il interroge les vrais serveurs :
#!/bin/bash # check-ldap.sh - test la connexion au ldap function connect { ip_addr=$1 tls=${2:+"-ZZ"} cmd=$(ldapsearch -LLL -x -h ${ip_addr} ${tls} -b "dc=guim,dc=info" uid=mathieu uid 2> /dev/null) if [ $? -eq 0 ]; then echo " Connexion en ${2:-clair} : OK" else echo " Connexion en ${2:-clair} : ERREUR" fi } host=${1:-'ldap.guim.info'} echo "Serveur : ${host}" connect ${host} connect ${host} "tls" ping -c 1 ${host} | awk '/icmp_seq/ {print " Ping "$8" "$9}' if [ $(host ${host} | grep 'address' | wc -l) -gt 1 ]; then nslookup ${host} | awk '/Address/ && !/#/ {print $2}' | while read ip; do echo " " fqdn=$(nslookup ${ip} | awk '/name =/ {print $4}') echo "=> $ip = ${fqdn}" connect ${ip} connect ${fqdn%.} "tls" ping -c 1 ${fqdn%.} | awk '/icmp_seq/ {print " Ping "$8" "$9}' done fi
En vérifiant le fichier /var/log/slapd.log, on voit apparaître l'erreur suivante à plusieurs reprise :
/var/log/slapd.log
Jan 24 15:05:12 ldap slapd[2102]: daemon: accept(7) failed errno=24 (Too many open files)
La commande “ulimit -a” retourne :
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) unlimited virtual memory (kbytes, -v) unlimited
La commande suivante donne le nombre de fichiers ouvert par slapd :
ls -1 /proc/`pidof slapd`/fd | wc -l 40
Création d'un ldif pour la modification d'un attribut :
dn: uid=toto,ou=people,dc=guim,dc=info
changetype: modify
replace: userpassword
userpassword: {SSHA}60aL/VKV1/5jOIBErjLvrY+rRY8ilo2n
-
Utilisation de ldapmodify pour modifier :
sudo ldapmodify -x -W -D "cn=admin,dc=guim,dc=info" -h localhost -f fichier.ldif