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.

touch /etc/sss/sssd.conf chmod 600 /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

Dans cet exemple:

le nom de domaine est domain.tld

le nom dns de votre serveur SME est sme.domain.tld

auth doit être un compte créé sur SME (un utilisateur classique)

p@ssw0rd est le mot de passe du compte auth

/etc/ssl/certs/sme-cacert.pem doit contenir la CA qui a signé le certificat de votre SME (/etc/ssl/certs/ca-certificates.crt si vous utilisez un certificat “officiel”)

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