[[:admin|< retour à la page de l'administration technique]]
[[http://en.wikipedia.org/wiki/Name_Service_Switch|NSS]] permet d'utiliser plusieurs sources d'authentification, dont [[doc:ldap|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'' et ''shadow''. La ligne ''sudoers'' permet à ''sudo'' d'utiliser les groupes LDAP même en présence du cache ''nscd''.
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
# 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 =====
[[http://en.wikipedia.org/wiki/Pluggable_Authentication_Modules|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 =====
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 exemple ''zsh'').
* Parfois quand un utisateur ne peut pas se sudo c'est à cause du cache. On peut vider le cache nscd avec ''nscd -i group''.