Série RHCSA Configuration de l'authentification basée sur LDAP dans RHEL 7 - Partie 14

Série RHCSA Configuration de l'authentification basée sur LDAP dans RHEL 7 - Partie 14

Nous allons commencer cet article en décrivant certains Ldap Bases (ce qu'elle est, où elle est utilisée et pourquoi) et montrer comment configurer un serveur LDAP et configurer un client pour s'authentifier contre lui en utilisant Red Hat Enterprise Linux 7 systèmes.

Série RHCSA: Configuration de l'authentification du serveur LDAP et du client - Partie 14

Comme nous le verrons, il existe plusieurs autres scénarios d'application possibles, mais dans ce guide, nous nous concentrerons entièrement sur LDAP authentification. De plus, veuillez garder à l'esprit qu'en raison de l'immensité du sujet, nous ne couvrirons que ses bases ici, mais vous pouvez vous référer à la documentation décrite dans le résumé pour des détails plus approfondis.

Pour la même raison, vous remarquerez que j'ai décidé de laisser de côté plusieurs références aux pages d'homme des outils LDAP pour le bien de la concision, mais les explications correspondantes sont à la distance du bout des doigts (homme ldapadd, Par exemple).

Cela dit, commençons.

Notre environnement de test

Notre environnement de test se compose de deux Rhel 7 des boites:

Serveur: 192.168.0.18. Fqdn: RHEL7.mydomain.com Client: 192.168.0.20. Fqdn: ldapclient.mydomain.com 

Si vous le souhaitez, vous pouvez utiliser la machine installée dans la partie 12: Automatiser les installations RHEL 7 en utilisant Kickstart comme client.

Qu'est-ce que LDAP?

Ldap représente Protocole d'accès au répertoire léger et consiste en un ensemble de protocoles qui permettent à un client d'accéder, sur un réseau, des informations stockées de manière centralisée (telles qu'un répertoire de shells de connexion, des chemins absolus vers les répertoires domestiques et d'autres informations d'utilisateur système typiques, par exemple) qui devraient être accessibles à partir de différents endroits ou disponible pour un grand nombre d'utilisateurs finaux (un autre exemple serait un répertoire des adresses domestiques et des numéros de téléphone de tous les employés d'une entreprise).

Garder ces informations (et plus) de manière centralisée signifie qu'elle peut être plus facilement entretenue et accessible par tous ceux qui ont obtenu des autorisations pour l'utiliser.

Le diagramme suivant offre un diagramme simplifié de Ldap, et est décrit ci-dessous plus en détail:

Diagramme LDAP

Explication du diagramme ci-dessus en détail.

  1. Un entrée Dans un répertoire LDAP, représente une seule unité ou une seule information et est identifié de manière unique par ce qu'on appelle un nom distingué.
  2. Un attribut est une information associée à une entrée (par exemple, des adresses, des numéros de téléphone de contact disponibles et des adresses e-mail).
  3. Chaque attribut se voient attribuer un ou plusieurs valeurs Composé en une liste séparée dans l'espace. Une valeur unique par entrée est appelée un nom distingué relatif.

Cela étant dit, procédons aux installations du serveur et des clients.

Installation et configuration d'un serveur et client LDAP

Dans Rhel 7, LDAP est implémenté par Openldap. Pour installer le serveur et le client, utilisez respectivement les commandes suivantes:

# yum Update && yum install openldap openldap-clienties openldap-servers # yum update && yum install openldap openldap-crients nss-pam-ldapd 

Une fois l'installation terminée, il y a certaines choses que nous regardons. Les étapes suivantes doivent être effectuées uniquement sur le serveur, sauf indication contraire:

1. S'assurer Selinux ne gêne pas le chemin en permettant ce qui suit booléens persistant, à la fois sur le serveur et le client:

# setSebool -p allow_ypbind = 0 authlogin_nswitch_use_ldap = 0 

allow_ypbind est requis pour l'authentification basée sur LDAP, et authlogin_nswitch_use_ldap peut être nécessaire par certaines applications.

2. Activer et démarrer le service:

# SystemCTL Activer Slapd.Service # systemctl start slapd.service 

Gardez à l'esprit que vous pouvez également désactiver, redémarrer ou arrêter le service avec SystemCTL également:

# SystemCTL Désactiver Slapd.service # systemctl redémarrer slapd.service # systemctl stop slapd.service 

3. Depuis le claquer Le service s'exécute en tant qu'utilisateur LDAP (avec lequel vous pouvez vérifier ps -e -o pid, uname, comm | Grep Slapd), cet utilisateur doit posséder le / var / lib / ldap Répertoire afin que le serveur puisse modifier les entrées créées par des outils administratifs qui ne peuvent être exécutés qu'en root (plus à ce sujet en une minute).

Avant de modifier la propriété de ce répertoire récursivement, copiez le fichier de configuration de la base de données pour claquer dans ça:

# cp / usr / share / openldap-servers / db_config.Exemple / var / lib / ldap / db_config # chown -r ldap: ldap / var / lib / ldap 

4. Configurez un utilisateur administratif OpenLDAP et attribuez un mot de passe:

# Slappasswd 

Comme indiqué dans l'image suivante:

Définir le mot de passe de l'administrateur LDAP

et créer un Ldif déposer (ldaprootpasswd.ldif) avec le contenu suivant:

DN: olcdatabase = 0 config, cn = config changetype: modifier add: olcrootpw olcrootpw: ssha mot de passe 

où:

  1. MOT DE PASSE La corde hachée est-elle obtenue plus tôt.
  2. cn = config Indique les options de configuration globale.
  3. olcdatabase indique un nom d'instance de base de données spécifique et peut être généralement trouvé à l'intérieur / etc / openldap / slapd.d / cn = config.

Se référant au contexte théorique fourni précédemment, le ldaprootpasswd.ldif Le fichier ajoutera une entrée au répertoire LDAP. Dans cette entrée, chaque ligne représente une paire d'attribut: Value (où DN, ChangeType, Add et Olcrootpw sont les attributs et les chaînes à droite de chaque côlon sont leurs valeurs correspondantes).

Vous voudrez peut-être garder cela à l'esprit au fur et à mesure que nous procédons et veuillez noter que nous utilisons les mêmes noms communs (cn =) tout au long du reste de cet article, où chaque étape dépend de la précédente.

5. Maintenant, ajoutez l'entrée LDAP correspondante en spécifiant le Uri se référant au serveur LDAP, où seuls les champs protocole / hôte / port sont autorisés.

# ldapadd -h ldapi: /// -f ldaprootpasswd.ldif 

La sortie doit être similaire à:

Configuration LDAP

et importer certaines définitions LDAP de base à partir du / etc / openldap / schéma annuaire:

# pour Def dans le cosinus.LDIF NIS.LDIF INETORGSERSON.ldif; faire ldapadd -h ldapi: /// -f / etc / openldap / schéma / $ def; fait 
Définitions LDAP

6. Demandez à LDAP d'utiliser votre domaine dans sa base de données.

Créer un autre Ldif fichier, que nous appellerons ldapdomain.ldif, avec le contenu suivant, le remplacement de votre domaine (dans le composant de domaine DC =) et du mot de passe, le cas échéant:

DN: OlcDatabase = 1 Monitor, CN = Config ChangeType: Modifier Remplace: OlcAccess OlcAccess: 0 à * par dn.base = "gidnumber = 0 + uidnumber = 0, cn = peercred, cn = externe, cn = auth" Lire par dn.base = "cn = manager,dc = mydomain,dc = com "Lire par * Aucun DN: olcdatabase = 2 hdb, cn = config changetype: modifier remplacer: olcsuffix olcsuffix: dc = mydomain,dc = com dn: olcdatabase = 2 hdb, cn = config changetype: modifier remplacer: olcrootdn olcrootdn: cn = manager,dc = mydomain,dc = com dn: olcdatabase = 2 hdb, cn = config changetype: modifier add: olcrootpw olcrootpw: ssha mot de passe dn: olcdatabase = 2 hdb, cn = config changetype: modifier add: olcaccess olcAccess: 0 à attRrs = userpassword, shadowlastchange par dn = "cn = manager,dc = mydomain,dc = com "Écrire par Anonymous Auth par Self Write par * Aucun OlcAccess: 1 à DN.base = "" par * lire olcaccess: 2 à * par dn = "cn = manager, dc = mydomain, dc = com" write by * read 

Puis chargez-le comme suit:

# ldapmodify -h ldapi: /// -f ldapdomain.ldif 
Configuration du domaine LDAP

7. Il est maintenant temps d'ajouter des entrées à notre répertoire LDAP. Les attributs et les valeurs sont séparés par un côlon (:) Dans le fichier suivant, que nous nommerons Bâle.ldif:

DN: DC = MyDomain, DC = COM ObjectClass: Top ObjectClass: DCObject ObjectClass: Organisation O: MyDomain Com DC: MyDomain DN: CN = Manager, DC = MyDomain, DC = COM ObjectClass: OrganizationalRole CN: Manager Description: Directory Manager DN: ou = People, DC = MyDomain, DC = COM ObjectClass: Organization Unit OU: People DN: Ou = Groupe, DC = MyDomain, DC = COM ObjectClass: OrganizationalUnit OU: Groupe 

Ajoutez les entrées au répertoire LDAP:

# ldapadd -x -d cn = manager, dc = mydomain, dc = com -w -f baseldapdomain.ldif 
Ajouter des attributs et des valeurs de domaine LDAP

8. Créer un utilisateur LDAP appelé ldapuser (AddUser Ldapuser), puis créer les définitions d'un groupe LDAP dans ldapgroup.ldif.

# AddUser Ldapuser # VI LDAPGROUP.ldif 

Ajouter le contenu suivant.

DN: cn = manager, ou = groupe, dc = mydomain, dc = com objectClass: top objectClass: posixgroup gidnumber: 1004 

gidnumber est le gid dans / etc / groupe pour ldapuser) et chargez-le:

# ldapadd -x -w -d "cn = manager, dc = mydomain, dc = com" -f ldapgroup.ldif 

9. Ajoutez un fichier LDIF avec les définitions de l'utilisateur ldapuser (ldapuser.ldif):

dn: uid = ldapuser, ou = People, dc = myDomain, dc = com ObjectClass: top objectClass: Compte ObjectClass: posixAccount objectClass: shadowaccount cn: ldapuser uid: ldapuser uidnumber: 1004 gidnumber: 1004 homeDirectory: / home / ldapuser userpass mot de mot Ssha fin0yqzbdudi0fpqq9uudwmjzqy28s3m Logginshell: / bin / bash gecos: ldapuser shadowlastchange: 0 shadowmax: 0 shadowwarning: 0 

et chargez-le:

# ldapadd -x -d cn = manager, dc = mydomain, dc = com -w -f ldapuser.ldif 
Configuration de l'utilisateur LDAP

De même, vous pouvez supprimer la saisie utilisateur que vous venez de créer:

# ldapdelete -x -w -d cn = manager, dc = mydomain, dc = com "uid = ldapuser, ou = personnes, dc = mydomain, dc = com" 

dix. Autoriser la communication via le pare-feu:

# pare-feu-CMD --Add-Service = LDAP 

11. Dernier point, mais non le moindre, permettre au client de s'authentifier en utilisant LDAP.

Pour nous aider dans cette dernière étape, nous utiliserons le authonfig Utilitaire (une interface pour configurer les ressources d'authentification système).

En utilisant la commande suivante, le répertoire domestique de l'utilisateur demandé est créé s'il n'existe pas après l'authentification contre le serveur LDAP:

# AuthConfig --enableldap --enablelDapAuth --lDapServer = RHEL7.mydomain.com --ldapbasedn = "dc = mydomain, dc = com" --enablemkhomedir - update 
Configuration du client LDAP

Résumé

Dans cet article, nous avons expliqué comment configurer l'authentification de base contre un serveur LDAP. Pour configurer davantage la configuration décrite dans le présent guide, veuillez vous référer à la configuration du chapitre 13 - LDAP dans le Guide de l'administrateur du système RHEL 7, en accordant une attention particulière aux paramètres de sécurité à l'aide de TLS.

N'hésitez pas à laisser les questions que vous pourriez avoir en utilisant le formulaire de commentaire ci-dessous.