Client Authentication:Debian via sssd/ldap/fr
Est-ce que cet article vous a été utile ?
Svp, envisagez de faire un don ou du volontariat.
Merci !
Introduction
Ce tutoriel indique comment configurer un serveur KOOZALI (version >= 8b6) et un client Debian (méthode testée avec Debian Squeeze) pour une authentification LDAP au moyen de SSSD d'une machine cliente sur les comptes configurés d'un utilisateur d'un serveur SME.
Le principal avantage en comparaison avec nss_ldap est que les informations d'authentification restent dans le cache et que l'authentification peut néanmoins continuer à se faire, même en mode déconnecté (quand le serveur n'est plus accessible).
Néanmoins, la création d'un utilisateur local avec les droits d'administrateur est recommandée pour le cas d'urgence.
Ces lignes sont une traduction de la méthode donnée par Daniel B. : https://wikit.firewall-services.com/doku.php/tuto/ipasserelle/authentification/debian_sssd_on_sme. Un grand merci à lui pour cela.
Dans ce tutoriel, nous supposons que le nom d'hôte du serveur SME KOOZALI est «sme-server» et que le domaine est «domain.tld».
Configuration du serveur SME KOOZALI
Il n'y a pas de configuration nécessaire du serveur SME.
La seule chose à faire est de créer un utilisateur (nommé «auth» dans ce tutoriel) via le gestionnaire de serveur et de lui donner un mot de passe valide («quelque_chose_de_tres_secret» dans le tutoriel).
Il n'est pas nécessaire que «auth» soit membre d'un groupe.
De plus, il est recommandé d'installer et de configurer PHPki afin de faciliter la gestion des certificats auto-créés.
Configuration du client Debian
Gérer l'AC (l’autorité de certification) du SME
Après avoir installé PHPki, allez sur https: //sme-server.domain.tld/phpki et téléchargez sur le poste client le certificat d'autorité (ca-certificates.crt).
Placez une copie de celui-ci ou d'une autre autorité de certification dans /etc/ssl/certs/ et donnez les permissions 644 :
cp ~/download/ca-certificates.crt /etc/ssl/certs/
chmod 644 /etc/ssl/certs/ca-certificates.crt
Installer les paquets requis
apt-get install sssd libnss-sss libpam-sss ca-certificates
Configurer sssd
La configuration est dans le fichier /etc/sssd/sssd.conf.
- Au début de ce fichier, le domaine utilisé doit être configuré. Dans sssd, un domaine peut être défini comme une source de contenu. Il est possible de configurer plusieurs domaines par ordre de priorité.
- Et plus loin dans le fichier, nous ajouterons la configuration du domaine.
Si le fichier n'existe pas par défaut, il doit être créé et a besoin de recevoir les permissions 600 pour permettre au démon de démarrer :
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-server.domain.tld ldap_default_bind_dn = uid=auth,ou=Users,dc=domain,dc=tld ldap_default_authtok = quelque_chose_de_tres_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 # uncomment below if the SME is a iPasserelle #ldap_user_shell = desktopLoginShell # comment below if the SME is a iPasserelle override_shell = /bin/bash cache_credentials = true enumerate = true # It is possible to filter the logins via a LDAP-filer # by commenting the both lines below. # In this exemple, only the users member of the group netusers # will be valid on this host. # posixMemberOF is a parameter only for an iPasserelle #access_provider = ldap #ldap_access_filter = (|(posixMemberOf=admins)(uid=backup)) _EOF chmod 600 /etc/sssd/sssd.conf
N.B. : iPasserelle est une solution Firewall Services calquée sur le serveur SME KOOZALI.
nsswitch
Éditer /etc/nsswitch.conf et ajouter «sss» pour passwd, group et shadow :
passwd: compat sss group: compat sss shadow: compat sss
pam
cd /etc/pam.d cp -a common-account common-account.orig cat <<'EOF'> common-account # # /etc/pam.d/common-account - authorization settings common to all services # account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so # here's the fallback if no module succeeds account requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around account required pam_permit.so # and here are more per-package modules (the "Additional" block) session optional pam_mkhomedir.so skel=/etc/skel umask=0077 account [default=bad success=ok user_unknown=ignore] pam_sss.so EOF cp -a common-auth common-auth.orig cat <<'EOF'> common-auth # # /etc/pam.d/common-auth - authentication settings common to all services # # here are the per-package modules (the "Primary" block) auth [success=2 default=ignore] pam_sss.so auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass # here's the fallback if no module succeeds auth requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around auth required pam_permit.so # and here are more per-package modules (the "Additional" block) EOF cp -a common-password common-password.orig cat <<'EOF'> common-password # # /etc/pam.d/common-password - password-related modules common to all services # here are the per-package modules (the "Primary" block) password sufficient pam_sss.so password [success=1 default=ignore] pam_unix.so obscure try_first_pass sha512 # here's the fallback if no module succeeds password requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around password required pam_permit.so # and here are more per-package modules (the "Additional" block) EOF cp -a common-session common-session.orig cat <<'EOF'> common-session # # /etc/pam.d/common-session - session-related modules common to all services # # here are the per-package modules (the "Primary" block) session [default=1] pam_permit.so # here's the fallback if no module succeeds session requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around session required pam_permit.so # and here are more per-package modules (the "Additional" block) session optional pam_mkhomedir.so skel=/etc/skel umask=0077 session optional pam_sss.so session required pam_unix.so EOF
Activer au démarrage
update-rc.d sssd enable /etc/init.d/sssd start