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 services = nss, pam 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
Configuration NSS
Activer sss pour les diverses services déclarer dans le fichier /etc/nsswitch.conf. Par exemple :
# /etc/nsswitch.conf passwd: compat sss group: compat sss shadow: compat sss gshadow: files hosts: files dns networks: files protocols: db files services: db files sss ethers: db files rpc: db files netgroup: nis sss sudoers: files sss
Création automatique des dossiers personnels des utilisateurs lors de leur première connexion
Ajouter la ligne suivante à la fin du fichier /etc/pam.d/common-session :
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077 silent
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 [sssd] ajouter le service ssh :
services = nss, pam, ssh
- 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
- Recharger la configuration du service ssh pour prise en compte :
service ssh reload