« Unbound - Pihole » : différence entre les versions
Aucun résumé des modifications |
|||
(44 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
== NetworkManager DNS == | |||
*[[Bookworm#NetworkManager_DNS|Voir DNS local sur le serveur PiHole]] | |||
*[https://www.dnscheck.tools/ dnscheck.tools] | |||
== Unbound == | == Unbound == | ||
si erreur : <code>warning: so-rcvbuf 1048576 was not granted. Got 425984. To fix: start with root permissions(linux) or sysctl bigger net.core.rmem_max</code> | |||
- Ouvrez le fichier de configuration des paramètres sysctl : | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo nano /etc/sysctl.conf | |||
</syntaxhighlight> | |||
- Ajoutez ou modifiez la ligne suivante : | |||
net.core.rmem_max=1048576 | |||
</syntaxhighlight> | |||
- Appliquez les modifications : | |||
<syntaxhighlight lang="bash" line copy> | |||
bash sudo sysctl -p | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo systemctl restart unbound | |||
</syntaxhighlight> | |||
- Vérifiez la valeur actuelle de net.core.rmem_max : | |||
<syntaxhighlight lang="bash" line copy> | |||
sysctl net.core.rmem_max | |||
</syntaxhighlight> | |||
=== Services === | === Services === | ||
Ligne 11 : | Ligne 38 : | ||
* http://gregoryborysiak.blogspot.com/2015/04/configurer-unbound-sur-raspberry-pi.html | * http://gregoryborysiak.blogspot.com/2015/04/configurer-unbound-sur-raspberry-pi.html | ||
< | <syntaxhighlight lang="bash" line> | ||
/etc/unbound/unbound.conf.d | # /etc/unbound/unbound.conf.d | ||
sudo service unbound restart | sudo service unbound restart | ||
unbound-checkconf | unbound-checkconf | ||
</syntaxhighlight> | |||
#logrotate | <syntaxhighlight lang="bash" line> | ||
# logrotate | |||
touch /var/log/unbound.log | touch /var/log/unbound.log | ||
sudo chmod 640 /var/log/unbound.log | sudo chmod 640 /var/log/unbound.log | ||
sudo chown unbound:unbound /var/log/unbound.log | sudo chown unbound:unbound /var/log/unbound.log | ||
</syntaxhighlight> | |||
<pre> | |||
/var/log/unbound.log | /var/log/unbound.log | ||
{ | { | ||
Ligne 35 : | Ligne 65 : | ||
endscript | endscript | ||
} | } | ||
</pre> | |||
#forcer logrotate | <syntaxhighlight lang="bash" line> | ||
# forcer logrotate | |||
sudo logrotate -f /etc/logrotate.d/unbound | sudo logrotate -f /etc/logrotate.d/unbound | ||
</ | </syntaxhighlight> | ||
* https://docs.pi-hole.net/guides/dns/unbound/ | * https://docs.pi-hole.net/guides/dns/unbound/ | ||
* https://echolib.in/raspberry-installer-pi-hole-unbound | * https://echolib.in/raspberry-installer-pi-hole-unbound | ||
* https://docs.pi-hole.net/guides/unbound/ | * https://docs.pi-hole.net/guides/unbound/ | ||
=== DNS over TLS (DoT) === | |||
DNS over TLS (DoT)<br /> | |||
Pas besoin d'activer DNS over TLS (DoT) directement dans Pi-hole si Unbound est déjà configuré pour utiliser un résolveur DNS en amont qui gère lui-même DoT. | |||
==== 1. Explication du flux DNS : ==== | |||
: 1. Pi-hole reçoit les requêtes DNS des clients du réseau. | |||
: 2. Unbound agit comme un résolveur DNS récursif local et transmet les requêtes DNS à un résolveur DNS en amont. | |||
: 3. Si le résolveur DNS en amont d'Unbound prend en charge DNS DoT, alors les requêtes DNS entre Unbound et le résolveur en amont seront chiffrées. | |||
Dans ce cas, Pi-hole n'a pas besoin de gérer DoT directement, car c'est Unbound qui s'en charge. | |||
==== 2. Pourquoi ne pas activer DoT dans Pi-hole ? ==== | |||
:- Redondance : Si Unbound est déjà configuré pour utiliser DoT, activer DoT dans Pi-hole serait redondant et pourrait compliquer la configuration. | |||
:- Simplicité : Laisser Unbound gérer DoT simplifie la configuration de Pi-hole et évite les conflits potentiels. | |||
:- Performance : Unbound est optimisé pour gérer les requêtes DNS récursives et peut mieux gérer le chiffrement TLS que Pi-hole. | |||
==== 3. Configuration recommandée ==== | |||
: 1. Pi-hole : | |||
::- Configurez Pi-hole pour utiliser Unbound comme résolveur DNS en amont. | |||
::- Ne configurez pas DoT dans Pi-hole, car Unbound s'en chargera. | |||
: 2. Unbound : | |||
::- Configurez Unbound pour utiliser un résolveur DNS en amont qui prend en charge DoT (par exemple, Cloudflare, Quad9 ou Google). | |||
::- Assurez-vous que DoT est activé dans la configuration d'Unbound. | |||
==== 4. Configurez Unbound ==== | |||
Pour utiliser un résolveur DNS en amont avec DoT. Par exemple, avec Cloudflare : | |||
Ouvrez le fichier de configuration d'Unbound : | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo nano /etc/unbound/unbound.conf | |||
Ajoutez les lignes suivantes : | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="yaml" line copy> | |||
forward-zone: | |||
name: "." | |||
forward-tls-upstream: yes | |||
forward-addr: 1.1.1.1@853#cloudflare-dns.com | |||
forward-addr: 1.0.0.1@853#cloudflare-dns.com | |||
</syntaxhighlight> | |||
Redémarrez Unbound : | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo systemctl restart unbound | |||
</syntaxhighlight> | |||
: Version quad 9 | |||
<syntaxhighlight lang="yaml" line copy> | |||
server: | |||
# Désactiver la résolution récursive | |||
# DNSSEC est géré par quad 9 et ne transmet pas le flag ad contrairement à d'autres (aucune incidence) | |||
module-config: "iterator" | |||
# Rediriger toutes les requêtes vers Quad9 avec DNS-over-TLS | |||
forward-zone: | |||
name: "." | |||
# quad9 via WoodyNet | |||
forward-addr: 9.9.9.9@853 # Quad9 avec DNS-over-TLS | |||
forward-addr: 149.112.112.112@853 # Secondaire Quad9 avec DNS-over-TLS | |||
forward-addr: 2620:fe::fe@853 # IPV6 Quad9 avec DNS-over-TLS | |||
forward-addr: 2620:fe::9@853 # IPV6 Secondaire Quad9 avec DNS-over-TLS | |||
forward-tls-upstream: yes # Activer DNS-over-TLS | |||
</syntaxhighlight> | |||
: test : | |||
<syntaxhighlight lang="bash" line copy> | |||
dig example.com @127.0.0.1 +dnssec | |||
</syntaxhighlight> | |||
==== 5. Vérifiez que DoT est utilisé ==== | |||
Utilisez tcpdump ou tshark pour capturer le trafic entre Unbound et le résolveur DNS en amont :<br /> | |||
DoT | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo tcpdump -i eth0 port 853 | |||
</syntaxhighlight> | |||
Vous devriez voir du trafic chiffré sur le port 853. | |||
: [https://pimylifeup.com/rapberry-pi-dns-over-https/ install cloudflared et utliser par exemple quad9] | |||
=== DNSSEC === | === DNSSEC === | ||
Ligne 83 : | Ligne 186 : | ||
* https://mediacenterz.com/tutoriel-complete-pi-hole-bloqueur-dannonces-pour-toute-la-maison/ | * https://mediacenterz.com/tutoriel-complete-pi-hole-bloqueur-dannonces-pour-toute-la-maison/ | ||
< | <syntaxhighlight lang="bash" line> | ||
#mise à jour pihole car pas apt | #mise à jour pihole car pas apt | ||
pihole -up (le repertoire admin doit se trouver ds /var/www/html) | pihole -up #(le repertoire admin doit se trouver ds /var/www/html) | ||
# relancer | # relancer | ||
Ligne 97 : | Ligne 200 : | ||
pihole -q -adlist -exact facebook.com | pihole -q -adlist -exact facebook.com | ||
</ | </syntaxhighlight> | ||
< | <syntaxhighlight lang="bash" line> | ||
pihole status | #pihole status | ||
sudo netstat -nltup | grep 'Proto\|:53 \|: | sudo netstat -nltup | grep 'Proto\|:53 \|:8082 \|:80 \|:5335 \|:443 \|:51820' | ||
</ | </syntaxhighlight> | ||
<pre> | <pre> | ||
Ligne 156 : | Ligne 259 : | ||
=== BDD de pihole === | === BDD de pihole === | ||
< | <syntaxhighlight lang="bash" line> | ||
#sqlite3 | #sqlite3 | ||
/etc/pihole/pihole-FTL.db | /etc/pihole/pihole-FTL.db | ||
Ligne 162 : | Ligne 265 : | ||
#backup avec un cron | #backup avec un cron | ||
sqlite3 /etc/pihole/pihole-FTL.db ".backup /home/pi/pihole-FTL.db.backup" | sqlite3 /etc/pihole/pihole-FTL.db ".backup /home/pi/pihole-FTL.db.backup" | ||
</ | </syntaxhighlight> | ||
* https://docs.pi-hole.net/ftldns/database/ | * https://docs.pi-hole.net/ftldns/database/ | ||
Ligne 186 : | Ligne 289 : | ||
=== Contrôle parental === | === Contrôle parental === | ||
< | <syntaxhighlight lang="bash" line> | ||
#bloquer | #bloquer | ||
pihole --wild facebook.com | pihole --wild facebook.com | ||
#débloquer | #débloquer | ||
pihole --wild -d facebook.com | pihole --wild -d facebook.com | ||
</ | </syntaxhighlight> | ||
[https://tutox.fr/2019/05/27/mettre-en-place-un-controle-parental-avec-pihole/ controle parental avec pihole] | [https://tutox.fr/2019/05/27/mettre-en-place-un-controle-parental-avec-pihole/ controle parental avec pihole] | ||
== DNS-Over-HTTPS (DoH) == | |||
En remplacement de unbound sur 127.0.0.1#5053 | |||
: [https://pimylifeup.com/rapberry-pi-dns-over-https/ install cloudflared et utliser par exemple quad9] | |||
== logs == | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo pihole -t | |||
</syntaxhighlight> | |||
Pour filtrer les logs pour une adresse IP spécifique (par exemple, 192.168.1.10), utilisez : | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo pihole -t | grep 192.168.1.10 | |||
</syntaxhighlight> | |||
Vous pouvez également consulter les logs historiques dans le fichier : | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo cat /var/log/pihole.log | grep 192.168.1.10 | |||
</syntaxhighlight> | |||
== sqllite3 == | |||
<syntaxhighlight lang="bash" line> | |||
sqllite3 | |||
sqlite> .open pihole-FTL.db | |||
# voir les tables | |||
sqlite> SELECT name FROM sqlite_master WHERE type = "table"; | |||
#nom des colonnes d'une table | |||
PRAGMA table_info(tablename); | |||
</syntaxhighlight> | |||
* Vérifier nombre d'élements à supprimer | |||
<syntaxhighlight lang="sql" line> | |||
SELECT COUNT(*) FROM query_storage | |||
WHERE EXISTS | |||
( SELECT * | |||
FROM domain_by_id | |||
WHERE query_storage.domain = domain_by_id.id AND domain_by_id.domain LIKE '%lb._dns-sd._udp.0.10.168.192.in-addr.arpa%'); | |||
DELETE FROM query_storage | |||
WHERE EXISTS | |||
( SELECT * | |||
FROM domain_by_id | |||
WHERE query_storage.domain = domain_by_id.id AND domain_by_id.domain LIKE '%lb._dns-sd._udp.0.10.168.192.in-addr.arpa%'); | |||
</syntaxhighlight> | |||
[[Catégorie: Raspian]] | [[Catégorie: Raspian]] |