📡 Serveur DHCP/DNS/NAT avec Dnsmasq Link to heading
“Un serveur bien configuré est la base d’une infrastructure réseau fiable.”
🔍 Introduction Link to heading
La mise en place d’un serveur DHCP + DNS + NAT est une compétence essentielle pour tout administrateur réseau. Avec Dnsmasq, nous allons créer un serveur tout-en-un léger et performant.
Dans cette deuxième partie, je vous guide pas à pas pour configurer votre propre serveur avec un domaine personnalisé.
🛠️ Prérequis Link to heading
- Linux (Debian/Ubuntu)
- Deux interfaces réseau :
eth0: Connexion Internet (WAN)eth1: Réseau local (LAN)
- Accès root (sudo)
- Connaissances de base en réseau et Linux
🔧 Étape 1 : Configuration des interfaces Link to heading
Fichier : /etc/network/interfaces
# Interface WAN (eth0) - DHCP
auto eth0
iface eth0 inet dhcp
# Interface LAN (eth1) - Statique
auto eth1
iface eth1 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255Redémarrer les interfaces :
sudo systemctl restart networking
# ou
sudo ifdown eth0 eth1 && sudo ifup eth0 eth1📦 Étape 2 : Installation de Dnsmasq Link to heading
# Mise à jour
sudo apt update
# Installation
sudo apt install dnsmasq -y
# Vérification
dnsmasq --version⚙️ Étape 3 : Configuration de Dnsmasq Link to heading
Sauvegarder la configuration par défaut :
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
sudo nano /etc/dnsmasq.confConfiguration complète :
# ==========================================
# CONFIGURATION DNSMASQ
# Serveur DHCP + DNS + NAT
# Domaine : atte-thm.cg
# ==========================================
# ---------- INTERFACE ----------
interface=eth1
listen-address=10.0.0.1
bind-interfaces
# ---------- DHCP ----------
dhcp-range=10.0.0.10,10.0.0.200,12h
dhcp-option=3,10.0.0.1 # Passerelle
dhcp-option=6,10.0.0.1 # DNS
dhcp-option=15,atte-thm.cg # Domaine
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative
# ---------- DNS ----------
domain=atte-thm.cg
expand-hosts
local=/atte-thm.cg/
# ---------- Enregistrements DNS ----------
# Serveur
address=/server.atte-thm.cg/10.0.0.1
address=/srv.atte-thm.cg/10.0.0.1
# Services
address=/www.atte-thm.cg/10.0.0.1
address=/mail.atte-thm.cg/10.0.0.1
address=/ftp.atte-thm.cg/10.0.0.1
address=/vpn.atte-thm.cg/10.0.0.1
# Clients statiques (optionnel)
# dhcp-host=00:11:22:33:44:55,client1,10.0.0.10,infinite
# dhcp-host=00:11:22:33:44:66,client2,10.0.0.11,infinite
# ---------- Serveurs DNS externes ----------
no-resolv
server=1.1.1.1 # Cloudflare
server=1.0.0.1 # Cloudflare
server=8.8.8.8 # Google
server=8.8.4.4 # Google
# ---------- Cache ----------
cache-size=1000
neg-ttl=60
# ---------- Logs ----------
log-queries
log-facility=/var/log/dnsmasq.log
log-async
# ---------- Sécurité ----------
domain-needed
bogus-privRedémarrer Dnsmasq :
sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq🔥 Étape 4 : Configuration du NAT Link to heading
Activer le forwarding IP :
# Temporaire
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
# Permanent
sudo nano /etc/sysctl.conf
# Ajouter : net.ipv4.ip_forward=1
sudo sysctl -pConfigurer iptables (NAT) :
# NAT (Masquerade)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Forwarding
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPTSauvegarder les règles :
sudo apt install iptables-persistent -y
sudo netfilter-persistent save🚀 Étape 5 : Tester et vérifier Link to heading
Tester le DHCP :
# Depuis un client
sudo dhclient -v eth1
# Voir les leases
sudo cat /var/lib/misc/dnsmasq.leasesTester la résolution DNS :
# Depuis le serveur
nslookup server.atte-thm.cg 10.0.0.1
dig server.atte-thm.cg @10.0.0.1
# Depuis un client
ping -c 4 server.atte-thm.cg
ping -c 4 www.atte-thm.cgTester le NAT :
# Depuis un client
ping -c 4 8.8.8.8
ping -c 4 google.com
curl -I http://google.com📊 Vérification complète Link to heading
echo "=== VÉRIFICATION DU SERVEUR ==="
echo -e "\n🔍 Services :"
sudo systemctl status dnsmasq --no-pager
echo -e "\n🔍 Forwarding IP :"
cat /proc/sys/net/ipv4/ip_forward
echo -e "\n🔍 Règles NAT :"
sudo iptables -t nat -L -v | grep MASQUERADE
echo -e "\n🔍 Leases DHCP :"
sudo cat /var/lib/misc/dnsmasq.leases
echo -e "\n🔍 Résolution DNS :"
dig server.atte-thm.cg @10.0.0.1 +short
echo -e "\n🔍 Connectivité Internet :"
ping -c 2 8.8.8.8
echo -e "\n=== VÉRIFICATION TERMINÉE ==="🔧 Dépannage Link to heading
Problème : Le DHCP ne fonctionne pas
# Vérifier les logs
sudo tail -f /var/log/dnsmasq.log
# Tester la configuration
sudo dnsmasq --test
# Redémarrer
sudo systemctl restart dnsmasqProblème : Le NAT ne fonctionne pas
# Vérifier le forwarding
cat /proc/sys/net/ipv4/ip_forward
# Doit afficher 1
# Vérifier les règles
sudo iptables -t nat -L -v
sudo iptables -L FORWARD -vProblème : DNS ne résout pas
# Vérifier resolv.conf
cat /etc/resolv.conf
# Tester directement
nslookup google.com 10.0.0.1🔐 Sécurisation du serveur Link to heading
Pare-feu UFW :
sudo apt install ufw -y
# Autoriser les services
sudo ufw allow 53/tcp # DNS
sudo ufw allow 53/udp # DNS
sudo ufw allow 67/udp # DHCP
sudo ufw allow 68/udp # DHCP
sudo ufw allow 22/tcp # SSH
# Activer
sudo ufw enableSécuriser SSH :
sudo nano /etc/ssh/sshd_configPort 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yessudo systemctl restart sshd📚 Pour aller plus loin (Serveur) Link to heading
- 🔒 Ajouter un serveur VPN (WireGuard/OpenVPN)
- 📊 Mettre en place un monitoring (Grafana/Prometheus)
- 🛡️ Configurer un pare-feu avancé
- 📝 Mettre en place des backups
📡 Ressources (Serveur) Link to heading
🎯 Conclusion Link to heading
Vous avez maintenant les compétences pour :
✅ Auditer vos réseaux WiFi avec Kali Linux
✅ Sécuriser vos réseaux sans fil
✅ Configurer un serveur DHCP + DNS + NAT avec Dnsmasq
✅ Tester et dépanner votre infrastructure
“La sécurité et l’infrastructure sont les piliers d’un système fiable.” 🔒
Merci d’avoir lu cet article ! N’hésitez pas à partager vos retours. 🔒