informatique:reseau:ldap:authentification_unix_via_sssd

Ceci est une ancienne révision du document !


Authentification UNIX via SSSd

apt install sssd sssd-ldap sssd-tools libpam-sss libnss-sss
  • 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

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]
  • en tant que root, lancer la commande pam-auth-update
  • dans l'interface, cocher Create home directory on login
  • valider sur <Ok>

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.

  • informatique/reseau/ldap/authentification_unix_via_sssd.1642010509.txt.gz
  • Dernière modification : 2022/01/12 18:01
  • de bn8