« SSSD : Configuration d'un client LDAP » : différence entre les versions

De Adadov.net wiki
 
(15 versions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{ArticleHead|Adadov|EnCours=1}}
{{DovConnect}}{{ArticleHead|Adadov|EnCours=1}}
SSSD ou System Security Services Daemon est un service qui permet l'accès a différents fournisseurs d'identification et d'authentification.
SSSD ou System Security Services Daemon est un service qui permet l'accès a différents fournisseurs d'identification et d'authentification.
Il est possible de configurer SSSD pour utiliser un domaine native LDAP (C'est un domaine LDAP qui fournit authentification et identification).
Il est possible de configurer SSSD pour utiliser un domaine native LDAP (C'est un domaine LDAP qui fournit authentification et identification).
Ligne 16 : Ligne 16 :


Nous avons donc maintenant tout le nécessaire installé et activé.
Nous avons donc maintenant tout le nécessaire installé et activé.
== Configuration de NSS ==
Afin de pouvoir récupérer les listes d'utilisateurs depuis notre serveur LDAP, nous allons configurer NSS pour qu'il utilise SSSD.<br />
Pour ça il faut éditer le fichier {{Fname|/etc/nsswitch.conf}}.
<syntaxhighlight lang="php">
passwd: files sss
group: files sss
</syntaxhighlight>


== Configuration de l'authentification ==
== Configuration de l'authentification ==
Ligne 31 : Ligne 21 :
Pour configurer le système afin qu'il utilise SSSD pour l'authentification, il est possible de le faire de deux façons différentes.<br />
Pour configurer le système afin qu'il utilise SSSD pour l'authentification, il est possible de le faire de deux façons différentes.<br />


=== Utiliser l'utilitaire authconfig ===
=== DEPRECATED : Utiliser l'utilitaire authconfig ===
{{Warn|Obsolètes: Utiliser authselect sur les distributions récentes}}{{LxTerm|user=root|text=authconfig --enablesssd --enablesssdauth --enablelocauthorize --update}}
{{Warn|Obsolètes: Utiliser authselect sur les distributions récentes}}{{LxTerm|user=root|text=authconfig --enablesssd --enablesssdauth --enablelocauthorize --update}}


=== DEPRECATED : Utiliser authselect pour paramétrer le système. ===
=== Utiliser authselect pour paramétrer le système. ===
{{LxTerm|text=authselect select sssd}}
{{LxTerm|text=authselect select sssd}}
Le profile sssd a des options supplémentaires qui peuvent être ajoutées pour le lecteur d'empreinte par exemple.
Le profile sssd a des options supplémentaires qui peuvent être ajoutées pour le lecteur d'empreinte par exemple.
Ligne 40 : Ligne 30 :
Il est possible de les lister avec la commande
Il est possible de les lister avec la commande
{{LxTerm|text=authselect list-features sssd}}
{{LxTerm|text=authselect list-features sssd}}
Pour les activer il suffit de les ajouter à la suite sur la première commande.
Pour les activer il suffit de les ajouter à la suite sur la première commande: --<feature_name>.
 
Vous pouvez aussi créer un profil personnalisé et y inclure vos options pour SSSD.
 
Un exemple avec le support U2F est disponible ici: [[Authselect: Créer un profil personnalisé avec le support de pam u2f]]


=== Editer les fichiers de configuration de PAM ===
=== Editer les fichiers de configuration de PAM ===


Il vaut mieux éviter de modifier PAM manuellement, par contre authselect avec son système de profiles permet de faire des modifications facilement réversibles en cas de soucis.
Il vaut mieux éviter de modifier PAM manuellement, elles risquent d'être écrasées par les mises à jour, par contre authselect avec son système de profiles permet de faire des modifications facilement réversibles en cas de soucis.


[[Authselect: créer un profile personnalisé]]
Vous pouvez retrouver l'admin guide de PAM ici : [https://wiki.adadov.net/images/7/70/Linux_PAM_System_Administrator_Guide.pdf Linux_PAM_System_Administrator_Guide.pdf]


== Désactiver le cache NSCD ==
== Désactiver le cache NSCD ==
Ligne 74 : Ligne 68 :
selinux_provider = none
selinux_provider = none


ldap_uri = ldap://srv.example.com/                                           # Adresse du serveur LDAP
ldap_uri = ldaps://srv.example.com/                                               # Adresse du serveur LDAP
ldap_search_base = cn=users,dc=example,dc=com?sub?(objectclass=posixAccount)  # Base et filtre de recherche
ldap_search_base = dc=example,dc=com                                              # Base de recherche
ldap_default_bind_dn = uid=auth,ou=special_users,dc=example,dc=com           # DN de connexion pour l'énumération
ldap_user_search_base = cn=users,dc=example,dc=com?sub?(objectclass=posixAccount)  # Base et filtre de recherche users
ldap_default_authtok = secret                                                 # Password du DN de connexion
ldap_user_search_base = cn=groups,dc=example,dc=com?sub?(objectclass=posixGroup)  # Base et filtre de recherche groups
ldap_default_authtok_type = password                                         # A définir sur password
ldap_default_bind_dn = uid=auth,ou=special_users,dc=example,dc=com                 # DN de connexion pour l'énumération
ldap_default_authtok = secret                                                     # Password du DN de connexion
ldap_default_authtok_type = password                                               # A définir sur password


ldap_id_use_start_tls = False                                                # Pas de connexion TLS
ldap_tls_cacert = /etc/pki/cacert.pem                                        # Certificat de la CA émetrice du certificat utilisé par le LDAP
ldap_tls_reqcert = allow                                                      # Niveau de vérification du certificat, allow est trop permissif pour un environnement de production


enumerate = True                      # Active l'énumération des comptes de la source
enumerate = True                      # Active l'énumération des comptes de la source
Ligne 97 : Ligne 94 :
[nss]
[nss]
homedir_substring = /home
homedir_substring = /home
filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd  # Liste des utilisateurs à ne pas
filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd  # Liste des utilisateurs à ne pas récupérer depuis les sources
                                                                      # récupérer depuis les sources
                                                                     
filter_users_in_groups = True                                          # Ne pas afficher les utilisateurs filtrés
filter_users_in_groups = True                                          # Ne pas afficher les utilisateurs filtrés


Ligne 112 : Ligne 109 :


[ifp]
[ifp]
</syntaxhighlight>
</syntaxhighlight>{{DovConnect}}
[[Catégorie:Authentification]]
[[Catégorie:Authentication]]
[[Catégorie:LDAP]]
[[Catégorie:LDAP]]
[[Catégorie:SysAdmin]]
[[Catégorie:SysAdmin]]

Dernière version du 23 février 2024 à 00:11

Ecrit Par : Adadov

SSSD ou System Security Services Daemon est un service qui permet l'accès a différents fournisseurs d'identification et d'authentification. Il est possible de configurer SSSD pour utiliser un domaine native LDAP (C'est un domaine LDAP qui fournit authentification et identification). On peut aussi utiliser un LDAP avec authentification Kerberos mais aussi d'autres sources en utilisant des modules.

SSSD permet aussi l'authentification hors ligne, cette fonctionnalité permet d'éviter les doubles comptes dans le cas de machines qui ne sont pas toujours connectées au réseau de l'entreprise et/ou qui ne peuvent pas utiliser de VPN pour accéder aux serveurs d'authentification.

Pour le moment la partie qui nous intéresse est l'accès a un domaine native LDAP.

Installation[modifier | modifier le wikicode]

L'installation se fait directement via YUM.

[root@linux] # yum install sssd sssd-ldapdblclick to copy
[root@linux] # systemctl enable sssd.service

Nous avons donc maintenant tout le nécessaire installé et activé.

Configuration de l'authentification[modifier | modifier le wikicode]

Pour configurer le système afin qu'il utilise SSSD pour l'authentification, il est possible de le faire de deux façons différentes.

DEPRECATED : Utiliser l'utilitaire authconfig[modifier | modifier le wikicode]

Warning : Obsolètes: Utiliser authselect sur les distributions récentes
[root@linux] # authconfig --enablesssd --enablesssdauth --enablelocauthorize --updatedblclick to copy

Utiliser authselect pour paramétrer le système.[modifier | modifier le wikicode]

[root@linux] # authselect select sssddblclick to copy

Le profile sssd a des options supplémentaires qui peuvent être ajoutées pour le lecteur d'empreinte par exemple.

Il est possible de les lister avec la commande

[root@linux] # authselect list-features sssddblclick to copy

Pour les activer il suffit de les ajouter à la suite sur la première commande: --<feature_name>.

Vous pouvez aussi créer un profil personnalisé et y inclure vos options pour SSSD.

Un exemple avec le support U2F est disponible ici: Authselect: Créer un profil personnalisé avec le support de pam u2f

Editer les fichiers de configuration de PAM[modifier | modifier le wikicode]

Il vaut mieux éviter de modifier PAM manuellement, elles risquent d'être écrasées par les mises à jour, par contre authselect avec son système de profiles permet de faire des modifications facilement réversibles en cas de soucis.

Vous pouvez retrouver l'admin guide de PAM ici : Linux_PAM_System_Administrator_Guide.pdf

Désactiver le cache NSCD[modifier | modifier le wikicode]

Si NSCD est installé il est fortement conseillé de désactiver le cache pour les mots de passe, SSSD n'est pas prévu pour fonctionner avec.

Pour le faire simplement :

[root@linux] # sed -i.0 's/\(enable-cache.*passwd.*\)yes/\1no/' /etc/nscd.confdblclick to copy
[root@linux] # systemctl restart nscd.service


Configurer SSSD[modifier | modifier le wikicode]

Pour la configuration de SSSD on retrouve vite ses marques, elle se rapproche fortement de la configuration de n'importe quel client LDAP.

Pour se faire il faudra éditer le fichier /etc/sssd/sssd.conf


[domain/default]

autofs_provider = ldap
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
sudo_provider = none
selinux_provider = none

ldap_uri = ldaps://srv.example.com/                                                # Adresse du serveur LDAP
ldap_search_base = dc=example,dc=com                                               # Base de recherche
ldap_user_search_base = cn=users,dc=example,dc=com?sub?(objectclass=posixAccount)  # Base et filtre de recherche users
ldap_user_search_base = cn=groups,dc=example,dc=com?sub?(objectclass=posixGroup)  # Base et filtre de recherche groups
ldap_default_bind_dn = uid=auth,ou=special_users,dc=example,dc=com                 # DN de connexion pour l'énumération
ldap_default_authtok = secret                                                      # Password du DN de connexion
ldap_default_authtok_type = password                                               # A définir sur password

ldap_tls_cacert = /etc/pki/cacert.pem                                         # Certificat de la CA émetrice du certificat utilisé par le LDAP
ldap_tls_reqcert = allow                                                      # Niveau de vérification du certificat, allow est trop permissif pour un environnement de production

enumerate = True                      # Active l'énumération des comptes de la source

cache_credentials = True              # Active la mise en cache des comptes utilisateurs
case_sensitive = True
offline_credentials_expiration = 3    # Les comptes seront gardés en cache 3 jours après la dernière connexion au LDAP
create_homedir = True                 # Demande la création des homeDirectory s'ils n'existent pas

[sssd]
account_cache_expiration = 2          # Le cache des comptes expire après 2 jours
services = nss, pam, autofs
config_file_version = 2
domains = default

[nss]
homedir_substring = /home
filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd  # Liste des utilisateurs à ne pas récupérer depuis les sources
                                                                       
filter_users_in_groups = True                                          # Ne pas afficher les utilisateurs filtrés

[pam]

[sudo]

[autofs]

[ssh]

[pac]

[ifp]