Table des matières
< retour à la page de l'administration technique
NSS permet d'utiliser plusieurs sources d'authentification, dont LDAP, pour l'accès aux serveurs.
Installation
apt install libpam-ldapd libnss-ldapd nslcd
Lors de l'installation, il faut spécifier :
- les serveurs LDAP à utiliser :
ldaps://ldap.federez.net ldaps://ldap-ro.federez.net
- les services à fournir via cette source :
passwd
,group
etshadow
. La lignesudoers
permet àsudo
d'utiliser les groupes LDAP même en présence du cachenscd
.
Il faut préciser les paramètres de recherche dans /etc/nslcd.conf
(les ou
pour les utilisateurs et les groupes POSIX, ainsi que les mappings) dans /etc/nslcd.conf
. Pour FedeRez, on cherche les utilisateurs posixUser
dans cn=Utilisateurs,dc=federez,dc=net
et les groupes posixGroup
dans ou=posix,ou=groups,dc=federez,dc=net
.
Le fichier de conf résultant devrait être le suivant :
- /etc/nslcd.conf
# /etc/nslcd.conf # nslcd configuration file. See nslcd.conf(5) # for details. # The user and group nslcd should run as. uid nslcd gid nslcd # The location at which the LDAP server(s) should be reachable. uri ldaps://ldap.federez.net uri ldaps://ldap-ro.federez.net # The search base that will be used for all queries. base dc=federez,dc=net base passwd cn=Utilisateurs,dc=federez,dc=net base shadow cn=Utilisateurs,dc=federez,dc=net base group ou=posix,ou=groups,dc=federez,dc=net # The LDAP protocol version to use. ldap_version 3 # The DN to bind with for normal lookups. binddn cn=nssauth,ou=service-users,dc=federez,dc=net bindpw ********TOP-SECRET-PASSWORD-THAT-MUST-BE-CHANGED-FOR-A-VALID-ONE******** # SSL options # The LDAP server uses a Let's Encrypt certificate ssl on tls_cacertfile /etc/ssl/certs/ca-certificates.crt tls_reqcert demand # The search scope. #scope sub
Redémarrer le service :
service nslcd restart
Pour faciliter les tests et le debug, il est pratique de désactiver le caching :
service nscd stop
Pour vérifier que le service fonctionne, vérifier que les utilisateurs LDAP sont affichés par la commande suivante :
getent passwd
sudo
Pour que sudo continue à marcher avec l'authentification LDAP et quand nscd
tourne, il faut ajouter la ligne suivante à la fin de /etc/nsswitch.conf
:
sudoers: files ldap
À FedeRez, on utilise le groupe sudoldap
pour les accès sudo, d'où la ligne suivante ajoutée en visudo
:
%sudoldap ALL=(ALL:ALL) ALL
SSH
A la fin de /etc/ssh/sshd_config
, rajouter :
AllowGroups root ssh federezadmin
Redémarrer le serveur ssh :
systemctl restart ssh.service
PAM
PAM est toujours là pour l'authentification et peut aussi être configuré.
Home directories
Ajouter la ligne suivante à la fin de /etc/pam.d/common-session
:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
Liens
- Wiki Debian : http://wiki.debian.org/LDAP/NSS et http://wiki.debian.org/LDAP/PAM
Configuration
- /etc/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 sudoers: files ldap
Problèmes récurents
- Certains utilisateurs n'arrivent pas à se connecter alors que toute la configuration semble bonne. Cela peut être dû tout simplement à l'absence du shell configuré dans LDAP. On le voit avec un
tail -f /var/log/auth.log
. Cela se règle simplement en installant le shell en question (par exemplezsh
). - Parfois quand un utisateur ne peut pas se sudo c'est à cause du cache. On peut vider le cache nscd avec
nscd -i group
.