Difference between revisions of "Client Authentication:Debian via sssd/ldap/fr"

From SME Server
Jump to navigationJump to search
m
 
(15 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
  
{{Warning box|This is based upon limited testing and a small number of users.}}
+
{{Warning box|type=Attention :| il a été établi à partir de tests limités d'un petit nombre d'utilisateurs.}}
  
 
==Introduction==
 
==Introduction==
This how-to shows how to configure a SME-server (>=8b6) and a client Debian (method tested with Debian squeeze) for a LDAP based SSSD authentication of the client machine on the configured user accounts of the 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.  
  
The main advantage in comparaison to nss_ldap is that the authentication informations stay in the cache and the authentication can therefore further work, even in  offline mode (when the server not available).
+
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).
  
Nevertheless, the creation of a local user with the admin rights is recommanded for the emergency case.
+
Néanmoins, la création d'un utilisateur local avec les droits d'administrateur est recommandée pour le cas d'urgence.
  
These lines are a translation of the method given by Daniel: https://wikit.firewall-services.com/doku.php/tuto/ipasserelle/authentification/debian_sssd_on_sme. Many thanks to him for it.
+
Ces lignes sont une traduction de la méthode donnée par Daniel B. : <nowiki>https://wikit.firewall-services.com/doku.php/tuto/ipasserelle/authentification/debian_sssd_on_sme</nowiki>. Un grand merci à lui pour cela.
  
In this how-to: we assume that:
+
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».
the host name of the SME is "sme-server" and the domain is "domain.tld".
 
  
==Configuration of the SME-server==
+
== Configuration du serveur SME KOOZALI ==
There is quite no necessary configuration of the SME.
+
Il n'y a pas de configuration nécessaire du serveur SME.
*The only thing to do is to create a user (named "auth" in this how-to) via the server-manager and to give him a valid password ("something_very_secret" in the how-to).
 
It is not required to make "auth" member of any group.
 
  
*In addition, it is recommended to install and configure [[PHPki]] in order to make the managing of the self-created certificates easier.
+
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.
  
==Configuration of the client Debian==
+
De plus, il est recommandé d'installer et de configurer [[PHPki/fr|PHPki]] afin de faciliter la gestion des certificats auto-créés.
  
===Manage the CA of the SME===
+
==Configuration du client Debian==
after having installed PHPki, go to https://www.domain.tld/phpki and download on the client machine the certificate of authority (ca-certificates.crt).
 
  
Place a copy of it or of another CA into /etc/ssl/certs/ and give the 644 permissions:
+
==== 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/
 
  cp ~/download/ca-certificates.crt /etc/ssl/certs/
 +
 
  chmod 644 /etc/ssl/certs/ca-certificates.crt
 
  chmod 644 /etc/ssl/certs/ca-certificates.crt
  
===Install the required packages===
+
====Installer les paquets requis====
 
  apt-get install sssd libnss-sss libpam-sss ca-certificates
 
  apt-get install sssd libnss-sss libpam-sss ca-certificates
  
===Configure sssd===
+
===Configurer sssd===
The configuration is made by the file /ets/sssd/sssd.conf.
+
La configuration est dans le fichier /etc/sssd/sssd.conf.
  
* At the beginning of this file, the used domain has to be set. In sssd, a domain can be taken as a source of content. it is possible to set several domains in order of priority.  
+
* 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é.  
* And deeper in the file, we will add the configuration of the domain
+
* 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
  
If the file doesn't exist by default it has to be created and it needs to get the permissions 600 to allow the daemon to start:
 
cat <<'_EOF' > /etc/sssd/sssd.conf
 
 
  [sssd]
 
  [sssd]
 
  config_file_version = 2
 
  config_file_version = 2
Line 64: Line 65:
 
  ldap_uri = ldap://sme-server.domain.tld
 
  ldap_uri = ldap://sme-server.domain.tld
 
  ldap_default_bind_dn = uid=auth,ou=Users,dc=domain,dc=tld
 
  ldap_default_bind_dn = uid=auth,ou=Users,dc=domain,dc=tld
  ldap_default_authtok = something_very_secret
+
  ldap_default_authtok = quelque_chose_de_tres_secret
 
  ldap_default_authtok_type = password
 
  ldap_default_authtok_type = password
 
  ldap_search_base = dc=domain,dc=tld
 
  ldap_search_base = dc=domain,dc=tld
Line 74: 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 “iPasserelle”
+
  # uncomment below if the SME is a €œiPasserelle
 
  #ldap_user_shell = desktopLoginShell
 
  #ldap_user_shell = desktopLoginShell
  # comment below if the SME is a “iPasserelle”
+
  # comment below if the SME is a €œiPasserelle
 
  override_shell = /bin/bash
 
  override_shell = /bin/bash
 
  cache_credentials = true
 
  cache_credentials = true
Line 84: 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 a iPasserelle
+
  # 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 91: 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|Make sure that the file /etc/ssl/certs/ca-certificates.crt contains the CA that has sign the certificate of the SME (if PHPki is used, a version > 0,82-13 is required).}}
+
{{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===
Edit /etc/nsswitch.conf and add sss for passwd, group and shadow:
+
É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 171: Line 171:
 
  EOF
 
  EOF
  
===Enable at statup===
+
===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]]
+
        [[Category:Howto/fr]]

Latest revision as of 15:31, 26 June 2022


PythonIcon.png Niveau de compétence : Avancé
Les instructions dans cette page requièrent un niveau avancé. Une bonne compréhension de Linux et de SME est recommandée.


Est-ce que cet article vous a été utile ?
Svp, envisagez de faire un don ou du volontariat.
Merci !


Warning.png Attention :
ce tutoriel doit être validé par Daniel B. avant que vous l'utilisiez !!



Warning.png Attention :
il a été établi à partir de tests limités d'un petit nombre d'utilisateurs.


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.

Information.png 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

É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