Outils pour utilisateurs

Outils du site


admin:services:nss

< 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 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
# /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

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 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.
admin/services/nss.txt · Dernière modification: 2020/04/26 13:23 de klafyvel