[[: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''.