:::info <center> # :book: Installation et configuration d'un serveur DHCP </center> ::: ## Résumé de cours > DHCP = **D**ynamic **H**ost **C**onfiguration **P**rotocol Il s'agit d'un service qui permet d'allouer automatiquement des adresses IP aux clients qui se présentent sur le réseau. Ces adresses sont alloués pour un temps déterminé appelé " **bail** " (configurable) après un échange de paquets entre le client et le serveur : > DHCPSERVER ==> DHCPOFFER ==> DHCPREQUEST ==> DHCPACK Il faut impérativement qu'il n'y ait qu'un seul serveur principal sur le réseau. Ce serveur doit avoir une adresse IP fixe. Ce service implique l'installation de ***isc-dhcp-server*** sur le serveur > ISC = **I**nternet **S**oftware **C**onsortium Pour installer le serveur, il faut : - donner à celui-ci une adresse fixe `/etc/network/interfaces` - installer isc-dhcp-server `apt-get install isc-dhcp-server` - configurer le fichier `/etc/dhcp/dhcpd.conf` - lancer le daemon dhcpd par la commande `service isc-dhcp-server start` Il est recommandé de vérifier que : - le daemon fonctionne à l'aide de la commande `ps aux | grep dhcpd` - un client en mode dhcp reçoit bien une adresse IP de la part de serveur DHCP, à l'aide des commandes `ifdown eth0`, `ifup eth0` et enfin `ifconfig` ## *Architecture proposée :* ![](https://i.imgur.com/8UOcFeE.png) ## 1. Installation d'un Linux debian 9 ou 10 - Dans un premier temps, nous allons installer un serveur DHCP sous linux Debian 9. Pour cela nous allons télécharger l'iso sur le site de debian : [Lien vers l'ISO debian.org](https://www.debian.org/distrib/index.fr.html) - Ensuite installer l'ISO avec ces paramètres ci-dessous: - Debian version : 9 ou 10 - RAM : 512 Mo / 1 Go - Disque Dur : 16 Go - Carte Réseau : NAT ou Bridged - Nous allons d'abord configurer la carte réseau en **NAT** ou **Bridged** pour télécharger des paquets sur Internet et ensuite nous changerons la carte reseau en VMNet1. ![](https://i.imgur.com/it9nDUr.png) - Dans la première étape, connectez-vous à votre machine avec un compte avec des privilèges root ou directement avec l'utilisateur root et assurez-vous que votre système Debian est à jour avec les derniers correctifs de sécurité et versions de logiciels et de packages, en exécutant la commande suivante. - Mettre à jour `apt-get update` `apt-get upgrade` :abc: Cette commande `apt-get` nous permet de mettre à jour le système et d'installer/désinstaller des paquets et des modules en allant les chercher dans des dépôts. - Installer le paquet DHCP `apt-get install isc-dhcp-server` - Quelques commandes pour installer des outils supplémentaires `apt-get install open-vm-tools` `apt-get install net-tools` - Nous allons ensuite changer la configuration de la carte réseau en VMNet1 comme prévu dans l'etape precedente. Voir l'image ci-dessous. ![](https://i.imgur.com/aDIQPQI.png) ## 2. Configuration de serveur DHCP :no_entry_sign: Il est recommandé de **sauvegarder les fichiers** de configuration avant les modifications, ou de bien vouloir faire un **snapshot**. ### 2.1. Hostname, Hosts et host.conf - Le fichier /etc/hostname contient le nom de la machine. Il suffit de l'éditer pour changer le nom hôte de la machine. Changer le hostname et ajouter le nom de la machine dans le fichier hosts : `nano /etc/hostname` ```bash= debian.formation.local ``` - Ajouter dans le fichier hosts qui permet d'affecter des noms d'hôtes à des adresses IP. `nano /etc/hosts` ```bash= 127.0.0.1 localhost 127.0.1.1 debian.formation.local debian 192.168.65.200 debian.formation.local debian #The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters ``` - Le fichier /etc/host.conf contient des informations spécifiques pour la configuration de la bibliothèque de résolution de noms. Elle doit contenir un mot-clé de configuration par ligne, suivi par l'information appropriée. Les mots-clés reconnus sont order, trim, multi, nospoof, spoof et reorder. `nano /etc/host.conf` ```bash= multi on ``` ### 2.2. Service networking - Le fichier /etc/network/interfaces permet de configurer les cartes réseau de manière permanante. Cette configuration initialisera automatiquement les interfaces "lo" et ens33". L'interface "lo" est indispensable au système, il est important de l'initialiser. Elle aura systématiquement l'adresse IP `127.0.0.1`. L'interface "ens33" sera configurée avec l'adresse IP `192.168.65.200`, le masque de sous réseau `255.255.255.0` et la passerelle `192.168.65.254` (ce paramètre est facultatif). `nano /etc/network/interfaces` ```bash= auto lo iface lo inet loopback auto ens33 allow-hotplug ens33 iface ens33 inet static address 192.168.65.200 netmask 255.255.255.0 ``` - Nous allons ensuite lancer les commandes suivantes pour redémarrer les configurations réseaux. `systemctl stop networking` `systemctl start networking` ou `service networking stop ` `service networking start ` ou `/etc/init.d/networking restart` :abc: La commande **`service`** fonctionne sur les fichiers dans */etc/init.d* et a été utilisé en conjonction avec l'ancien système init. **`systemctl`** fonctionne sur les fichiers dans */lib/systemd*. - Il est recommandé de vérifier ensuite avec le paramàtre '**status**' pour consulter et pour avoir plus de details. `systemctl status networking` ![](https://i.imgur.com/82tn0vO.png) - Lancer la commander ifconfig `ifconfig` ![](https://i.imgur.com/7RR1Par.png) ### 2.3. Service isc-dhcp-server - Nous allons maintenant modifier le fichier de configuration dhcp en ajouter une adresse ip réservé pour notre serveur APACHE2 `nano /etc/dhcp/dhcpd.conf` ```bash= default-lease-time 600; max-lease-time 7200; subnet 192.168.65.0 netmask 255.255.255.0 { range 192.168.65.220 192.168.65.229; } # réserver une adresse IP pour le client debian host webmail { hardware ethernet 00:0C:29:18:25:83; fixed-address 192.168.65.230; } # bannissement du client windows8.1 par @MAC host WIN-LP1H52JV14 { hardware ethernet 00:0C:29:78:71:15; deny booting; } ``` Le client webmail (debian) doit avoir une adresse fixe fournie par le serveur DHCP qui est de `192.168.65.230`, Le client windows7 doit recevoir une adresse IP fourni par le serveur DHCP, et nous devons aussi bannir l'adresse MAC de client windows8.1 qui est de `00:0C:29:78:71:15`. - Nous devons aussi indiquer au serveur DHCP l’interface réseau à utiliser `nano /etc/default/isc-dhcp-server` ```bash= INTERFACES= "ens33" ``` - Nous modifions ensuite le fichier `/etc/resolv.conf` qui permet d'indiquer au système quels serveurs interroger pour résoudre un nom de domaine. - *nameserver : Adresse IP du serveur de noms* - *domain : Nom du domaine local* - *search : Liste de recherche pour les noms d'hôte* `nano /etc/resolv.conf` ```bash= domain formation.local search formation.local nameserver 127.0.0.1 nameserver 192.168.65.200 ``` - Nous allons ensuite lancer les commandes suivantes pour redémarrer les configurations dhcp. `systemctl stop isc-dhcp-server` `systemctl start isc-dhcp-server` ou `service isc-dhcp-server stop` `service isc-dhcp-server start` ou `/etc/init.d/isc-dhcp-server restart` - Vérifier avec le paramètre '**status**' pour consulter les details `systemctl status isc-dhcp-server` ![](https://i.imgur.com/VCVHyvc.png) ## 3. Installation des clients - Dans ce contexte, nous allons installer et configurer 3 autres clients, il s'agit de : 1. webmail (debian 9) ``` RAM : 1 Go/2 Go Disque Dur : 20 Go Carte réseau : VmNet1 Avec un serveur apache fonctionnelle avec un load balancer ``` 2. Windows 7 ``` RAM : 1 Go/2 Go Disque Dur : 20 Go Carte réseau : VmNet1 ``` 3. Windows 8.1 ``` RAM : 1 Go/2 Go Disque Dur : 20 Go Carte réseau : VmNet1 ``` - Configuration de la carte réseau VmNet1 ![](https://i.imgur.com/5Jr0vir.png) - Vérifier l'adresse IP après avoir démarré les clients avec la commande `ifconfig`. - La machine **`windows7`** aura une adresse IP de la plage entre `192.168.65.220` et `192.168.65.229`. ![](https://i.imgur.com/zNzwUDf.png) - La machine **`webmail`** aura `192.168.65.230` comme adresse car elle a été reservé par le serveur DHCP. ![](https://i.imgur.com/WRdx1ld.png) - La machine windows 8.1 aura une adresse de type 169.254.X.X. Ces adresses se nomment **APIPA** pour "**Automatic Private Internet Protocol Addressing**" soit "Adressage automatique du protocole IP". Il s'agit en réalité d'une adresse que la machine va s'attribuer automatiquement si les requêtes DHCP effectuées auparavant échouent. Pour rappel l'adresse MAC de cette machine cliente a été bannie par le serveur DHCP. C'est un réseau privé qui n'est routable ni sur Internet ni ailleurs. ![](https://i.imgur.com/UbZAZcB.png) - Nous pouvons aussi vérifier avec la commande `tail -f /var/log/syslog` la non-réception d'une adresse IP de client windows 8 bannie par le server DHCP, et l'adresse `192.168.65.225` fournie pour le client windows7. ![](https://i.imgur.com/kCrzMhi.png) - Pour assurer la bonne continuité du service DHCP, nous allons faire des pings vers les clients. ![](https://i.imgur.com/NfWvBhr.png) ![](https://i.imgur.com/LjYLVFo.png) ## 4. Lancement de serveur APACHE - Maintenant que nous avons terminé la configuration de serveur DHCP, nous allons lancer le serveur APACHE sur le navigateur de serveur DHCP. Comme nous avons installé un load balancer, on s’aperçoit en rechargeant la page plusieurs fois de suite que l’on est dirigé soit sur le site *"site1.mondomaine.local"*, soit sur le site *"site2.mondomaine.local"*. ![](https://i.imgur.com/5Hx3D5i.png) ![](https://i.imgur.com/PnnI5Ah.png) :+1: Continuer à installer le serveur DNS : :link: [Configuration DNS](https://hackmd.io/@thanush-a/config-dns-linux)