====== 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:
* 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