Outils pour utilisateurs

Outils du site


netadmin:dhcp:configurer-serveur-dhcp

DHCP: Configuration du serveur

Notes d'installation/configuration d'un serveur DHCP sous debian/ubuntu.

Installation

Installer le serveur DHCP via apt

sudo apt-get install isc-dhcp-server

Paramétrage du serveur

Dé-commenter la directive authoritative et modifier les temps de prêt:

default-lease-time 86400;
max-lease-time 604800;

Déclarer au moins un réseau. Dans l'exemple ci-dessous on propose quelques options usuelles:

subnet 192.168.0.0 netmask 255.255.255.0 {
  option domain-name "test.lan";
  option domain-name-servers 192.168.0.53, 192.168.0.153;
  option routers 192.168.0.254;
  option ntp-servers ntp.test.lan;

}
La portée de la directive option diffère selon le bloc de déclaration. Les options déclarées dans un réseau sont spécifiques au réseau, les options déclarées hors de tout bloc sont globales.

Sécuriser le service

Désactiver les fonctionnalités non utilisées:

# Pas de mise a jour d'informations DNS en provenance des clients
ddns-update-style none;
 
# Prévention des attaques DoS, ne prends pas en compte les requetes DHCPDECLINE
deny declines;
 
# Les postes dont l'adresse MAC n'a pas été déclaréen'auront pas d'adresse automatiquement
# attribuée.
deny unknown-clients;
 
# Désactivation du support de BOOTP
deny bootp;

Spécifier des adresses fixes

Il est possible d'associer une adresse à un poste particulier. Il recevra du serveur DHCP systématiquement cette même adresse.

host pc-du-salon {
  hardware ethernet 00:21:24:fb:33:a7;
  fixed-address 192.168.0.10;
}

Pour ne fournir des IPs qu'aux postes préalablement déclarées, il existe la directive suivante:

deny unknown-clients;

De cette manière le serveur DHCP ne fournira des adresses qu'aux postes déclarés.

Tester la configuration

Il est possible de vérifier la syntaxe du fichier de configuration:

sudo /usr/sbin/dhcpd -t -cf /path/to/file.conf

Les logs

Le serveur DHCP émet ces message en direction de syslog (rsyslog pour Ubuntu) avec la catégorie local7 via la directive:

log-facility local7;

Par défaut les message sont enregistrés dans /var/log/syslog. pour enregistrer les messages émis par le serveur DHCP dans un fichier de configuration dédié, il faut légèrement modifier la configuration de rsyslog.

Editer le fichier /etc/rsyslog.d/50-default.conf

La ligne originale:

*.*;auth,authpriv.none          -/var/log/syslog

Dans la ligne originale le sélecteur capture tous les messages provenant de toutes catégories et de toutes priorités sauf les catégories auth et authpriv. Il les enregistre dans le fichier /var/log/syslog. Pour que les messages émis par le serveur DHCP ne soient pas enregistrés dans ce fichier on exclue également local7:

La ligne une fois modifiée:

*.*;auth,authpriv,local7.none          -/var/log/syslog

Créer le fichier /etc/rsyslog.d/60-dhcpd.conf avec le contenu suivant:

local7.*      /var/log/dhcpd.log

Créer le fichier de log, définir les droits et redémarrer rsyslog:

touch /var/log/dhcpd.log
chown syslog:adm /var/log/dhcpd.log
service rsyslog restart

Le fichier /var/lib/dhcp/dhcpd.leases est mis à jour par le serveur lors des attributions dynamiques dans un pool d'adresses.

Ce fichier peut rester vide si la configuration du serveur ne contient que des hôtes configurés en adresse fixe.

Spécifier les interfaces d'écoute

Il est possible de spécifier sur quelle(s) interface le serveur DHCP écoute et répond au requêtes clientes via le fichier /etc/default/isc-dhcp-server. Par défaut le serveur écoute sur toutes les interfaces.

# Par défaut le serveur écoute sur toutes les interfaces
#INTERFACES=""

# La directive précédente est commentée et remplacée par celle ci-dessous imposant d’écouter
# seulement sur l'interface eth0
INTERFACES="eth0"

Troubleshooting

Par défaut le serveur DHCP écoute sur le port UDP 67 l'argument -p ou la directive local-port permettent de modifier la valeur par défaut. Voir le wiki pour vérifier le port d'écoute du serveur.

Le client reçoit les réponses du serveur sur le port UDP 68. Ces ports sont nommées bootps et bootpc dans le fichier /etc/services.

Le serveur DHCP refuse de se lancer si l'interface n'a pas une adresse correspondant au réseau déclaré dans le fichier de configuration.

La commande dhcpdump permet d'afficher sur la console les paquets DHCP:

dhcpdump -i eth0

Références

netadmin/dhcp/configurer-serveur-dhcp.txt · Dernière modification : 2022/02/23 11:56 de yoann