# Installer ISC DHCP Server sous Debian #theme/IT/Protocols/DHCP #theme/IT/LNX/Debian #type/tuto Dans ce tutoriel, nous allons apprendre à installer et à configurer un serveur DHCP sous Debian 12. Vous pouvez utiliser une autre distribution puisque le paquet ISC DHCP Server n'est pas limité à cette distribution Linux. Pour en savoir plus sur le fonctionnement du protocole DHCP, consultez le cours [[B2-DHCP-Cours|B2-DHCP]] disponible en annexe de cette procédure. > [!danger] Attention !<span style="font-weight: normal; color: var(--text-normal)"> L'outil isc-dhcp-server n'est plus supporté depuis 2022. Il reste pleinement fonctionnel et peut être utilisé à des fins de tests ou sur un réseau isolé. Consultez [ISC DHCP Server EOL](https://www.isc.org/blogs/isc-dhcp-eol/) pour en savoir plus.</span> > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Pour installer KEA au lieu de ISC DHCP Server, lisez cet article : [[tuto-dhcp-server-lnx-kea|Installer KEA DHCP Server sous Debian]] </span> ## Environnement de Lab Dans le cadre de ce tutoriel, notre objectif sera d'installer un serveur DHCP est de distribuer la plage d'adresses IP suivante : de 192.168.100.100 à 192.168.100.120. Dans cette procédure, nous distinguerons 3 types de configurations IP : - **Statique** : L’IP est configurée par l’administrateur de la machine de façon manuelle. - **Dynamique** : La machine reçoit une IP automatiquement à partir d’un serveur DHCP. Cette adresse dispose d'une durée de vie (bail dhcp) et elle est susceptible de changer régulièrement. - **Fixe (réservation)** : C’est une adresse dynamique, mais le serveur DHCP fournit toujours la même IP (identification en fonction de l’adresse mac de la carte réseau). ## Prérequis - Une machine Debian avec une adresse IP statique, à savoir 192.168.100.99/24, pour ma part. - Aucun autre serveur DHCP actif sur le réseau afin d’éviter les conflits. - Une machine cliente (Debian, Ubuntu, Windows, etc.) configurée en client DHCP pour les tests. - Une connexion Internet pour télécharger les paquets d'installation. # Installer ISC DHCP Server > [!warning] Remarque ! <span style="font-weight: normal; color: var(--text-normal)">Les étapes de configuration pour un DHCP IPv6 ne sont pas décrites dans cet article.</span> ## Installation du paquet isc-dhcp-server Mettre à jour le système d’exploitation : ```bash sudo apt update && sudo apt upgrade ``` Installer le logiciel isc-dhcp-server, suivre les étapes ci-dessous : ```bash sudo apt install isc-dhcp-server -y ``` Il est normal de recevoir des alertes pendant l'installation, car à ce stade l'application n'est pas encore configurée ce qui fait planter le service "*isc-dhcp-server*" au démarrage. Ci-dessous le message d'échec qui s'est affiché sur ma machine de démonstration : ![[_png-tuto-dhcp-server-lnx-isc.png]] ## Configurer une étendue DHCP Identifiez le nom de l'interface qui dispose de l'adresse IP statique "192.168.100.99" avec la commande `ip a`. Dans cette démonstration, nous utiliserons l'interface nommée "*enp0s3*". > [!danger] Attention !<span style="font-weight: normal; color: var(--text-normal)"> Adaptez les configurations ci-dessous en fonction de votre environnement personnel.</span> Pour configurer le service serveur DHCP, ouvrez le fichier "*isc-dhcp-server*" : ```bash sudo nano /etc/default/isc-dhcp-server ``` Commencez par retirer le symbole "**#**" sur cette ligne pour activer la prise en charge du fichier de configuration "*dhcpd.conf*" que nous modifierons par la suite. ``` DHCPDv4_CONF=/etc/dhcp/dhcpd.conf ``` > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> La ligne `DHCPDv4_CONF=/etc/dhcp/dhcpd.conf` indique que la configuration des étendues DHCP en IPv4 s’effectue dans le fichier "*dhcpd.conf*".</span> Modifiez la ligne "*INTERFACES*" en insérant le nom de l’interface chargée de distribuer les baux DHCP : ``` INTERFACESv4="enp0s3" ``` Enregistrez et fermez le fichier. Il faut à présent configurer l'étendues IP v4 dans le fichier `/etc/dhcp/dhcpd.conf` : ``` sudo nano /etc/dhcp/dhcpd.conf ``` Dans ce fichier, vous pouvez déclarer des options au niveau du serveur ou au niveau de chaque étendue, selon vos besoins. > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Une option peut être positionnée au sein d’un bloc déclaratif “**subnet**” pour être appliquée à une étendue, ou en dehors, pour s’appliquer par défaut sur toutes les étendues.</span> Commencez par ajouter ces lignes, en adaptant selon vos besoins pour définir les options par défaut au niveau du serveur DHCP : ``` # Nom de domaine option domain-name "mon-domain.local"; # Durée pour les baux DHCP en secondes (default 10 minutes et 2 joursmaximum) default-lease-time 600; max-lease-time 7200; # Serveur DHCP principal sur ce réseau local authoritative; ``` Sous ces options de serveur, déclarez votre première étendue DHCP, ajoutez les lignes suivantes qui définissent notre étendue DHCP personnalisée : ``` # Déclaration d'une étendue DHCP subnet 192.168.100.0 netmask 255.255.255.0 { # Plage d'adresses IP à distribuer range 192.168.100.100 192.168.100.120; # Serveur(s) DNS à distribuer option domain-name-servers 1.1.1.1; # Adresse de la passerelle par défaut option routers 192.168.100.1; # Adresse de broadcast du réseau option broadcast-address 192.168.100.255; } ``` Voici le résultat : ![[_png-tuto-dhcp-server-lnx-isc-3.png]] Sauvegardez le fichier avec la combinaison de touche `[Ctrl]+[X]`, puis `[Y]` et `[Enter]`. Ensuite, redémarrez le service : ``` sudo service isc-dhcp-server restart ``` Si le service DHCP redémarre sans erreurs, félicitations votre serveur DHCP est prêt ! Sinon, vérifiez les fichiers de configurations et les étapes précédentes. ## Optionnel : Configurer une réservation DHCP Certains équipements fournissent des services accessibles depuis le réseau : une imprimante, une borne Wifi, un serveur Web, etc. Pour standardiser et faciliter l'accès à ces services, il est recommandé de **fixer l'adresse IP** de l'équipement. De cette façon, à chaque fois que le client renouvellera son bail DHCP, il obtiendra toujours la même adresse IP : **c'est une réservation DHCP**. Pour réaliser une réservation d'adresse IP fixe dans isc-dhcp-server, éditez le fichier "*dhcpd.conf*" : ``` sudo nano /etc/dhcp/dhcpd.conf ``` Ajoutez les lignes suivantes dans la configuration de l'étendue en adaptant l’adresse MAC : ``` # Nom de la réservation host client1 { # Adresse MAC client dhcp hardware ethernet 08:00:27:e2:db:fc; # Adresse fixe réservée pour l'équipement fixed-address 192.168.100.120; } ``` Voici le résultat : ![[_png-tuto-dhcp-server-lnx-isc-4.png]] # Vérifier le fonctionnement du service DHCP ## Vérifications côté client dhcp La méthode de vérification varie selon l'OS client. Ci-dessous les commandes de vérification sous Windows et sous Linux Debian like : 1. Vérifiez toujours que la carte réseau est connectée au même réseau que le serveur DHCP. 2. Vérifiez que l'interface est configurée en tant que client DHCP 3. Selon l'OS du client, suivez les étapes décrites dans ces articles : - [[kb-dhcp-client-lnx|Vérifier la configuration dhcp sur un client Linux]] - [[kb-dhcp-client-win|Vérifier la configuration dhcp sur un client Windows]] ## Vérifications côté serveur dhcp La commande suivante permet l'affichage des trames DHCP traitées par le serveur : ```shell sudo service isc-dhcp-server status ``` Par exemple : ![[_png-tuto-dhcp-server-lnx-isc-1.png]] ## Analyseur de trames (dhcpdump) Pour constater les échanges des trames en direct, ou si des problèmes persistent, utilisez "*dhcpdump*" ou "*tcpdump*". Ces outils permettent de constater que les requêtes DHCP parviennent jusqu'au serveur DHCP : - [[kb-lnx-dhcpdump|Utiliser l'analyseur de trames dhcpdump]]. - [[kb-dhcp-tcpdump-lnx|Observer les trames DORA avec tcpdump]]. # Conclusion > [!done] Félicitations ! <span style="font-weight: normal; color: var(--text-normal)">Vous êtes à présent en mesure de déployer et d'administrer un serveur DHCP sous Debian.</span> La configuration de l'étendue DHCP peut être enrichie avec d'autres options, car le serveur DHCP prend en charge de nombreuses options ([voir cette page](https://linux.die.net/man/5/dhcpd.conf)). Ici, nous avons vu les options de base pour un administrateur système et réseau. ## Références - ISC : [ISC DHCP Server](https://www.isc.org/dhcp/) - IT-CONNECT : [Serveur DHCP sous Linux](https://www.it-connect.fr/serveur-dhcp-sous-linux/)