LDAP ( Lightweight Directory Access Protocol ) est un protocole qui permet d’accéder à des bases d’informations sur les utilisateurs d’un réseau par l’intermédiaire de protocoles TCP/IP.
Dans ce guide nous allons voir comment configurer l’authentifcation sur openLDAP pour permettre au clients de s’authentifier sur le serveur ldap. Je suppose donc que vous avez déja un serveur OpenLDAP installé et configuré sur CentOS 8, si ce n’est pas le cas je vous suggère de suivre les deux guide ci-dessous :
Vous devriez donc suivre ces deux artciles avant de continuer..
Installation du package nécessaire :
Installer le module d’authetification LDAP nss-pam-ldapd :
[root@server]# dnf install nss-pam-ldapd
Last metadata expiration check: 23:57:24 ago on Sat 21 Aug 2021 08:43:07 AM EDT.
Dependencies resolved.
Package Architecture Version Repository Size
Installing:
nss-pam-ldapd x86_64 0.9.9-3.el8 ol8_appstream 189 k
Transaction Summary
Install 1 Package
Total download size: 189 k
Installed size: 498 k
Is this ok [y/N]: y
Configuration de nss-pam-ldapd
Editez le fichier de cpnfiguration de nss-pam-ldapd (/etc/nslcd.conf) et remplacer ce qui est en gras par ce qui vous correspond :
Rappel : « bindpw sysuser » corespond au mot de passe de l’utilisateur système qui se charge de traduire les UID et GID.
uri ldap://server.monsite.com/ #The distinguished name of the search base. base dc=monsite,dc=com #The distinguished name to bind to the server with. #Optional: default is to bind anonymously. binddn cn=sysuser,ou=system,dc=monsite,dc=com #The credentials to bind with. #Optional: default is no credentials. #Note that if you set a bindpw you should check the permissions of this file. bindpw sysuser #The distinguished name to perform password modifications by root by. rootpwmoddn cn=admin,dc=monsite,dc=com #The default search scope. #scope sub #scope one #scope base #Customize certain database lookups. base group ou=groups,dc=monsite,dc=com base passwd ou=people,dc=monsite,dc=com #base shadow ou=People,dc=example,dc=com #scope group onelevel #Bind/connect timelimit. bind_timelimit 30 #Search timelimit. timelimit 30
Redémarrer ensuite le service ns et mettez le en enable:
[root@server openldap]# systemctl enable nslcd [root@server openldap]# systemctl restart nslcd [root@server openldap]# systemctl status nslcd ● nslcd.service - Naming services LDAP client daemon. Loaded: loaded (/usr/lib/systemd/system/nslcd.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-08-22 09:06:45 EDT; 6s ago Docs: man:nslcd(8) man:nslcd.conf(5) Process: 82711 ExecStart=/usr/sbin/nslcd (code=exited, status=0/SUCCESS) Main PID: 82713 (nslcd) Tasks: 6 (limit: 4190) Memory: 1.3M CGroup: /system.slice/nslcd.service └─82713 /usr/sbin/nslcd
Créer un profile authselect :
authselect mettra automatiquement à jour les fichiers de configuration correspondants. Malheureusement, il n’a pas de profil pour nss-pam-ldapd, vous devez donc en créer un.
Le moyen le plus simple de le faire est de copier et de modifier le profil sssd. Exécutez les commandes suivantes pour ce faire :
[root@server]# cp -Rp /usr/share/authselect/default/sssd /etc/authselect/custom/nslcd [root@server]# cd /etc/authselect/custom/nslcd [root@server nslcd]# sed -i 's/sss/ldap/g' fingerprint-auth [root@server nslcd]# sed -i 's/sss/ldap/g' password-auth [root@server nslcd]# sed -i 's/sss/ldap/g' smartcard-auth [root@server nslcd]# sed -i 's/sss/ldap/g' system-auth [root@server nslcd]# sed -i 's/sss/ldap/g' nsswitch.conf [root@server nslcd]# sed -i 's/SSSD/NSLCD/g' REQUIREMENTS
Activation et Test LDAP :
Avant de tester votre configuration LDAP, créez un répertoire pour l’utiisateur que vous avez créé dans l’article précedent :
[root@server]# mkdir /home/user1 [root@server]# chown 4500:4500 /home/user1/ [root@server]# ls -ld /home/user1/ drwxr-xr-x. 2 4500 4500 6 Aug 22 10:43 /home/user1/
authselect mettra à jour notre /etc/nsswitch.conf et /etc/pam.d/. Exécutez la commande suivante pour apporter les modifications nécessaires à l’activation de LDAP :
[root@server]# authselect select custom/nslcd --force Backup stored at /var/lib/authselect/backups/2021-08-22-14-53-28.JbQefO Profile "custom/nslcd" was selected. The following nsswitch maps are overwritten by the profile: passwd group netgroup automount services Make sure that NSLCD service is configured and enabled. See NSLCD documentation for more information.
Vérifier si UID et GID ont été traduit par les noms qui leur correspondant :
[root@server]# ls -l /home total 0 drwxr-xr-x. 2 user1 dev 6 Aug 22 10:43 user1
Notre configuration fonctionne correctement. Si cela ne fonctionne pas, essayez de redémarrer nslcd et vérifiez /var/log/messages
Test de l’authentification :
Connectez-vous avec votre utilisateur :
[root@server]# ssh -l user1 localhost The authenticity of host 'localhost (::1)' can't be established. ECDSA key fingerprint is SHA256:ANcRUYD3d/LAxB/cBMLgTmAuqBYRGvh0RC8Dd4rJlgE. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. user1@localhost's password: [user1@server ~]$
Et voilà notre utilisateur s’est bien authentifié 🙂 .
Migrer CentOS 7 vers Rocky Linux 9
passwd: authentication token manipulation error
Comment installer Docker sur Rocky Linux 9
Protocole du routage
Fail2Ban : How to protect Linux services