OpenLDAP

De ClissXXI.

Sommaire

Lister les bases disponibles

ldapsearch -x -s base namingContexts

Suppression des vieux logs

Pour limiter l'accumulation des logs (log.0000000001, log.0000000002, etc.), ajouter dans /var/lib/ldap/DB_CONFIG:

set_flags DB_LOG_AUTOREMOVE

Pour le faire manuellement:

apt-get install db4.2-util
cd /var/lib/ldap/
db4.2_archive     # lister les logs inutilisés
db4.2_archive -d  # les supprimer

Pour maximiser l'effet:

db4.2_checkpoint -1

Sauvegardes historisées

Petite astuce avec logrotate pour gérer la rotation des sauvegardes, créer un fichier /etc/logrotate.d/ldap-dumps:

/dumps/ldap/ldap.ldif.gz {
        rotate 60
        daily
        nocopytruncate
        sharedscripts
        postrotate
                slapcat | gzip > /dumps/ldap/ldap.ldif.gz
        endscript
}

Pour restaurer:

/etc/init.d/slapd stop
rm -rf /var/lib/ldap/*
zcat /dumps/ldap/ldap.ldif.gz | slapadd
/etc/init.d/slapd start


qg

Interface de visualisation/édition.

Pas dispo sous Lenny (mainteneur pas actif depuis 2 ans), on peut le compiler à la main:

wget http://freefr.dl.sourceforge.net/sourceforge/gqclient/gq-1.2.3.tar.gz
tar xzf gq-1.2.3.tar.gz
cd gq-1.2.3
# Required
apt-get install build-essential
apt-get install libgtk2.0-dev libglib2.0-dev libxml2-dev libgnome-keyring-dev libglade2-dev libxml-parser-perl libldap2-dev
# Optional
apt-get install libkrb5-dev libsasl2-dev libssl-dev
./configure
make
sudo make install

phpldapadmin

Interface de visualisation/édition par le web

apt-get install apache2 libapache2-mod-php5
apt-get install phpldapadmin

Configuration minimale

/etc/ldap/slapd.conf:

pidfile /var/run/slapd/slapd.pid
modulepath /usr/lib/ldap
moduleload back_bdb
include /etc/ldap/schema/core.schema
sizelimit unlimited

# DB n1
database bdb
directory /var/lib/ldap
suffix "dc=example,dc=com"
#suffix "dc=com"
#suffix ""
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret

Initialisation de la base

Normalement debconf le fait pour vous, mais en cas de besoin:

  • init.ldif:
dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: Example Company
dc: example

dn: cn=Manager,dc=example,dc=com
objectclass: organizationalRole
cn: Manager

Pour l'importer:

slapadd < init.ldif

Mot de passe pré-crypté pour récupération d'accès:

{crypt}aPvwX2n83KsTA = 'test'

Liens

Outils personnels