La première étape est d'installer les paquets nécessaires:
emerge sys-auth/sssd
Si besoin, installer aussi les certificats racine de confiance:
emerge app-misc/ca-certificates
sssd se configure de manière classique (idem Ubuntu et Fédora par exemple). Il faut d'abord définir les domaines utilisés (dans /etc/sssd/sssd.conf):
# SSSD will not start if you do not configure any domains. # Add new domain configurations as [domain/<NAME>] sections, and # then add the list of domains (in the order you want them to be # queried) to the "domains" attribute below and uncomment it. ; domains = LOCAL,LDAP domains = SME
Puis, vers la fin du fichier, ajouter la configuration de ce domaine
[domain/SME] 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 = something_very_secret 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/ca-certificates.crt ldap_id_use_start_tls = true # à dé-commenter si votre serveur SME est une iPasserelle # ldap_user_shell = desktopLoginShell cache_credentials = true enumerate = true # Il est possible de limiter l'accès via un filtre LDAP en # dé-commentant ces deux lignes. Dans cet exemple, seuls les # membres du groupe netusers seront valides sur cet hôte # posixMemberOf est un attribut disponible uniquement sur une iPasserelle # access_provider = ldap # ldap_access_filter = posixMemberOf=netusers
Le mieux pour vérifier que tout fonctionne est de lancer sssd en interractif:
sssd -i -d 5
Une fois que tout est OK, il ne reste qu'à lancer sssd et le configurrer pour qu'il se lance automatiquement
/etc/init.d/sssd start rc-update add sssd default
Pour que NSS puisse utiliser sssd comme backend, il faut éditer /etc/nsswitch.conf, et rajouter sss comme source d'utilisateurs et de groupe. Cette étape se fait normalement toute seule
[...] passwd: files sss shadow: files sss group: files sss [...] netgroup: files sss
Une fois cette modification effectuée, on peut vérifier si ça fonctionne, la commande
getent passwd
devrait lister les utilisateurs LDAP. Si ce n'est pas le cas, pas la peine d'aller plus loin. Il faut débuguer (en lançant sssd en mode interractif avec sssd -i -d 5 par exemple)
Il ne reste plus qu'à configurer pam pour que lui aussi utilise sssd comme source.
cp -a /etc/pam.d/system-auth /etc/pam.d/system-auth.pre_sssd cat <<'EOF'> /etc/pam.d/system-auth auth required pam_env.so auth sufficient pam_unix.so try_first_pass likeauth nullok auth sufficient pam_sss.so use_first_pass auth required pam_deny.so account required pam_unix.so account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow password sufficient pam_sss.so use_authtok password required pam_deny.so session required pam_limits.so session required pam_env.so session optional pam_mkhomedir.so skel=/etc/skel umask=0077 session required pam_unix.so session optional pam_sss.so session optional pam_permit.so EOF