Tuto Server Guide LDAP Ubuntu

Faire uniquement :

Installation
Post-install Inspection
Modifying/Populating your Database
...
LDAP Authentication
User and Group Management
Backup and Restore
Resources

Installation

sudo apt install slapd ldap-utils

sudo dpkg-reconfigure slapd
$ cd /
$ sudo mkdir -p /export/home

Post-install Inspection

ldapsearch -x -LLL -H ldap:/// -b dc=grp8,dc=grit,dc=lab dn

Modifying/Populating your Database

Créer un fichier add_content.ldif file :

dn: ou=Users,dc=grp8,dc=grit,dc=lab
objectClass: organizationalUnit
ou: Users

dn: ou=Groups,dc=grp8,dc=grit,dc=lab
objectClass: organizationalUnit
ou: Groups

dn: ou=Machines,dc=grp8,dc=grit,dc=lab
objectClass: organizationalUnit
ou: Machines

dn: cn=enseignant,ou=Groups,dc=grp8,dc=grit,dc=lab
objectClass: posixGroup
cn: enseignant
gidNumber: 5000

dn: uid=john,ou=Users,dc=grp8,dc=grit,dc=lab
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 10000
gidNumber: 5000
userPassword: johnldap
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /export/home/john

Enregistrer les infos en base LDAP :

ldapadd -x -D cn=admin,dc=grp8,dc=grit,dc=lab -W -f add_content.ldif

Test de user john :

ldapsearch -x -LLL -b dc=grp8,dc=grit,dc=lab 'uid=john' cn gidNumber

User and Group Management

Note
On ne met jamais le serveur LDAP en client LDAP.
sudo apt install ldapscripts
    cd /etc/ldapscripts/
    sudo cp ldapscripts.conf ldapscripts.conf.origin
    SERVER=ldap://10.8.1.202
    BINDDN='cn=admin,dc=grp8,dc=grit,dc=lab' # aussi utilite pour Apache Directory Studio
    BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
    SUFFIX='dc=grp8,dc=grit,dc=lab'
    GSUFFIX='ou=Groups'
    USUFFIX='ou=Users'
    MSUFFIX='ou=Machines'
    #NPO
    USHELL="/bin/bash"
    UHOMES="/export/home/%u"     # You may use %u for username here
    CREATEHOMES="yes"      # Create home directories and set rights ?
    HOMESKEL="/etc/skel"  # Directory where the skeleton files are located. Ignored if undefined or nonexistant.
Now, create the ldapscripts.passwd file to allow rootDN access to the directory:
    sudo sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd"
    sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd
Note
Après les verifs via Apache Directory Studio help.ubuntu.com/lts/serverguide/network-file-system.html

Client LDAP

Le principe de cette partie est de mettre en place un client ldap qui va se connecter au serveur ldap.

Installer libnss

sudo apt install libnss-ldap

WARN SUR LA PREMIERE FENETRE RETIRER LE I DE LDAPI://

ldap://<ip>

WARN ATTENTION AUX PUTAIN DE TOUCHE ALT ET CTRL

Si vous vous êtes trompé, vous pouvez recommencer avec un reconfigure

sudo dpkg-reconfigure ldap-auth-config
sudo auth-client-config -t nss -p lac_ldap

Choisir les mode d’authentification

sudo pam-auth-update

verifier que ldap authentification est bien coché et laisser le reste

TEST :

Maintenant vous pouvez tester de vous connecter

su pomportes

ça fonctionne mais on n’a pas accès au dossier personnel de l’utilisateur.

Il faut maintenant monter le dossier personnel de l’utilisateur sur la machine.

NFS

Note
il faudra installer > nfs-common < sur client et serveur
sudo apt install nfs-kernel-server nfs-common
sudo nano /etc/exports

Ajouter la ligne au fichier exports

/export/home/ 10.8.0.0/24(rw,sync,no_subtree_check,root_squash)

sudo service nfs-kernel-server start #ou restart
showmount -e

Côté client

sudo apt nfs-common
cd / && sudo mkdir -p /export/home
sudo mount ldap.grp8.grit.lab:/export/home /export/home

On se connecte ensuite en utilisateur ldap sur notre machine ubuntu-client.