🛠 Pi-hole : serveur DNS filtrant sur le NanoPi R5S

NanoPi R5S (FriendlyElec) · intermediaire · Schéma : IMG-nanopi-r5s-intermediaire-3-nanopir5s-pihole-dns.svg — NanoPi R5S routeur hébergeant Pi-hole : requêtes DNS du LAN traversant le port 53, listes de blocage, requêtes autorisées sortant vers le DNS amont

Objectifs

Installer un serveur DNS filtrant sur le NanoPi R5S déjà routeur : soit Pi-hole (via DietPi ou Docker), soit dnsmasq en mode filtre de listes. Le R5S est idéal pour ce rôle : toujours allumé, faible consommation, Ethernet filé, et DietPi le liste parmi les titres logiciels pris en charge depuis la v8.20. Vous apprendrez à configurer le DNS amont, à détourner le port 53 du LAN, et à vérifier que le blocage fonctionne.

Matériel

Code complet

#!/bin/bash
# Installation Pi-hole : sur DietPi, dietpi-software installe le paquet
# proprement ; sur Debian, l'installeur officiel (à examiner avant d'exécuter).
sudo apt update && sudo apt install -y pihole   # paquet dispo sur DietPi

# Sur Debian classique, installeur officiel (à examiner avant d'exécuter) :
curl -sSL https://install.pi-hole.net | bash
#   → interface amont : 1.1.1.1 ou le DNS de la box
#   → interface d'écoute : br-lan

# Détourner le DNS du LAN (clients qui ignorent le DHCP) :
sudo iptables -t nat -A PREROUTING -i br-lan -p udp --dport 53 \
    -j DNAT --to-destination 192.168.69.1:53

# Vérifier l'écoute et le filtrage
ss -lunp | grep ':53'
nslookup doubleclick.net 127.0.0.1        # doit répondre 0.0.0.0
nslookup example.com 127.0.0.1            # doit résoudre normalement

# Statistiques / console d'admin
curl -s http://127.0.0.1/admin | head -n 5

Vérification attendue

ss -lunp montre pihole-FTL en écoute sur le port 53. Une requête nslookup doubleclick.net renvoie 0.0.0.0 (bloqué) alors qu'un domaine autorisé résout normalement. La console d'admin http://192.168.69.1/admin affiche les requêtes du LAN. Les clients DHCP pointent vers 192.168.69.1. Le RK3568B2 encaisse largement un débit DNS domestique (plusieurs milliers de requêtes/s).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels