EDIT : MAJ du 28/08/2017 : Ajout d'une 2ième option pour la liste anti-pubs (via un contributeur sur github)
__
Si on veut utiliser directement les serveurs DNS racines mondiaux, et donc ne plus utiliser ceux de notre FAI, du hotspot ou du VPN auxquels on est connecté...
L'idée est de monter directement son propre serveur DNS avec mise en cache des résultats pour de meilleures performances, et qui interrogera directement les serveurs racines pour nos requêtes de noms de domaines. Évitant les "DNS menteurs", ou si on veut tout de même aller surfer sur un site web bloqué au niveau DNS, comme en France par exemple qui censure l'accès au site "The Pirate Bay" pour n'en citer qu'un... !
Après, on apprend qu'il est tout à fait possible de choper les requêtes DNS, du type Man In The Middle... son FAI ou autre... donc on ne sera jamais vraiment sûr...
Installation du serveur DNS "Unbound" sous Debian (Wheezy 7 et Jessie 8, même combat - à priori aussi 9 Stretch) (via le user root)
apt-get install unbound
cd /etc/unbound
-téléchargement du fichier contenant les infos des serveurs DNS maîtres :
wget ftp://ftp.internic.net/domain/named.cache -O /etc/unbound/root.hints
-générer les clés TLS :
unbound-control-setup
-changer l'owner et droits des fichiers :
chown unbound:root unbound_*
chmod 440 unbound_*
-config personnalisée :
nano /etc/unbound/unbound.conf
(voir config jointe...) unbound.conf.txt
-contrôler la configuration :
unbound-checkconf /etc/unbound/unbound.conf
-redémarrage du service :
service unbound restart
-vérifier dans /etc/resolv.conf
nameserver 127.0.0.1
-(Option) check performance :
unbound-control stats
Mise à jour automatique du fichier roots.hints et redémarrage du service Unbound automatiques via une tâche cron.
-édition du fichier des taches cron de root :
crontab -e
-insérer (sur 1 seule ligne) :
00 5 * * 1 wget ftp://ftp.internic.net/domain/named.cache -O /etc/unbound/root.hints && /etc/init.d/unbound restart
Cette config indique que le fichier root.hints sera téléchargé et renommé, puis le service unbound redémarré, chaque 1er jour de la semaine (lundi) à 5h00
Option : anti-publicités
Le serveur DNS deviendra "menteur" sur une liste d'adresses diffusant du contenu publicitaire qui gave les yeux, parfois les oreilles, et soule tout particulièrement ! A mon avis, la navigation s'en va être plus fluide par conséquent, le navigateur ne téléchargeant pas toutes ces drouilles...OPTION antipub 1 (au choix) (ma préférence)
Version script qui va mettre à jour la liste de pubs + roots.hints (donc on supprime la précédente tâche cron juste au dessus dans ce tuto)
Dans un dossier, par exemple /perso/scripts, on crée le fichier unbound-MAJ-antipub-ROOTS.sh
nano unbound-MAJ-antipub-ROOTS.sh
on y insère :
#!/bin/bash
## MAJ des antipubs & serveurs ROOTS.hints, puis restart Unbound service
cd /etc/unbound
wget -q -O- 'https://raw.githubusercontent.com/notracking/hosts-blocklists/master/hostnames.txt' > /etc/unbound/unbound_antipub.txt
# on converti au format Unbound la liste telechargee
cat unbound_antipub.txt | grep '^0\.0\.0\.0' | awk '{print "local-zone: \""$2"\" redirect\nlocal-data: \""$2" A 0.0.0.0\""}' > /etc/unbound/unbound_antipub.conf
rm unbound_antipub.txt
# telechargement du fichier des serveurs racines
wget ftp://ftp.internic.net/domain/named.cache -O /etc/unbound/root.hints
/etc/init.d/unbound restart
exit 0
Rendre ce fichier exécutable !
chmod +x unbound-MAJ-antipub-ROOTS.sh
On ajoute la tâche cron qui va se lancer chaque lundi (1er jour de la semaine) à 5h00
-édition du fichier des taches cron de root :
crontab -e
-insérer (sur 1 seule ligne) :
00 5 * * 1 sh /perso/scripts/unbound-MAJ-antipub-ROOTS.sh
-appeler ce fichier dans le fichier de config de unbound, en insérant cette ligne (ou en dé-commentant la ligne si déjà présente) :
include: /etc/unbound/unbound_antipub.conf
OPTION antipub 2 (au choix) (liste nettement moins riche)
Merci au site qui gère cette liste, d'avoir converti celle-ci pour Unbound, simplifiant le boulot de notre coté ! (edit du 16nov2015) http://pgl.yoyo.org/adservers
-premier téléchargement après l'install d'unbound :
wget -q -O- 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext' > /etc/unbound/unbound_antipub.conf
-téléchargement automatique chaque lundi, juste avant la précédente tâche :
59 4 * * 1 wget -q -O- 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext' > /etc/unbound/unbound_antipub.conf
-appeler ce fichier dans le fichier de config de unbound, en insérant cette ligne (ou en dé-commentant la ligne si déjà présente) :
include: /etc/unbound/unbound_antipub.conf
OBSOLETE (mais fonctionnel)
Il faudra créer un script qui téléchargera un fichier avec toutes ces adresses, et le convertira dans un format compréhensible par Unbound :
-se placer où on veut, là où on stocke nos scripts persos par exemple :
cd /perso/scripts
nano unbound-antipub.sh
y insérer le contenu de ce fichier : unbound-antipub.sh.txt
-le rendre exécutable :
chmod +x unbound-antipub.sh
Mise à jour auto, sur le modèle précédent :
crontab -e
-insérer (sur 1 seule ligne) :
59 4 * * 1 /perso/scripts/unbound-antipub.sh
(de cette manière, chaque lundi à 4h59 > téléchargement/conversion du fichier antipub, puis 5h00 > fichier DNS maîtres, et enfin reboot auto du service unbound)
Bon c'est pas si le bordel que ca le web sans toute cette compote de pubs !!!
![https://commons.wikimedia.org/wiki/File:Spinnennetz8.JPG](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Spinnennetz8.JPG/640px-Spinnennetz8.JPG)
Réf:
https://unbound.net/
Unbound : Serveur DNS à la maison | requêtes aux DNS racines mondiaux
- Wiki - Tutos - Notes ( MinosHome | MH8 )
- Linux
- Debian (et autres...)
- Unbound : Serveur DNS à la maison | requêtes aux DNS racines mondiaux