← Retour
Informatique

DHCP et DNS

Cédrix · 21/02/2021

En solution de DNS, j'en connais deux : Bind9 et dnsmasq.

Bind9 (appelé également bind ou named) est mondialement connu et utilisé, mais il demande une gymnastique intellectuelle assez avancée pour le maîtriser. Quant à dnsmasq, plus rapide de configuration, il permet également de configurer un service DHCP. Il a également l'avantage de s'appuyer sur le fichier /etc/hosts pour déclarer des adresses locales.

Configuration testée sous Debian et Raspbian.

- Configurer l'adresse IP du serveur

Il faut fixer l'adresse IP de l'ordinateur. Il est impératif de ne pas être en DHCP pour cet ordinateur. Le fichier /etc/dhcpcd.conf doit être modifié afin de faire apparaître les options suivantes. Les lignes suivantes ont été décommentées (suppression du symbole #) et les paramètres modifiés.

interface eth0
static ip_address=192.168.100.1/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.100.254
static domain_name_servers=127.0.0.1 9.9.9.9 1.1.1.1

- Définir le nom du serveur

L'ordinateur s'appellera rpinas. A adapter avec votre configuration

sudo hostnamectl set-hostname rpinas

- Installation

$ sudo apt install dnsmasq

- Configurer dnsmasq

Décommenter la ligne suivante dans le fichier /etc/dnsmasq.conf avec les droits root :

conf-dir=/etc/dnsmasq.d/,*.conf

Ajouter ça propre configuration dans un nouveau fichier de configuration avec les droits root. Par exemple /etc/dnsmasq.d/acegrp.conf :

alias=8.8.8.8,192.168.100.1

listen-address=127.0.0.1,192.168.100.1

domain-needed
bogus-priv
filterwin2k

localise-queries
local=/lan/
domain=acegrp.lan
expand-hosts
no-negcache
resolv-file=/etc/resolv.personal
dhcp-authoritative
dhcp-leasefile=/tmp/dhcp.leases

# use /etc/ethers for static hosts; same format as --dhcp-host
#read-ethers

# activez le serveur DHCP:
# Plage DHCP
dhcp-range=192.168.100.1,192.168.100.254,1h

# Netmask
dhcp-option=1,255.255.255.0

# Route
dhcp-option=3,192.168.100.254

# Serveur DNS
dhcp-option=6,192.168.100.1

#IP reserved
dhcp-host=00:24:1d:8b:b4:74,srv5,192.168.100.5,infinite   # ancien serveur
dhcp-host=b8:27:eb:2b:f9:6e,rpiapt001,192.168.100.3   # cache apt
dhcp-host=00:22:4d:9d:47:03,dskcdc001,192.168.100.100,infinite   # poste fixe Cédric
dhcp-host=64:51:06:4e:b0:c3,dskosm001,192.168.100.101,infinite   # poste fixe Osseam
dhcp-host=00:21:5a:5f:a5:bd,dsktmp001,192.168.100.102,infinite   # poste ?
dhcp-host=b8:27:eb:94:a5:67,rpisalon,192.168.100.103,infinite    # Raspberry Pi Salon
dhcp-host=b8:27:eb:7b:d0:83,rpiampere,192.168.100.104,infinite   # Raspberry Pi Ampere
dhcp-host=80:fa:5b:49:c1:38,dskluc001,192.168.100.105,infinite   # Poste fixe Lux
dhcp-host=00:21:b7:6d:ae:65,lexmark41,192.168.100.106,infinite   # Imprimante Lexmark41
dhcp-host=34:27:92:85:cb:78,fbxply001,192.168.100.107,infinite   # freebox delta player
dhcp-host=00:0f:3d:12:7e:a7,di602,192.168.100.254,infinite       # routeur

# LOG
#log-dhcp
#log-queries
log-facility=/var/log/dnsmasq.log

Modifier le fichier /etc/resolv.personal

nameserver 1.1.1.1
nameserver 9.9.9.9

Il faut redémarrer l'appareil : sudo reboot

Gérer le service dnsmasq

Démarrer le service :

$ sudo systemctl restart dnsmasq

Configurer le service en démarrage automatique

$ sudo systemctl enable dnsmasq

Vérifier le fonctionnement du service dnsmasq sudo systemctl enable dnsmasq

- Alias DNS

Le fichier /etc/hosts est lu par DNSmasq afin d'établir un référentiel adresse IP / nom de domaine. Il convient de déclarer son ordinateur tel quel et d'autres références :

127.0.1.1       rpinas rpinas.acegrp.lan
192.168.100.3   rpiapt001.acegrp.lan pi.hole
192.168.100.254 di604.acegrp.lan

- DNS menteur

Vous pouvez répondre une bêtise à la place de la réponse DNS mondial.

Créer un fichier /etc/dnsmasq.d/deny.conf pour de fausses résolutions :

# bloque un site à éviter parmi tant d'autres
address=/facebook.com/127.0.0.1
address=/double-click.net/127.0.0.1
address=/gstatic.com/127.0.0.1
address=/aticdn.net/127.0.0.1
address=/googletagmanager.com/127.0.0.1
address=/consensu.org/127.0.0.1
address=/google.com/127.0.0.1
address=/youtube.com/127.0.0.1

Il faudra redémarrer dnsmasq : sudo systemctl restart dnsmasq

Bilbiographie

Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.