Gestion des clients réseau
Prérequis et objectifs
1. Prérequis
Les connaissances nécessaires à la certification LPIC-1 :
Commandes de suivi des processus.
Édition de fichiers.
Commandes de gestion de répertoires et de fichiers.
Les connaissances acquises dans les précédents chapitres, notamment :
Gestion du réseau local.
Gestion des services.
Gestion de DNS.
2. Objectifs
À la fin de ce chapitre, vous serez en mesure de :
Connaître les principes et le fonctionnement de DHCP.
Configurer et administrer un serveur DHCP.
Gérer les plages d’adresses DHCP et leurs options, y compris celles nécessaires à BOOTP.
Configurer un client DHCP.
Configurer PAM pour l’authentification.
Connaître les fonctionnalités de base de SSSD.
Interroger un serveur LDAP et mettre à jour ses données.
Configurer un serveur OpenLDAP simple.
Connaître les principes du format LDIF et les bases du contrôle d’accès LDAP.
Gestion des clients réseau
Ce sujet est divisé en quatre parties de poids différents.
1. Configuration DHCP
Poids |
2 |
Objectifs |
Configurer un serveur DHCP. Paramétrer les options par défaut et par client, les adresses statiques et les postes clients BOOTP. Configurer les agents relais DHCP et assurer la maintenance des serveurs DHCP. |
a. Compétences principales
-
Fichiers, termes et outils de configuration de DHCP.
-
Configuration de plages d’adresses par sous-réseaux et dynamiques.
-
Connaissance de base de DHCPv6 et des annonces IPv6 des routeurs.
b. Éléments mis en œuvre
-
dhcpd.conf
-
dhcpd.leases
-
Journaux DHCP dans syslog ou dans le journal systemd
-
arp
-
dhcpd
-
radvd
-
radvd.conf
2. Authentification par PAM
Poids |
3 |
Objectifs |
Configurer PAM pour l’authentification à partir de différentes méthodes. Fonctionnalités de base de SSSD. |
a. Compétences principales
-
Fichiers, termes et outils de configuration de PAM.
-
Mots de passe passwd et shadow.
-
Utilisation de sssd pour l’authentification LDAP.
b. Éléments mis en œuvre
-
/etc/pam.d/
-
pam.conf
-
nsswitch.conf
-
pam_unix, pam_cracklib, pam_limits, pam_listfile, pam_sss
-
sssd.conf
3. Utilisation d’un client LDAP
Poids |
2 |
Objectifs |
Interroger un serveur LDAP et mettre à jour ses données. Import et ajout d’éléments, ajout et gestion des utilisateurs. |
a. Compétences principales...
Configuration DHCP
DHCP (Dynamic Host Configuration Protocol) est un protocole client-serveur conçu pour faciliter la gestion de parcs importants de postes de travail et d’équipements utilisant IP. Il permet d’affecter automatiquement une adresse IP et les paramètres associés aux hôtes d’un réseau IP.
1. Le protocole DHCP
Le protocole DHCP, défini à l’origine dans la RFC 1531, est un dérivé d’un protocole plus ancien, BOOTP. Il fonctionne essentiellement via des messages UDP en diffusion (broadcast), du port client 68 vers le port serveur 67, éventuellement relayés par des agents-relais DHCP (rôle généralement pris en charge par les routeurs).
Les quatre datagrammes IP aboutissant à l’attribution au client DHCP d’un bail d’adresse par un serveur DHCP sont détaillés ci-dessous.
a. Recherche d’un serveur DHCP : DHCPDISCOVER
Le client DHCP émet une requête sur son réseau/sous-réseau, en diffusion, à la recherche d’un serveur DHCP. La requête, appelée DHCPDISCOVER, contient l’adresse MAC du client émetteur, ainsi que la dernière adresse IP qui lui a été attribuée, s’il en a une (y compris si le bail de l’adresse a expiré).
b. Offre de bail par le serveur : DHCPOFFER
Chaque serveur DHCP présent sur le réseau/sous-réseau traite la requête du client. Il consulte sa base d’adresses IP. Si une adresse est disponible pour le sous-réseau sur lequel il a reçu la demande, il la réserve pour la proposer au client, en accordant de préférence l’adresse actuelle du client, s’il en a une et si elle fait partie de la base d’adresses du serveur et qu’elle est disponible. Il propose l’adresse dans la réponse au client, un datagramme en diffusion contenant un message DHCPOFFER.
Si le serveur ne dispose pas d’une adresse IP disponible, il ne répond pas.
c. Acceptation de l’offre : DHCPREQUEST
Le client DHCP reçoit l’offre d’un ou plusieurs serveurs DHCP. Si une proposition concerne la dernière adresse IP qui lui a été attribuée, il la sélectionne de préférence.
Une fois qu’une réponse...
Authentification par PAM
Quel que soit le système d’exploitation, de nombreuses applications et services nécessitent une identification et une authentification de l’utilisateur, c’est-à-dire vérifier que l’utilisateur est autorisé à accéder au service ou à l’application, et que l’utilisateur a prouvé son identité.
À l’origine, en environnement Unix, les applications et services développaient chacune leur méthode d’identification et d’authentification de l’utilisateur et de contrôle d’accès. Certains programmes validaient le compte utilisateur à partir de la base de comptes locale (/etc/passwd), d’autres via une base de comptes distribuée (NIS, LDAP). Des applications vérifiaient que le compte utilisateur fourni n’était pas super-utilisateur, ou inversement qu’il était super-utilisateur, d’autres accordaient l’accès aux utilisateurs selon l’existence ou non d’un fichier (/etc/nologin, par exemple), ou la déclaration de son terminal dans un autre fichier (/etc/securettys), etc.
Dans les premières versions d’Unix, le mot de passe était stocké directement sur la ligne du compte utilisateur, chiffré, dans le fichier /etc/passwd. Cependant, comme ce fichier doit être accessible en lecture pour tous les utilisateurs, on a créé un fichier spécifique de gestion des mots de passe, /etc/shadow, avec des fonctionnalités supplémentaires (durée minimale, maximale, etc.). C’est la méthode mise en œuvre sur Linux.
Pour simplifier et rationaliser les méthodes de contrôle d’accès des applications, une couche intermédiaire a été conçue, permettant aux applications et services de lui déléguer ces opérations : PAM (Pluggable Authentication Modules). Créée pour Unix, elle a été implémentée sur Linux.
PAM se compose d’un ensemble de modules logiciels spécialisés, que l’on peut combiner dans un ordre et selon des règles précises, via des fichiers de configuration qui sont associables aux différentes applications.
Cette méthode permet aux administrateurs...
Configuration d’un serveur OpenLDAP
LDAP (Lightweight Directory Access Protocol) est un protocole standard d’accès à un service d’annuaire distribué, défini par la RFC 4511. Il permet de rassembler dans une arborescence d’annuaire l’ensemble des informations concernant différents objets d’une organisation (comptes utilisateurs, groupes, machines, services réseau, bâtiments, etc.), et de permettre aux clients LDAP d’accéder à ces informations via des requêtes normalisées.
Linux peut être serveur et/ou client LDAP.
1. Généralités
En 1988, l’ITU (International Telecommunication Union, ex-CCITT) a mis en place une norme couvrant les différents éléments à mettre en œuvre pour fournir des services d’annuaire électronique, utilisables à travers un réseau : la norme X.500, validée ensuite par l’ISO (norme ISO/IEC 9594).
Cette norme étant particulièrement complexe, un protocole plus simple d’accès aux services de messagerie en a été dérivé, LDAP (Lightweight Directory Access Protocol). Ce protocole a ensuite été étendu pour prendre en compte un modèle complet d’annuaire.
Les services d’annuaires compatibles LDAP les plus utilisés aujourd’hui sont Microsoft ADS (Active Directory Services), Oracle Directory Server Enterprise Edition, IBM Tivoli Directory Server et, dans le monde open source, OpenLDAP et Apache Directory Server.
a. Structure et terminologie
Les annuaires électroniques de type X.500 s’appuient sur une structure hiérarchisée, en arborescence.
Un annuaire est composé d’objets, qui peuvent éventuellement contenir d’autres objets. Les objets de structure sont appelés des conteneurs et peuvent être de différents types : organisation, domaine, unité organisationnelle. Un objet non structurant est appelé un objet feuille (leaf object). Les différentes informations associées à un objet sont ses attributs.
Exemple
Annuaire LDAP basé sur une structure de type domaine DNS.
b. Schéma
L’ensemble des types d’objets et des attributs d’objets pouvant figurer dans un annuaire...
Utilisation d’un client LDAP
En plus de ses fonctionnalités de client LDAP, pour l’identification et l’authentification des utilisateurs, Linux dispose de commandes permettant d’interagir avec le serveur LDAP. Ces commandes sont fournies par le paquet logiciel ldap-utils (Debian) ou openldap-clients (Red Hat).
1. Fichier de configuration du client
Bien que facultatif, le fichier de configuration permet de définir des options et des valeurs par défaut, utilisables par la bibliothèque LDAP. Ce fichier, slapd.conf (ou, dans les versions récentes, ldap.conf), se trouve par défaut dans le répertoire /etc/ldap ou /etc/openldap.
Le fichier permet de définir des variables, valeurs par défaut pour les commandes utilisant la bibliothèque LDAP, parmi lesquelles :
BASE |
Suffixe de l’annuaire par défaut. |
URI |
URI des serveurs LDAP par défaut. |
HOST |
Nom d’hôte ou adresse des serveurs LDAP par défaut. |
Exemple
Valeurs par défaut pour les commandes LDAP d’un client LDAP :
BASE dc=intra,dc=fr
URI ldap://srvldap.intra.fr ldap:// srvldap1. intra.fr:666
HOST srvldap.intra.fr
2. Interrogation de l’annuaire : ldapsearch
La commande ldapsearch permet d’effectuer des requêtes d’interrogation sur un annuaire LDAP et de récupérer le résultat au format normalisé LDIF (LDAP Data Interchange Format).
Cette commande admet de nombreuses options. Elle permet d’obtenir tout ou partie des informations stockées dans l’arborescence de l’annuaire LDAP du serveur.
Le cas le plus simple consiste à demander l’export total de toutes les informations de l’annuaire local (équivalant de la commande slapcat). Cela permet de vérifier la présence d’un objet ou que le serveur d’annuaire répond aux requêtes.
Syntaxe pour afficher le contenu d’un annuaire
ldapsearch [-x] - b Suffixe
Avec :
-x |
Requête anonyme (sans mot de passe). |
-b Suffixe |
Identifiant de l’annuaire à interroger. |
Exemple
ldapsearch -x -b dc=mondns,dc=fr
# extended LDIF
#
# LDAPv3
# base <dc=mondns,dc=fr> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# mondns.fr
dn: dc=mondns,dc=fr
objectClass: top
objectClass: dcObject
objectClass: organization...
Validation des acquis : questions/réponses
Répondez à ces questions ouvertes, comparables à celles qui pourront vous être posées lors de la certification, mais ces dernières seront sous forme de QCM ou demandant une réponse courte saisie au clavier.
1. Questions
1 Dans quel ordre sont échangés les messages DHCPOFFER et DHCPREQUEST entre un client et un serveur DHCP ?
2 Quelle section du fichier de configuration d’un serveur DHCP permet de définir une plage d’adresses ?
3 Quelles sont les différentes valeurs du paramètre type d’action dans un fichier de configuration PAM ?
4 À quoi sert le module PAM pam_unix.so ?
5 Quelle différence y a-t-il entre les contrôles required et requisite dans un fichier de configuration PAM ?
6 Que signifie LDAP ?
7 Quel est le rôle d’un DN dans un annuaire LDAP ?
8 Quelle ligne de commande permet de démarrer le serveur OpenLDAP par systemd ?
9 Quelle commande permet de vérifier le fichier de configuration du serveur OpenLDAP ?
10 Que fait la commande ldapsearch -x -b dc=socx,dc=fr ?
11 Quelle commande permet à un utilisateur de changer son mot de passe LDAP ?
2. Résultat
Référez-vous aux pages suivantes pour contrôler vos réponses. Pour chacune de vos bonnes réponses, comptez un point.
Nombre de points : /11
Pour...
Travaux pratiques
Ces travaux pratiques proposent deux ateliers mettant en œuvre certains des points abordés dans ce chapitre. Pour chaque étape est donné un exemple commenté de réalisation, à adapter suivant la configuration de vos systèmes.
Pour les tests, on peut désactiver temporairement le pare-feu et SELinux, pour éviter des interactions difficiles à diagnostiquer :
systemctl stop firewalld
setenforce 0
1. Configuration et utilisation d’un serveur DHCP
On installe un serveur DHCP sur une distribution RHEL 8.5. Le serveur gérera une plage de dix adresses appartenant à son sous-réseau. Pour chacune, il fournira un bail de trois jours, et configurera le masque de sous-réseau, la passerelle par défaut et le serveur DNS.
Cet atelier doit se faire sur un réseau de test, sans autre serveur DHCP.
Commandes et fichiers utiles
-
yum
-
/etc/dhcp/dhcpd.conf
-
/var/lib/dhcpd/dhcpd.leases
-
systemctl
Manipulations
1. |
Vérifiez que le paquet logiciel serveur DHCP est installé. |
2. |
Configurez le serveur DHCP pour gérer une plage d’adresses. |
3. |
Démarrez ou redémarrez le serveur DHCP. |
4. |
Testez le serveur depuis un client DHCP distant. |
5. |
Vérifiez l’état du bail sur le serveur DHCP. |
Résumé des commandes et résultat à l’écran
1. |
Vérifiez que le paquet logiciel serveur DHCP est installé. |
On vérifie que le paquet logiciel est installé :
[root@srvrh ~]# yum list dhcp-server
Paquets installés
dhcp-server.x86_64 12:4.3.6-47.el8 @rhel-8-for-x86_64-baseos-rpms
On regarde si le serveur DHCP est démarré :
[root@srvrh ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled;
vendor preset: disabled)
Active: inactive (dead)
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Le serveur est inactif.
2. |
Configurez le serveur DHCP pour gérer une plage d’adresses. |
On regarde l’adresse IPv4 et l’interface réseau du serveur :
[root@srvrh ~]# ip -4 -br a
lo UNKNOWN 127.0.0.1/8 ...