Configurer un serveur DHCP
Configuration d’un serveur DHCP.
Le protocole DHCP (Dynamic Host Configuration Protocol) permet aux clients d’un réseau, ordinateur portable, et les appareils mobiles de demander et d’obtenir une adresse IP ainsi que d’autres paramètres réseaux tel que : le masque de sous-réseau, la passerelle par défaut, l’adresse des serveurs DNS, le nom du domaine…
Installation du serveur DHCP
ISC DHCP est implémentation open source de DHCP le plus largement utilisé sur Internet. Ce même logiciel peut être utilisé pour un réseau local.
root@debian~#: aptitude install isc-dhcp-server
sortie
Selecting previously unselected package isc-dhcp-server.
(Reading database ... 143127 files and directories currently installed.)
Unpacking isc-dhcp-server (from .../isc-dhcp-server_4.2.2.dfsg.1-5+deb70u6_amd64.deb) ...
Processing triggers for man-db ...
Setting up isc-dhcp-server (4.2.2.dfsg.1-5+deb70u6) ...
Generating /etc/default/isc-dhcp-server...
[....] Starting ISC DHCP server: dhcpd[....] check syslog for diagnostics. ...
invoke-rc.d: initscript isc-dhcp-server, action "start" failed.
Configuration du serveur DHCP
Avant de commencer à configurer service DHCP, il faut l’arrêter.
root@debian~#: service isc-dhcp-server stop
La sortie devrait-être la suivante, car rien n’a encore été configuré
sortie
[FAIL] Stopping ISC DHCP server: dhcpd failed!
Sinon, s’il s’agit d’une réinstallation la sortie devrait-être la suivante.
sortie
[ ok ] Stopping ISC DHCP server: dhcpd.
Le fichier de configuration est le suivant /etc/dhcp/dhcpd.conf . Le fichier est livré avec un certain nombre d’options de configuration globale.
root@debian~#: vim /etc/dhcp/dhcpd.conf
Empêcher le serveur DHCP de recevoir des informations DNS des clients.
contenu du fichier
ddns-update-style none;
Configurer le domaine et les DNS.
contenu du fichier
# option definitions common to all supported networks... option domain-name "domaine.local"; option domain-name-servers 8.8.8.8, 8.8.4.4;
La durée du bail. Le temps est réglée en secondes.
contenu du fichier
default-lease-time 86400; # 24 heures max-lease-time 604800; # 7 jours
L’option authoritative
devrait être décommentée.
Cette option indique que le serveur DHCP doit envoyer des messages DHCPNAK aux clients mal configurés. Si ce ne est pas fait, les clients ne pourront pas obtenir une adresse IP correcte après avoir changé de sous-réseaux avant l’expiration de leur ancien bail, ce qui peut être très long.
contenu du fichier
authoritative;
Configurer les plages d’adresses.
contenu du fichier
subnet 172.32.0.0 netmask 255.255.255.128 { range 172.32.0.10 172.32.0.20; # dhcp start and end IP range option subnet-mask 255.255.255.128; # subnet option broadcast-address 172.32.0.127; # broadcast option routers 172.32.0.126; # router IP }
Configuration de l’interface de service DHCP
Par défault, toutes les interfaces peuvent répondre au requête DHCP. Ce n’est pas un comportement nécessairement voulu. Voici comment configurer l’interface devant répondre au requête DHCP.
root@debian~#: vim /etc/default/isc-dhcp-server
contenu de fichier
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="eth1"
Une fois le fichier /etc/dhcp/dhcpd.conf sauvegarder, il faut tester la syntax du fichier de configuration.
root@debian~#: dhcpd -t
Ou
root@debian~#: dhcpd -t /etc/dhcp/dhcpd.conf
sortie
Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/
Ensuite on démarre le service.
root@debian~#: service isc-dhcp-server start
Le serveur DHCP est maintenant opérationnel.
sortie
[ ok ] Starting ISC DHCP server: dhcpd.
Démarrage / arrêt / redémarrage / status du serveur DHCP
Démarrage.
root@debian~#: service isc-dhcp-server start
Arrêt.
root@debian~#: service isc-dhcp-server stop
Redémarrage.
root@debian~#: service isc-dhcp-server restart
Status.
root@debian~#: service isc-dhcp-server status
Vérifier que le serveur DHCP est en fonction
root@debian~#: netstat -tulpn | grep --color "dhcp"
sortie
udp 0 0 0.0.0.0:45514 0.0.0.0:* 9679/dhcpd udp 0 0 0.0.0.0:67 0.0.0.0:* 9679/dhcpd udp6 0 0 :::12871 :::* 9679/dhcpd
On voit ici que le port 67 est en écoute pour le service DHCP.
root@debian~#: ps aux | grep --color "[d]hcpd"
sortie
root 7519 0.0 0.0 12896 60 ? Ss 15:16 0:00 /usr/sbin/dhcpd -q -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid eth1
Le service DHCP à bien un numéro de processus.
root@debian~#: pgrep dhcpd
sortie
7519
On retrouve ce même numéro de processus.
Lister les clients DHCP
root@debian~#: cat /var/lib/dhcp/dhcpd.leases
sortie
[…] lease 172.32.0.16 { starts 0 2014/12/21 09:35:00; ends 0 2014/12/21 09:45:00; cltt 0 2014/12/21 09:35:00; binding state active; next binding state free; rewind binding state free; hardware ethernet 00:50:56:39:75:93; client-hostname "client-02"; } lease 172.32.0.20 { starts 0 2014/12/21 09:38:52; ends 0 2014/12/21 09:48:52; cltt 0 2014/12/21 09:38:52; binding state active; next binding state free; rewind binding state free; hardware ethernet 00:50:56:2d:a9:89; client-hostname "client-01"; } lease 172.32.0.16 { starts 0 2014/12/21 09:39:38; ends 0 2014/12/21 09:49:38; cltt 0 2014/12/21 09:39:38; binding state active; next binding state free; rewind binding state free; hardware ethernet 00:50:56:39:75:93; client-hostname "client-02"; }
Dépannage du serveur DHCP
Par défaut, le dhcpd log toutes les sorties en utilisant la fonction syslog.
Voici comment lister les requêtes dhcp.
root@debian~#: grep dhcpd /var/log/syslog
sortie
Dec 20 17:38:59 dhcp-server dhcpd: DHCPACK on 172.32.0.18 to 00:50:56:32:91:6c (client-05) via eth1 Dec 20 17:41:04 dhcp-server dhcpd: DHCPREQUEST for 172.32.0.19 from 00:50:56:24:6c:f9 (client-04) via eth1 Dec 20 17:41:04 dhcp-server dhcpd: DHCPACK on 172.32.0.19 to 00:50:56:24:6c:f9 (client-04) via eth1 Dec 20 17:41:30 dhcp-server dhcpd: DHCPREQUEST for 172.32.0.15 from 00:50:56:3b:54:18 (client-03) via eth1 Dec 20 17:41:30 dhcp-server dhcpd: DHCPACK on 172.32.0.15 to 00:50:56:3b:54:18 (client-03) via eth1 Dec 20 17:41:44 dhcp-server dhcpd: DHCPREQUEST for 172.32.0.20 from 00:50:56:2d:a9:89 (client-01) via eth1 Dec 20 17:41:44 dhcp-server dhcpd: DHCPACK on 172.32.0.20 to 00:50:56:2d:a9:89 (client-01) via eth1
Sécuriser le serveur DHCP
Désactiver le DHCPDECLINE. Ceci afin d’éviter les attaque DoS. En effet, le client DHCP peut envoyer des messages DHCPDECLINE plusieurs fois causant la saturation du pool d’IP, ce qui à pour effet de foaire oublier au serveur DHCP les adresses des anciennes allocations.
root@debian~#: vim /etc/dhcp/dhcpd.conf
contenu du fichier
deny declines;
Désactiver le support les anciens clients BOOTP.
contenu du fichier
deny bootp;
by Nicolas SHINEY | December 19, 2014 | No Comments | Réseaux | Tags : dhcp serveur