2010-03-25 Ldap
Un article de Cenabumiki.
- Le portnawak fut composé de deux parties : partie théorique, partie pratique (installation serveur LDAP, manipulations, etc)
- Voici le support PDF de la partie théorique (par Nicolas G.)
- Voilà le contenu du TP de Nicolas pour ce Portnawak LDAP (en Creative Commons)
----
|---------------------|
| SERVEUR |
|---------------------|
apt-get install slapd
apt-get install ldap-utils
mv /etc/ldap/slapd.conf
/etc/init.d/slapd stop
/etc/ldap/slapd.conf ->
basedn = dc=prenom,dc=fr
rootdn "cn=admin,dc=prenom,dc=fr"
rootpw {SSHA}... => slappasswd
- racine -
Créer un fichier racine.ldif :
dn: dc=nico,dc=fr
objectClass: domain
dc: nico
L'ajouter :
root@serv:/etc/ldap# ldapadd -h localhost -D 'cn=admin,dc=nico,dc=fr' -x -W -f /root/ldap/racine.ldif
Enter LDAP Password:
adding new entry "dc=nico,dc=fr"
- people -
Créer un fichier people.ldif :
dn: ou=people,dc=nico,dc=fr
ou: people
objectClass: top
objectClass: organizationalUnit
L'ajouter :
root@serv:/etc/ldap# ldapadd -h localhost -D 'cn=admin,dc=nico,dc=fr' -x -W -f /root/ldap/people.ldif
Enter LDAP Password:
adding new entry "ou=people,dc=nico,dc=fr"
- groups -
Créer un fichier group.ldif :
dn: ou=group,dc=nico,dc=fr
ou: group
objectClass: top
objectClass: organizationalUnit
root@serv:/etc/ldap# ldapadd -h localhost -D 'cn=admin,dc=nico,dc=fr' -x -W -f /root/ldap/group.ldif
Enter LDAP Password: adding new entry "ou=group,dc=nico,dc=fr"
- compte système & upg -
Créer un fichier user.ldif :
dn: uid=ngreneche,ou=people,dc=nico,dc=fr
uid: ngreneche
cn: Nicolas GRENECHE
givenName: Nicolas
sn: GRENECHE
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {SSHA}XXXX
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/nfs/ngreneche
gecos: Nicolas GRENECHE
dn: cn=ngreneche,ou=group,dc=nico,dc=fr
objectClass: posixGroup
cn: ngreneche
gidNumber: 2000
root@serv:/etc/ldap# ldapadd -h localhost -D 'cn=admin,dc=nico,dc=fr' -x -W -f /root/ldap/groupposix.ldif
Enter LDAP Password:
adding new entry "cn=ngreneche,ou=people,dc=nico,dc=fr"
adding new entry "cn=ngreneche,ou=group,dc=nico,dc=fr"
- Tests -
root@serv:/etc/ldap# ldapsearch -x -h localhost -b 'dc=nico,dc=fr'
root@serv:/etc/ldap# ldapsearch -x -h localhost -b 'dc=nico,dc=fr' -D 'uid=ngreneche,ou=people,dc=nico,dc=fr' -W
- Passage en SSL -
mkdir /etc/ldap/ssl
cd /etc/ldap/ssl
openssl genrsa -out server.key 1024
openssl req -new -x509 -days 365 -key server.key -out server.crt
chown -R openldap:openldap ../ssl
chmod 444 server.crt
chmod 400 server.key
/etc/ldap/slapd.conf :
TLSCertificateFile /etc/ldap/ssl/server.crt
TLSCertificateKeyFile /etc/ldap/ssl/server.key
/etc/default/slapd :
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
debug :
root@serv:/etc/ldap/ssl# slapd -d 16383 -g openldap -u openldap -f /etc/ldap/slapd.conf
|---------------------| | CLIENT | |---------------------|
apt-get install ldap-utils
ldapsearch -x -H ldap://srvldap -b 'dc=nico,dc=fr'
- Activation de SSL -
/etc/ldap/ldap.conf :
BASE dc=nico,dc=fr
URI ldaps://srvldap.univ-orleans.fr:636
TLS_CACERT /etc/ldap/ssl/server.crt
ldapsearch -x
- Reco users -
root@nico-desktop:~# apt-get install libnss-ldap nscd
root@nico-desktop:~# ln -s /etc/ldap/ldap.conf /etc/libnss-ldap.conf
root@nico-desktop:~# rm /etc/ldap.conf
root@nico-desktop:~# ln -s /etc/ldap/ldap.conf /etc/ldap.conf
Dans /etc/nsswitch.conf :
passwd: files ldap
group: files ldap
shadow: files ldap
Dans /etc/ldap/ldap.conf :
ldap_version 3
scope sub
pam_login_attribute uid
nss_base_passwd ou=people,dc=nico,dc=fr
nss_base_shadow ou=people,dc=nico,dc=fr
nss_base_group ou=group,dc=nico,dc=fr
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,games,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,news,polkituser,proxy,root,sshd,statd,sync,sys,syslog,uucp,www-data
getent passwd
id ngreneche
su ngreneche
- Auth users -
root@nico-desktop:~# apt-get install libpam-ldap libpam-cracklib'
root@nico-desktop:~# auth-client-config -a -p ldap_example
|---------------------| | SERVEUR | |---------------------|
- Retirer le service LDAP en clair -
/etc/default/slapd :
retirer méthode ldap:///
- Activer les comptes -'
root@srvldap:~# ln -s /etc/ldap/ldap.conf /etc/libnss-ldap.conf
root@srvldap:~# rm /etc/ldap.conf
root@srvldap:~# ln -s /etc/ldap/ldap.conf /etc/ldap.conf
/etc/ldap/ldap.conf :
BASE dc=nico,dc=fr
URI ldaps://srvldap.univ-orleans.fr:636
TLS_CACERT /etc/ldap/ssl/server.crt
scope sub
ldap_version 3
pam_login_attribute uid
nss_base_passwd ou=people,dc=nico,dc=fr nss_base_shadow ou=people,dc=nico,dc=fr nss_base_group ou=group,dc=nico,dc=fr
- Pas d'auth des users LDAP -
- Montage NFS -
root@srvldap:~# apt-get install nfs-kernel-server
mkdir /ext/nfs/ngreneche
chown ngreneche:ngreneche /ext/nfs/ngreneche
/etc/exports :
/ext/nfs client-hostname(rw,sync,no_subtree_check)
root@srvldap:~# /etc/init.d/nfs-kernel-server restart
|---------------------| | CLIENT | |---------------------|
mkdir /home/nfs
root@nico-desktop:~# apt-get install autofs
/etc/auto.master :
/home/nfs /etc/auto.home
/etc/auto.home :
* -fstype=nfs,soft srvldap.univ-orleans.fr:/ext/nfs/&
root@nico-desktop:~# /etc/init.d/autofs restart
su - ngreneche

