Table des matières

Authentifier un poste Gentoo sur SME avec SSSD

Installer les paquets

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

Configurer sssd

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

Configurer nss

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)

Configurer pam

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