Table des matières

Authentifier un poste Ubuntu sur SME avec SSSD

Ce tuto nécessite une version de SME récente (>= SME 8b6). Il vous permettra d'authentifier un poste Ubuntu sur votre serveur SME, en utilisant l'annuaire LDAP. Grâce à SSSD, les identifiants pourront être mis en cache local, les comptes réseau seront donc utilisable même hors ligne.

Installer les paquets nécessaires

sudo apt install sssd libnss-sss libpam-sss auth-client-config

Configurer SSSD

La configuration de SSSD se passe dans le fichier /etc/sssd/sssd.conf.

cat <<'_EOF' > /etc/sssd/sssd.conf
[sssd]
config_file_version = 2
services = nss, pam
domains = LDAP
 
[nss]
 
[pam]
 
[domain/LDAP]
id_provider = ldap
auth_provider = ldap
ldap_schema = rfc2307
ldap_uri = ldap://sme.domain.tld
ldap_default_bind_dn = uid=auth,ou=Users,dc=domain,dc=tld
ldap_default_authtok = p@ssw0rd
ldap_default_authtok_type = password
ldap_search_base = dc=domain,dc=tld
ldap_user_search_base = ou=Users,dc=domain,dc=tld
ldap_group_search_base = ou=Groups,dc=domain,dc=tld
ldap_user_object_class = inetOrgPerson
ldap_user_gecos = cn
ldap_tls_reqcert = hard
ldap_tls_cacert = /etc/ssl/certs/sme-cacert.pem
ldap_id_use_start_tls = true
#ldap_user_shell = desktopLoginShell
cache_credentials = true
enumerate = true
access_provider = ldap
# ldap_access_filter = (|(posixMemberOf=equipe)(posixMemberOf=admins)(uid=backups))
_EOF
chmod 600 /etc/sssd/sssd.conf

Dans cet exemple:

Configurer le système pour utiliser SSSD comme source d'authentification

On va pour cela utiliser l'outil auth-client-config:

vim /etc/auth-client-config/profile.d/sss

Puis y placer les lignes suivantes:

[sss]
nss_passwd=     passwd:         compat sss
nss_group=      group:          compat sss
nss_shadow=     shadow:         compat
nss_netgroup=   netgroup:       nis

pam_auth=       auth    [success=3 default=ignore]      pam_unix.so nullok_secure try_first_pass
                auth    requisite                       pam_succeed_if.so uid >= 500 quiet
                auth    [success=1 default=ignore]      pam_sss.so use_first_pass
                auth    requisite                       pam_deny.so
                auth    required                        pam_permit.so

pam_account=    account required                                        pam_unix.so
                account sufficient                                      pam_localuser.so
                account sufficient                                      pam_succeed_if.so uid < 500 quiet
                account [default=bad success=ok user_unknown=ignore]    pam_sss.so
                account required                                        pam_permit.so

pam_password=   password        sufficient      pam_unix.so obscure sha512
                password        sufficient      pam_sss.so use_authtok
                password        required        pam_deny.so

pam_session=    session required                        pam_mkhomedir.so skel=/etc/skel/ umask=0077
                session optional                        pam_keyinit.so revoke
                session required                        pam_limits.so
                session [success=1 default=ignore]      pam_sss.so
                session required                        pam_unix.so

Il ne reste plus qu'à activer le tout:

sudo auth-client-config -a -p sss