Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Debian GNU/Linux
  3. Sécurisation d’annuaires
Extrait - Debian GNU/Linux Maîtrisez la sécurité des applications
Extraits du livre
Debian GNU/Linux Maîtrisez la sécurité des applications
1 avis
Revenir à la page d'achat du livre

Sécurisation d’annuaires

Sécurisation de l’annuaire de noms DNS

Dans la mesure où nombre d’applications, comme nous l’avons vu précédemment, ont recours à la résolution de noms pour reconnaître les serveurs sous-jacents, on peut alors s’interroger sur le degré de sécurité souhaité en ce qui concerne ce service bien particulier, faisant transiter des informations critiques au travers d’Internet (adresses IP et noms FQDN). La fonctionnalité BIND (Berkeley Internet Name Daemon aussi appelée Berkeley Internet Name Domain) est le serveur de résolution de noms DNS le plus utilisé sur Internet, spécialement sur des serveurs Unix/Linux. C’est donc devenu le standard de facto de la résolution DNS et il appartient donc aux applications couramment utilisées.

RAPPEL : la première version de BIND a été conçue par quatre étudiants diplômés de l’université de Berkeley en Californie, sur la base du système d’exploitation BSD 4.3. En 1988, c’est Paul VIXIE qui reprend la maintenance du projet. Actuellement, BIND est développé par l’Internet System Consortium (ISC).

1. Généralités sur le serveur de noms

Un serveur de noms (abrégé en DNS pour Domain Name Server) est un annuaire à structure arborescente inversée. La racine est généralement représentée en haut et déploie ses branches vers le bas. Son rôle est de faciliter l’accès aux systèmes disposant d’adresses IP et leur permettre, grâce à un mécanisme d’association, de récupérer le nom des serveurs. La racine est alors représentée par un ".", on trouve, en dessous, les domaines de haut niveau (aussi appelés top-level domains) : .fr, .com, .org, .eu... Le parcours s’effectue donc à l’envers depuis la racine, vers le bas (la machine ou le serveur référencé) :

images/TLD.png

De façon intégrée, le serveur de noms possède une configuration particulière pour les routeurs de courrier électronique (notée généralement MX), autorisant une résolution inverse de celle effectuée par les hôtes...

Mise en œuvre d’un annuaire OpenLDAP

Autre annuaire à correctement sécuriser : l’annuaire LDAP. En effet, parmi les services d’infrastructure utilisés dans les entreprises, il en est un permettant de collecter les informations des utilisateurs. Il s’agit de LDAP. Ce n’est rien d’autre qu’une base de données permettant de partager des informations au sein d’un même réseau. Ce genre de base peut contenir toute sorte de données telles que des coordonnées téléphoniques, des informations fonctionnelles ou encore des données système. Le sigle LDAP signifie Lightweight Directory Access Protocol et s’apparente à un protocole d’accès aux informations contenues dans l’annuaire. Ce système s’appuie sur un système de consultation d’annuaire, au départ appelé X.500, mis au point, par la firme Xerox. Il utilise les mêmes concepts que le serveur de noms DNS vu précédemment, mais en étendant le spectre des informations administrées :

  • adresse IP

  • nom de machine

  • coordonnées administratives

  • compte utilisateur

  • mot de passe

  • données de routage

  • système de partitions

Toutefois, ce type d’annuaire est optimisé essentiellement pour les lectures et les recherches avancées. Ainsi, les opérations de modification ou d’ajouts peuvent être assez coûteuses en termes de performances sur les médias standards de type disque. Les données y sont stockées selon un modèle distribué et il est possible d’effectuer des réplications.

1. Architecture d’un annuaire LDAP

La structure des données gérées est alors appelée schéma. Elle est extensible en fonction des besoins de l’organisation y faisant appel et le modèle appliqué est fondé sur des standards assurant l’interopérabilité entre les différentes implémentations des différents supports OS. Dans le cadre de la sécurisation sous Debian, on s’intéresse surtout à l’implémentation de la version open source appelée OpenLDAP, apportant avec elle de nombreuses garanties de sécurité au travers des systèmes de chiffrement...

Alternative de l’annuaire LDAP : NIS

Toute cette mécanique fonctionne parfaitement. Mais, une telle complexité n’est pas nécessairement souhaitable dans certaines petites entreprises. Il existe une alternative plus légère que l’annuaire LDAP pour gérer les comptes : NIS (Network Information Server).

RAPPEL : les annuaires NIS étaient à l’origine un moyen simple et rapide de centraliser l’administration des comptes et des machines. Ils permettaient de stocker et distribuer les informations administratives du réseau afin de présenter un ensemble cohérent de données concernant les comptes utilisateurs, les groupes et les machines.

On utilise généralement un serveur NIS conjointement avec des serveurs NFS présentant des volumes à différents utilisateurs centralisés. Dans ce genre de configuration, les comptes utilisateurs sont tous regroupés sous forme de fichiers (ou map) et ceux-ci sont propagés lors des modifications effectuées au niveau du serveur NIS.

images/I15EP08.png

1. Service NIS

Lorsque l’on installe le package nis sur un serveur, l’administrateur doit renseigner le nom du domaine local, c’est-à-dire le nom du domaine qu’il souhaite donner à son annuaire central NIS. Après quoi, il faut renseigner la variable NISSERVER dans le fichier /etc/default/nis de façon à indiquer au service qu’il s’agit d’un nœud maître :

images/C15EP14.png

Par défaut, le client NIS est installé sur le serveur. C’est pourquoi la variable NISCLIENT est déjà renseignée.

Ensuite, il faut également modifier le fichier /etc/yp.conf afin de renseigner l’adresse IP du serveur local :

images/C15EP17.png

ATTENTION : il convient plutôt d’utiliser l’adresse IP. Ainsi, en cas de défaillance du serveur de noms, la résolution pourra tout de même être réalisée.

Nous pouvons alors redémarrer le daemon du service NIS et nous assurer que les services RPC (Remote Procedure Call) sont bien utilisés :


# /etc/init.d/nis restart  
# rpcinfo -p
 

Il est alors possible de créer les "bases de données" distribuées par le service NIS, qui sont stockées par défaut dans le répertoire /var/yp. Pour ce faire...

Service d’adressage dynamique DHCP

1. Fonctionnalités du service DHCP

Lorsque l’on initialise un réseau local d’entreprise, on a généralement la fastidieuse tâche de compléter, pour chaque machine, les informations réseau :

  • nom

  • adresse IP

  • masque

  • passerelle

Bien que le DHCP ne soit pas considéré totalement comme un annuaire, il en contient pourtant les éléments principaux : les baux de négociation et les fonctionnalités de réservation d’adresse. Si l’on ne dispose pas d’un serveur DHCP (Dynamic Host Configuration Protocol), il faut faire cela manuellement. Mais heureusement, un tel serveur permet d’effectuer les associations adresses (physique ou logique) avec les noms des différentes machines du réseau. Le serveur DHCP utilise le port UDP/67 et le client le port UDP/68 pour communiquer entre eux. Il existe plusieurs paquets susceptibles d’être interprétés au sein du protocole DHCP. Ils peuvent être émis indépendamment par le client ou le serveur selon les cas :

  • DHCPDISCOVER : localisation des serveurs DHCP disponibles.

  • DHCPOFFER : offre de réponse du serveur au paquet DHCPDISCOVER.

  • DHCPREQUEST : demande spécifique du client (prolongation du bail).

  • DHCPACK : proposition d’adresse IP de la part du serveur vers le client.

  • DHCPDECLINE : refus du client d’utiliser une adresse déjà distribuée.

  • DHCPRELEASE : libération du client de son adresse IP.

  • DHCPINFORM : demande du client de paramètres locaux, celui-ci ayant déjà son adresse.

images/rp153.png

Il faut, pour cela, installer le package isc-dhcp-server et configurer ensuite le fichier /etc/dhcp/dhcpd.conf.

Il faut penser à effectuer une copie de sauvegarde du fichier de configuration initial. Cela peut aider à repartir sur une situation pérenne en cas de configuration désastreuse.


# apt-get install isc-dhcp-server
 

Après l’installation, le service ne démarrera pas, car il faut le configurer pour que les occurrences du domaine et le paramétrage des sous-réseaux soient cohérents. Nous devons donc configurer le fichier dhcpd.conf en indiquant le nom du domaine et les adresses des serveurs de noms :


option domain-name "mydmn.org";  
option domain-name-servers 192.168.1.251...

Solution évoluée : SAMBA 4

1. Introduction

Aujourd’hui, il existe une alternative plus évoluée encore que ce que l’on vient de voir, en termes d’annuaire intégré. Il s’agit de la solution SAMBA 4. À ce jour, Samba AD (autre nom de SAMBA 4) est livrée avec un certain nombre d’éléments favorisant l’intégration et la centralisation des annuaires au sein même d’un annuaire unique Active Directory d’entreprise :

  • un annuaire LDAP Active Directory

  • un serveur d’authentification Kerberos

  • un serveur de noms DNS, dynamique et sécurisé

  • le support de SAMBA 3

  • un serveur de procédures distantes RPC

La suite SAMBA 4, dont la version actuelle est la 4.6, n’est pas à proprement parler un successeur plus avancé de SAMBA 3. Son développement a suivi une autre branche du projet. On peut d’ailleurs parler d’un nouveau projet au sens strict.

Ce nouveau packaging permet la prise en charge des politiques de GPO ainsi que le support de configuration grâce au service RSAT, depuis n’importe quel client Windows. Comme nous l’avons souligné grâce à la compatibilité de SAMBA 3, nous pouvons facilement administrer le domaine ainsi déclaré, en ligne de commandes, via l’utilitaire samba-tool. Cette version SAMBA 4 s’apparente donc à un contrôleur de domaine.

2. Installation de la solution

La plupart des manipulations seront effectuées sous le compte root du super-utilisateur. Il faut configurer l’interface réseau avec une adresse IP statique. Dans l’exemple qui suit, on la positionnera à la valeur 192.168.1.250 et le serveur portera le nom de debian9. Nous commençons donc par éditer le fichier /etc/network/interfaces pour y placer les lignes ci-dessous :


address 192.168.1.250  
netmask 255.255.255.0  
network 192.168.1.0  
broadcast 192.168.1.255  
gateway 192.168.1.1
 

Vous pouvez également placer la déclaration du domaine de recherche ainsi que les adresses IP des serveurs de noms :


dns-nameservers 192.168.1.251 192.168.1.252  
dns-search mydmn.org
 

Nous pouvons compléter cette configuration en éditant le fichier /etc/hostname pour y placer la ligne suivante (il est possible d’ailleurs...