Difference between revisions of "Client Authentication:Debian via sssd/ldap/fr"
m |
|||
(11 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
==Introduction== | ==Introduction== | ||
− | Ce tutoriel indique comment configurer un serveur KOOZALI (>=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. | + | 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 authentification restent dans le cache peut néanmoins continuer à se faire, même en mode déconnecté (quand le serveur n'est plus accessible). | + | 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. | Néanmoins, la création d'un utilisateur local avec les droits d'administrateur est recommandée pour le cas d'urgence. | ||
Line 19: | Line 19: | ||
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». | 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 SME. | + | Il n'y a pas de configuration nécessaire du serveur SME. |
− | La seule chose à faire est de créer un utilisateur (nommé | + | 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 | + | Il n'est pas nécessaire que « auth » soit membre d'un groupe. |
− | De plus, il est recommandé d'installer et de configurer [[PHPki/fr|PHPki]] afin de faciliter la gestion des certificats auto- | + | De plus, il est recommandé d'installer et de configurer [[PHPki/fr|PHPki]] afin de faciliter la gestion des certificats auto-créés. |
==Configuration du client Debian== | ==Configuration du client Debian== | ||
==== Gérer l'AC (l’autorité de certification) du SME ==== | ==== Gérer l'AC (l’autorité de certification) du SME ==== | ||
− | Après avoir installé PHPki, allez sur https: // | + | 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 : | Placez une copie de celui-ci ou d'une autre autorité de certification dans /etc/ssl/certs/ et donnez les permissions 644 : | ||
Line 42: | Line 42: | ||
===Configurer sssd=== | ===Configurer sssd=== | ||
− | La configuration est dans le fichier / | + | 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é. | * 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é. | ||
Line 75: | Line 75: | ||
ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt | ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt | ||
ldap_id_use_start_tls = true | ldap_id_use_start_tls = true | ||
− | # uncomment below if the SME is a | + | # uncomment below if the SME is a iPasserelle |
#ldap_user_shell = desktopLoginShell | #ldap_user_shell = desktopLoginShell | ||
− | # comment below if the SME is a | + | # comment below if the SME is a iPasserelle |
override_shell = /bin/bash | override_shell = /bin/bash | ||
cache_credentials = true | cache_credentials = true | ||
Line 85: | Line 85: | ||
# In this exemple, only the users member of the group netusers | # In this exemple, only the users member of the group netusers | ||
# will be valid on this host. | # will be valid on this host. | ||
− | # posixMemberOF is a parameter only for | + | # posixMemberOF is a parameter only for an iPasserelle |
#access_provider = ldap | #access_provider = ldap | ||
#ldap_access_filter = (|(posixMemberOf=admins)(uid=backup)) | #ldap_access_filter = (|(posixMemberOf=admins)(uid=backup)) | ||
Line 92: | Line 92: | ||
chmod 600 /etc/sssd/sssd.conf | chmod 600 /etc/sssd/sssd.conf | ||
− | + | N.B. : iPasserelle est une solution Firewall Services calquée sur le serveur SME KOOZALI. | |
− | {{Tip box| | + | {{Tip box|type=Astuce :| soyez sûr(e) que le fichier /etc/ssl/certs/ca-certificates.crt contienne le CA (l'authorité de certification) qui a signé le certificat du serveur SME (si PHPki est utilisé, une version supérieure à 0,82-13 est requise).}} |
− | |||
===nsswitch=== | ===nsswitch=== | ||
− | + | Éditer /etc/nsswitch.conf et ajouter «sss» pour passwd, group et shadow : | |
passwd: compat sss | passwd: compat sss | ||
group: compat sss | group: compat sss | ||
Line 172: | Line 171: | ||
EOF | EOF | ||
− | === | + | ===Activer au démarrage=== |
update-rc.d sssd enable | update-rc.d sssd enable | ||
/etc/init.d/sssd start | /etc/init.d/sssd start | ||
− | + | ||
− | + | [[Category:Howto/fr]] |
Latest revision as of 15:31, 26 June 2022
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