« 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


<pre>
<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
</pre>
</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/


<pre>
<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
</pre>
</syntaxhighlight>


<pre>
<syntaxhighlight lang="bash" line>
pihole status
#pihole status
sudo netstat -nltup | grep 'Proto\|:53 \|:67 \|:80 \|:471'
sudo netstat -nltup | grep 'Proto\|:53 \|:8082 \|:80 \|:5335 \|:443 \|:51820'
</pre>
</syntaxhighlight>


<pre>
<pre>
Ligne 156 : Ligne 259 :


=== BDD de pihole ===
=== BDD de pihole ===
<pre>
<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"
</pre>
</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 ===
<pre>
<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
</pre>
</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]]