Linux:Administration d'OpenLDAP
De WIKI.minetti.org
Révision de 7 avril 2016 à 18:41 par Jp (discussion | contributions) (Page créée avec « == But == Permet d'administrer un serveur OpenLDAP. == Étape préliminaire == Avant de commencer, il est impératif de disposer: * d'un Linux:Configuration d'OpenLDAP|... »)
Sommaire
But
Permet d'administrer un serveur OpenLDAP.
Étape préliminaire
Avant de commencer, il est impératif de disposer:
- d'un serveur LDAP,
- d'avoir testé un accès client vers le LDAP (voir Configuration du client LDAP).
Réparation des données
Pour réparer les données du LDAP, taper les commandes suivantes:
service slapd stop slapd_db_recover -v -h /var/db/ldap service slapd start
Réparation des index
Pour réparer les index du LDAP, taper les commandes suivantes:
service slapd stop slapindex -v service slapd start
Ajout de nouveaux index
- Créer un fichier ldif à partir du modèle suivant (par exemple index.ldif):
dn: olcDatabase={2}bdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: attribut1 pres,eq,sub - add: olcDbIndex olcDbIndex: attribut2 pres,eq,sub ...
- avec pour chaque attribut indexé, le type d'index:
- pres qui est la contraction de presence et correspond à des requêtes comme objectclass=person ou attribute=mail (attributs multiples),
- eq qui est la contraction de equality et correspond à des requêtes comme sn=dupond.
- sub qui est la contraction de substring et correspond à des requêtes comme sn=du*.
- exécuter la commande suivante:
ldapmodify -Y EXTERNAL -H ldapi:/// -f index.ldif
- et vérifier les indexes en exécutant la commande suivante:
ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" | grep ^olcDbIndex
Ajout d'un nouveau schéma
- Ajouter la directive include du nouveau schéma dans le fichier /etc/openldap/schema_convert.conf.
- Déterminer le numéro de ligne qui vient d'être ajoutée dans le fichier en commençant par 0.
- Exécuter les commandes suivantes pour convertir notre fichier .schema en .ldif (xx étant le numéro de ligne qui a été relevé et yyyy étant le nom du schéma):
cd /root/ldap mkdir schema.tmp slapcat -f /etc/openldap/schema_convert.conf -F /root/ldap/schema.tmp -n0 -s "cn={xx}yyyy,cn=schema,cn=config" > cn=yyyy.ldif
- Editer le fichier cn=yyyy.ldif,
- enlever le {xx} présent sur les 3 premières lignes:
dn: cn=yyyy,cn=schema,cn=config objectClass: olcSchemaConfig cn: yyyy
- supprimer les 7 dernières lignes:
structuralObjectClass: olcSchemaConfig entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 creatorsName: cn=config createTimestamp: 20080827045234Z entryCSN: 20080827045234.341425Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20080827045234Z
- et taper la commande suivante pour importer le schéma:
ldapadd -Y EXTERNAL -H ldapi:/// -f cn=yyyy.ldif
Test des accès au LDAP
- Accès anonyme:
ldapsearch -vx -ZZ "(objectClass=*)"
- Accès système linux (NSS & PAM):
ldapsearch -vx -ZZ -D "cn=linux,ou=sysaccount,ou=localnet,dc=minetti,dc=org" -W "(objectClass=*)"
- Accès serveur Samba:
ldapsearch -vx -ZZ -D "cn=samba,ou=sysaccount,ou=localnet,dc=minetti,dc=org" -W "(objectClass=*)"
- Accès serveur Apache HTTPD:
ldapsearch -vx -ZZ -D "cn=httpd,ou=sysaccount,ou=localnet,dc=minetti,dc=org" -W "(objectClass=*)"
- Accès serveur RADIUS:
ldapsearch -vx -ZZ -D "cn=radius,ou=sysaccount,ou=localnet,dc=minetti,dc=org" -W "(objectClass=*)"
- Accès utilisateur du réseau:
ldapsearch -vx -ZZ -D "uid=lskywalker,ou=people,ou=localnet,dc=minetti,dc=org" -W "(objectClass=*)"
Débogage
- Pour tracer toutes les requêtes traitées par le LDAP, dans le fichier /etc/rsyslog.d/ldap.conf on remplacera error par *:
local4.* -/var/log/ldap.log
- Redémarrer le démon rsyslog:
service rsyslog restart