DOCUMENTATION à l'arrache
Note: apparemment d'après http://wiki.debian.org/OpenLDAPSetup, il faut eviter d'installer
nscd, pareil dans la doc de Bind, car nscd parasite les résolutions de noms (apparemment).
installation:
apt-get install slapd ldap-utils db4.2-util
verseau:~# ls /etc/ldap/
schema slapd.conf
le fichier de configuration est ici slapd.conf
à cet instant une connexion à partir d'un poste client, via "LDAP browser" est possible:
pour avoir une sortie syslog assez verbeuse
nous renseignons la ligne suivante dans slapd.conf comme cela:
loglevel 264
et nous redemarrons par /etc/init.d/slapd restart
nous rajoutons aussi la ligne suivante dans /etc/syslog.conf:
local4.debug /var/log/slapd.log
et redemarons syslog.
exemple de log:
Mar 26 18:23:50 verseau slapd[13020]: slapd starting
Mar 26 18:23:50 verseau slapd[13020]: daemon: added 6r
Mar 26 18:23:50 verseau slapd[13020]: daemon: added 7r
Mar 26 18:23:50 verseau slapd[13020]: daemon: select: listen=6 active_threads=0 tvp=NULL
Mar 26 18:23:50 verseau slapd[13020]: daemon: select: listen=7 active_threads=0 tvp=NULL
Mar 26 18:24:06 verseau slapd[13020]: daemon: activity on 1 descriptors
Mar 26 18:24:06 verseau slapd[13020]: daemon: new connection on 10
Mar 26 18:24:06 verseau slapd[13020]: conn=0 fd=10 ACCEPT from IP=192.168.0.5:1249 (IP=0.0.0.0:389)
Mar 26 18:24:06 verseau slapd[13020]: daemon: added 10r
Mar 26 18:24:06 verseau slapd[13020]: daemon: activity on:
définir le rootdn n''est apparemment pas une obligation
maintenant je défini le rootdn (c'est le compte du super administrateur)
donc dans le fichier slapd.conf
je rajoute les ligne suivantes:
rootdn "cn=admin,dc=athena,dc=home"
rootpw {SSHA}0t9Tz0iJde/o+x4vGiPXhqpiT5D779aJ
le mot de passe à été généré avec la commande slappasswd
REMARQUE: le rootdn à "apparement" été défini lors de l'installation de slapd, mais je ne vois aucune
mention du rootdn et de son mot de passe .
en redémarrant slapd j'ai le message suivant: BDB recovery
et je ne sait pas pourquoi.
peuplons l'annuaire:
apt-get install migrationtools
~# cd /usr/share/migrationtools
~# LDAPADD="/usr/bin/ldapadd -c" ETC_ALIASE=/dev/null ./migrate_all_online.sh
la migration des comptes unix vers LDAP est faite.
sur nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: compat ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
sur libnss-ldap.conf
modification du fichier:
host 127.0.0.1
base dc=athena,dc=home
binddn cn=admin,dc=athena,dc=home
bindpw mon password
nss_base_passwd ou=People,dc=athena,dc=home?one
nss_base_shadow ou=People,dc=athena,dc=home?one
nss_base_group ou=Group,dc=athena,dc=home?one
ATTENTION: il mettre le mot de passe en clair et non en crypté
il y a peut être moyen de le crypter mais je ne sais pas encore comment,
cela doit expliquer la présence du fichier ldap.secret qui est en 600 :-))
dans le doute je maintient un mot de passe dans libnss-ldap.conf pour les tests
il faut veiller à ce que la communication s' établisse bien entre les clients et slapd
l'authentification local doit utiliser l'adresse 127.0.0.1
chez moi en intranet un netstat -natp | grep 389 donne:
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 14254/slapd
tcp 0 0 127.0.0.1:43609 127.0.0.1:389 ESTABLISHED16259/-bash
tcp 0 0 192.168.0.3:389 192.168.0.5:1092 ESTABLISHED14254/slapd
tcp 0 0 127.0.0.1:389 127.0.0.1:43609 ESTABLISHED14254/slapd
tcp6 0 0 :::389 :::* LISTEN 14254/slapd
donc pas de pb !
apt-get install libpam-ldap
dans /etc/pam_ldap.conf
host 127.0.0.1
base dc=athena,dc=home
rootbinddn cn=admin,dc=athena,dc=home
nss_base_passwd ou=People,dc=athena,dc=home?one
nss_base_shadow ou=People,dc=athena,dc=home?one
nss_base_group ou=Group,dc=athena,dc=home?one
authentification ssh et ftp:
dans /etc/pam.d/
dans common-account:
account sufficient pam_ldap.so
account required pam_unix.so
dans common-auth:
auth sufficient pam_ldap.so
auth required pam_unix.so try_first_pass nullok_secure
dans common-password:
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
j'ai renseigné paramétrage de base de postfix pour ldap
avec les lignes suivantes
ldap_server = localhost
ldap_search_base = ou=People,dc=athena,dc=home
la compatibilité avec sasl est assuré
dans le fichier /etc/default/sasl, par la ligne
MECHANISMS="pam"
ANNEXE
peuplement
création de l'OU personnes (tiré du bouquin LDAP d'Oreilly)
renseigner les lignes suivantes dans un fichier:
dn: ou=personnes,dc=athena,dc=home
ou: personnes
objectClass: organizationalUnit
inserer le fichier dans l'annuaire:
/etc/init.d/slapd stop
(avec ldapmodify, il y a moyen de modifier a chaud l'annuaire)
verseau:/tmp# slapadd -v -l personnes.ldif
added: "ou=personnes,dc=athena,dc=home" (00000003)
vérifions:
verseau:/tmp# ldapsearch -x -b "dc=athena,dc=home" "(objectClass=*)"
# extended LDIF
#
# LDAPv3
# base with scope sub
# filter: (objectClass=*)
# requesting: ALL
#
# athena.home
dn: dc=athena,dc=home
objectClass: top
objectClass: dcObject
objectClass: organization
o: athena.home
dc: athena
# admin, athena.home
dn: cn=admin,dc=athena,dc=home
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# personnes, athena.home
dn: ou=personnes,dc=athena,dc=home
ou: personnes
objectClass: organizationalUnit
# search result
search: 2
result: 0 Success
# numResponses: 4
# numEntries: 3
toujour sur le meme principe je me rajoute dans l'OU personnes:
less /tmp/antonio.ldif
dn: cn=Antonio E. Moscato,ou=personnes,dc=athena,dc=home
cn: Antonio E. Moscato
sn: Moscato
mail: antonio@architux.com
mail: antonio@no-log.org
labeledURI: http://www.architux.com/
roomNumber: archituxland
departmentNumber: administration
telephoneNumber: 06 20 56 07 90
mobile: 06 20 56 07 90
objectclass: inetOrgPerson
puis
verseau:/tmp# slapadd -v -l antonio.ldif
added: "cn=Antonio E. Moscato,ou=personnes,dc=athena,dc=home" (00000004)
et restart de slapd