Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
debian10:dns_unbound [2020/05/10 12:41] jpg [Mise en place du blocage supplémentaire] |
debian10:dns_unbound [2020/05/10 17:59] (Version actuelle) jpg [Blocage des DMP avec Unbound] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Un dns c'est quoi [[https://fr.wikipedia.org/wiki/Domain_Name_System | DNS. ]] | Un dns c'est quoi [[https://fr.wikipedia.org/wiki/Domain_Name_System | DNS. ]] | ||
+ | La source de la documentation officielle (en anglais) [[https://nlnetlabs.nl/documentation/unbound/ | est ici.]] | ||
+ | |||
+ | Je me suis aussi inspiré d'un tuto de [[https://static.cinay.xyz/2018/04/unbound-resolveur-DNS.html | Yannick]] sur le sujet. | ||
===== Installation ===== | ===== Installation ===== | ||
sudo apt update && sudo apt upgrade | sudo apt update && sudo apt upgrade | ||
Ligne 41: | Ligne 44: | ||
===== Configuration ===== | ===== Configuration ===== | ||
Tout ce passe dans le fichier **/etc/unbound/unbound.conf**. \\ | Tout ce passe dans le fichier **/etc/unbound/unbound.conf**. \\ | ||
- | On peut modifier directement ce fichier mais personnellement je préfère créer un fichier contenant ma config dans **/etc/unbound/unbound.conf.d/perso.conf** | + | On peut modifier directement ce fichier mais personnellement je préfère créer deux fichiers contenant ma config dans **/etc/unbound/unbound.conf.d/perso.conf** et **/etc/unbound/unbound.conf.d/default.conf** |
- | Mon fichier de configuration amplement inspirer du web. \\ | + | Mes fichiers de configuration amplement inspiré du web. \\ |
- | [[http://download.tuxfamily.org/popaul77/gulliver77/perso.conf | le fichier de configuration]] | + | [[http://download.tuxfamily.org/popaul77/gulliver77/default.conf | Le fichier de configuration du serveur.]]\\ |
- | ==== Ma configuration ==== | + | [[http://download.tuxfamily.org/popaul77/gulliver77/perso.conf | Mon fichier perso.]] |
+ | ===== Ma configuration ===== | ||
+ | |||
+ | ===default.conf=== | ||
+ | <code> | ||
+ | server: | ||
+ | interface: 0.0.0.0 # 0.0.0.0 unbound sur toutes les interfaces | ||
+ | interface: ::0 | ||
+ | access-control: 0.0.0.0/0 allow | ||
+ | access-control: ::/0 allow | ||
+ | root-hints: "/var/lib/unbound/root.hints" | ||
+ | verbosity: 0 # 0 messages (erreurs uniquement) | ||
+ | |||
+ | num-threads: 2 | ||
+ | msg-cache-slabs: 4 | ||
+ | rrset-cache-slabs: 4 | ||
+ | infra-cache-slabs: 4 | ||
+ | key-cache-slabs: 4 | ||
+ | rrset-cache-size: 100m | ||
+ | msg-cache-size: 50m | ||
+ | outgoing-range: 465 | ||
+ | so-rcvbuf: 4m | ||
+ | so-sndbuf: 4m | ||
+ | port: 53 | ||
+ | do-ip4: yes | ||
+ | do-ip6: yes | ||
+ | do-udp: yes | ||
+ | do-tcp: yes | ||
+ | do-daemonize: yes | ||
+ | hide-identity: yes | ||
+ | hide-version: yes | ||
+ | harden-glue: yes | ||
+ | harden-dnssec-stripped: yes | ||
+ | harden-referral-path: yes | ||
+ | use-caps-for-id: yes | ||
+ | prefetch: yes | ||
+ | |||
+ | # Blocage des sites de pub et plus | ||
+ | include: "/etc/unbound/unbound.conf.d/adslist" | ||
+ | |||
+ | </code> | ||
+ | |||
+ | //Il est possible d'améliorer la configuration du serveur en limitant les requettes au réseau local et plein d'autre chose mais j'ai encore quelques tests a faire avant de modifier ma configuration par défaut.//\\ | ||
+ | [[https://nlnetlabs.nl/documentation/unbound/howto-optimise/ | Optimiser unbound.]] | ||
+ | |||
+ | Quelques paramètres a modifier: | ||
<code> | <code> | ||
- | #server: | + | interface: 192.168.1.74 |
- | port: 53 #port d'écoute | + | interface: ::1 |
- | do-ip4: yes # | + | do-ip4: yes |
- | do-ip6: yes # | + | do-ip6: yes |
- | do-udp: yes #protocole autorisé | + | do-udp: yes |
- | do-tcp: yes #indique de communiquer sur le protocole TCP | + | do-tcp: yes |
- | #interface: 0.0.0.0 | + | |
- | access-control: 192.168.1.0/24 allow | + | |
- | interface: 192.168.1.113 #requi wifi | + | |
- | #interface: 192.168.4.21 #requi rj45 | + | |
- | #interface: 192.168.3.21 #requi rj45 | + | |
- | #interface: 192.168.2.21 #requi rj45 | + | |
- | interface: 127.0.0.1 #? | + | |
- | access-control: 127.0.0.1 allow #? | + | |
- | access-control: 192.168.1.0/24 allow #requis rj45 | + | |
- | #access-control: 192.168.2.0/24 allow #requis rj45 | + | |
- | #access-control: 192.168.3.0/24 allow #requis rj45 | + | |
- | #access-control: 192.168.4.0/24 allow #requis rj45 | + | |
- | #access-control: 192.168.1.0/24 allow #requis wifi (pas en service) | + | |
- | private-address: 192.168.1.0/24 #renforce le coter priver et protège de la technique des "Relais DNS" | + | |
- | unwanted-reply-threshold: 10000000 #éviter l'empoisonnement DNS | + | |
- | aggressive-nsec: yes | + | |
- | harden-algo-downgrade: no #l algorithme le plus faible est exclut no | + | |
- | hide-identity: yes # | + | |
- | hide-version: yes | + | |
- | harden-glue: yes | + | |
- | #ssl-upstream: yes # oblige à communiquer sur le protocole TLS. :yes:erreur :debug: tcp error for address 8.8.8.8 port 53 | + | |
- | #ssl-port: 853 | + | |
- | prefetch: yes # garde en cache les bons résultats | + | |
- | prefetch-key: yes # | + | |
- | cache-min-ttl: 100000 #durée minimal | + | |
- | cache-max-ttl: 200000 #durée max | + | |
- | key-cache-size: 50m | + | |
- | infra-cache-numhosts: 1000000 #nombre de hosts qui peuvent être mis en cache | + | |
- | do-ip6: no #désactive les requetes ipv6 | + | |
- | tcp-idle-timeout: 15000 #délais avant de signaler un timeout sur la connexion | + | |
- | harden-below-nxdomain: yes | + | # autoriser mon serveur |
- | harden-dnssec-stripped: yes #DNSSEC pour les zones de confiance | + | access-control: 127.0.0.0/8 allow |
- | val-clean-additional: no #toutes les données DNS non sécurisées son effacee | + | |
- | do-not-query-localhost: yes #permet d'interroger localhost | + | |
- | so-reuseport: yes #Linux seulement améliore les performance udp | + | |
- | #serve-expired: <yes or no> # tester | + | |
- | num-threads: 4 | + | |
- | key-cache-slabs: 8 | + | |
- | infra-cache-slabs: 8 | + | |
- | msg-cache-slabs: 8 | + | |
- | rrset-cache-slabs: 8 | + | |
- | key-cache-size: 100m | + | |
- | key-cache-slabs: 2m | + | |
- | harden-short-bufsize: yes #contre les très petites tailles de mémoire tampon EDNS. | + | |
- | harden-large-queries: yes #contre les requêtes volumineuses | + | |
- | num-queries-per-thread: 100 | + | |
- | root-hints: "/var/lib/unbound/root.hints" #chemins des serveurs racine | + | |
- | val-log-level: 2 #log | + | # autoriser les réseaux locaux |
- | verbosity: 5 #plage de 1 a 5 , 5 permet le plus parlant | + | access-control: 192.168.1.0/24 allow |
- | log-time-ascii: yes #valable sur un autre fichier que syslog | + | access-control: 192.168.2.0/24 allow |
- | log-queries: yes #affiche une ligne par requête | + | |
- | log-replies: yes #affiche une ligne par requête,(réponse) | + | |
- | log-local-actions: yes #affiche les info de la zone local | + | |
- | log-servfail: yes #afficher pourquoi les requêtes renvoient SERVFAIL Ref doc | + | |
- | logfile: /var/log/unbound.log #chemin d'accès | + | # interdire tout le reste |
- | + | access-control: 0.0.0.0/0 refuse | |
- | private-domain: "gull-server" # mon domaine local | + | |
- | + | ||
- | forward-zone: | + | |
- | name: "." | + | |
- | #forward-addr: 192.168.0.1@53 | + | |
- | forward-addr: 1.1.1.1@53 | + | |
- | forward-addr: 1.0.0.1@53 | + | |
- | forward-addr: 65.2.17.60@53 | + | |
- | forward-addr: 65.2.17.61@53 | + | |
- | forward-addr: 66.2.24.158@53 | + | |
- | forward-addr: 67.2.24.162@53 | + | |
- | #forward-addr: 8.8.8.8@53 ## dns google | + | |
+ | Temps de rétention du cache | ||
+ | cache-min-ttl: 3600 | ||
+ | cache-max-ttl: 86400 | ||
+ | |||
+ | Nombre de réponses pourries avant que le cache se vide | ||
+ | unwanted-reply-threshold: 10000 | ||
+ | </code> | ||
- | server: | + | ===perso.conf=== |
+ | <code> | ||
- | include: "/etc/unbound/unbound.conf.d/adslist" | + | # mon serveur virtuel de test |
+ | local-data: "deb-cloud. IN A 192.168.1.74" | ||
+ | local-data: "deb-cloud.popaul77.lan. IN A 192.168.1.74" | ||
+ | local-data: "popaul77.lan. IN A 192.168.1.74" | ||
- | # mon serveur | + | # le raspberry qui a aussi un dns unbound fonctionnel |
- | local-data: "gull-server. IN A 192.168.1.113" | + | local-data: "raspberry. IN A 192.168.1.107" |
- | local-data: "gull-server.popaul77.lan. IN A 192.168.1.113" | + | |
- | local-data: "popaul77.lan. IN A 192.168.1.113" | + | # ma machine portable |
+ | local-data: "mydell. IN A 192.168.1.60" | ||
+ | |||
+ | # Tuxmachine fixe | ||
+ | local-data: "tuxmachine. IN A 192.168.1.50" | ||
</code> | </code> | ||
- | |||
==== Vérification et redémarrage ==== | ==== Vérification et redémarrage ==== | ||
- | unbound-checkconf va lire le fichier et afficher les erreurs (corriger si nécessaire). | + | Tester le fichier de configuration. |
- | | + | unbound-checkconf |
+ | Redemarrer unbound | ||
systemctl start unbound (démarre le serveur) | systemctl start unbound (démarre le serveur) | ||
systemctl reload unbound recharge la configuration) | systemctl reload unbound recharge la configuration) | ||
Ligne 241: | Ligne 243: | ||
===== Blocage des DMP avec Unbound ===== | ===== Blocage des DMP avec Unbound ===== | ||
- | **Attention tout ce qui se trouve dans ce paragraphe ne fonctionne pas chez moi et plante le serveur, je cherche une solution. \\ | + | NOTE: Cette procédure n'est valide qu'avec une version égale ou supérieure à la version 1.7 de unbound, sur Raspbian ou Debian il faut donc une Buster (10) pour avoir cette version de Unbound. |
- | Pour le moment j'ai gardé les fichiers mais en mode inactif (renommé sans le .conf)** | + | |
- | + | Pour les curieux il faut faire un tour sur ce site[[https://framagit.org/Shaft/blocage-dmp-unbound | Blocage de DMP avec unbound]] où les fichiers nécessaires sont maintenu à jour. | |
- | [[https://framagit.org/Shaft/blocage-dmp-unbound | Blocage de DMP avec unbound]] | + | |
Ce projet regroupe la configuration nécessaire pour Unbound afin de bloquer certaines « Data Management Platforms » (DMP) utilisées par de plus en plus de sites (liberation.fr, oui.scnf, lemonde.fr, fnac.com...) et qui échappent – pour l'instant aux bloqueurs de traqueurs traditionnels (uBlock Origin ou uMatrix par exemple) ou un peu plus sophistiqué. | Ce projet regroupe la configuration nécessaire pour Unbound afin de bloquer certaines « Data Management Platforms » (DMP) utilisées par de plus en plus de sites (liberation.fr, oui.scnf, lemonde.fr, fnac.com...) et qui échappent – pour l'instant aux bloqueurs de traqueurs traditionnels (uBlock Origin ou uMatrix par exemple) ou un peu plus sophistiqué. | ||
Ligne 253: | Ligne 253: | ||
==== Mise en place du blocage supplémentaire ==== | ==== Mise en place du blocage supplémentaire ==== | ||
Copier [[http://download.tuxfamily.org/popaul77/gulliver77/blocked.zone | blocked.zone]] dans /var/lib/unbound/ \\ | Copier [[http://download.tuxfamily.org/popaul77/gulliver77/blocked.zone | blocked.zone]] dans /var/lib/unbound/ \\ | ||
+ | wget http://download.tuxfamily.org/popaul77/gulliver77/blocked.zone /var/lib/unbound/blocked.zone | ||
+ | chown unbound:unbound /var/lib/unbound/blocked.zone | ||
+ | |||
Copier la version Debian de [[http://download.tuxfamily.org/popaul77/gulliver77/adblock-war.conf | adblock-war.conf]] dans /etc/unbound/unbound.conf.d/ \\ | Copier la version Debian de [[http://download.tuxfamily.org/popaul77/gulliver77/adblock-war.conf | adblock-war.conf]] dans /etc/unbound/unbound.conf.d/ \\ | ||
+ | wget http://download.tuxfamily.org/popaul77/gulliver77/adblock-war.conf /etc/unbound/unbound.conf.d/adblock-war.conf | ||
+ | chown unbound:unbound /etc/unbound/unbound.conf.d/adblock-war.conf | ||
+ | | ||
+ | Tester la nouvelle configuration | ||
+ | unbound-checkconf | ||
Redémarrer Unbound et c'est normalement fonctionnel | Redémarrer Unbound et c'est normalement fonctionnel | ||
+ | systemctl restart unbound | ||
+ | systemctl status unbound | ||
- | Verifier que ça fonctionne car chez moi c'est pas le cas (mais je creuse) | + | Verifier que ça fonctionne. |
+ | |||
+ | <code> | ||
+ | dig v.oui.sncf | ||
+ | |||
+ | ; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> v.oui.sncf | ||
+ | ;; global options: +cmd | ||
+ | ;; Got answer: | ||
+ | ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5341 | ||
+ | ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 | ||
+ | |||
+ | ;; OPT PSEUDOSECTION: | ||
+ | ; EDNS: version: 0, flags:; udp: 4096 | ||
+ | ;; QUESTION SECTION: | ||
+ | ;v.oui.sncf. IN A | ||
+ | |||
+ | ;; ANSWER SECTION: | ||
+ | v.oui.sncf. 3600 IN CNAME voyages-sncf.eulerian.net. | ||
+ | |||
+ | ;; AUTHORITY SECTION: | ||
+ | eulerian.net. 10800 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800 | ||
+ | |||
+ | </code> | ||
- | dig v.oui.sncf | + | Le domaine eulerian.net est redirigé sur localhost. |
---- | ---- |