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|... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

But

Permet d'administrer un serveur OpenLDAP.

Étape préliminaire

Avant de commencer, il est impératif de disposer:

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