Ceci est une ancienne révision du document !
Authentification UNIX via SSSd
Installation
apt install sssd sssd-ldap sssd-tools libpam-sss libnss-sss
Configuration
- Créer le fichier /etc/sssd/sssd.conf :
[sssd] config_file_version = 2 reconnection_retries = 3 sbus_timeout = 30 domains = example debug_level = 2 [nss] filter_groups = root filter_users = root reconnection_retries = 3 fallback_homedir = /tmp shell_fallback = /bin/bash debug_level = 2 [pam] reconnection_retries = 3 debug_level = 2 [domain/example] timeout = 5 min_id = 100 max_id = 0 use_fully_qualified_names = false enumerate = true cache_credentials = true sudo_provider = none id_provider = ldap access_provider = ldap auth_provider = ldap ldap_uri = ldaps://ldap.example.com:636 ldap_tls_reqcert = demand ldap_search_base = o=example ldap_default_bind_dn = uid=sssd,ou=sysaccounts,o=example ldap_default_authtok_type = password ldap_default_authtok = secret_pwd ldap_schema = rfc2307 ldap_deref = always ldap_user_object_class = posixAccount ldap_user_search_base = ou=people,o=example ldap_access_filter = (myEnabled=TRUE) ldap_group_object_class = posixGroup ldap_group_search_base = ou=groups,o=example
- Ajuster les droits de ce nouveau fichier :
chown root:root /etc/sssd/sssd.conf chmod 0600 /etc/sssd/sssd.conf
- Redémarrer le service pour prise en compte :
service sssd restart
Il est possible de valider la configuration avec la commande suivante :
sssctl config-check
Configuration NSS
Activer sss pour les diverses services déclarer dans le fichier /etc/nsswitch.conf. Par exemple :
passwd: files systemd sss group: files systemd sss shadow: files sss gshadow: files hosts: files dns networks: files protocols: db files services: db files sss ethers: db files rpc: db files netgroup: nis sss automount: sss
Pour vérifier que les informations des utilisateurs remontent bien, plusieurs solutions :
getent passwd
id [username]
sssctl user-checks [username]
Création automatique des dossiers personnels des utilisateurs lors de leur première connexion
- en tant que
root
, lancer la commandepam-auth-update
- dans l'interface, cocher
Create home directory on login
- valider sur
<Ok>
Configuration de SSH
Il est possible de faire en sorte que les clés SSH publiques autorisées des utilisateurs soient récupérées dans l'annuaire LDAP (si elles y sont stockées).
Pour cela :
- Éditez le fichier /etc/sssd/sssd.conf :
- Dans la section de votre domain, ajouter :
ldap_user_ssh_public_key = mySshPubKey
- Redémarrer le service pour prise en compte :
service sssd restart
- Dans le fichier /etc/ssh/sshd_config, ajouter :
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandUser nobody
- Stopper puis redémarrer le service ssh pour prise en compte :
service ssh stop service ssh start
Il est possible de vérifier que cela fonctionne correctement en lançant la commande
sss_ssh_authorizedkeys
avec en paramètre le nom d'un utilisateur ayant saisi sa clé publique SSH dans l'annuaire : La commande doit alors normalement retourner la clé de l'utilisateur.
Remarque : il est pas indispensable que l'utilisateur soit autorisé à se connecter à cette machine (=passe le test du paramètre ldap_access_filter) pour que ce test fonctionne.