Gestion des clients réseau
Gestion des clients réseau
Ce chapitre traite de la configuration d’un serveur DHCP, de l’authentification par les modules PAM, ainsi que de Linux en tant que client et serveur LDAP.
1. Configuration DHCP
L’objectif de cette section est de vous apprendre à :
-
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
L’objectif de cette section est de vous apprendre à :
-
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
L’objectif...
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...
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...
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...