Outils pour utilisateurs

Outils du site


logiciels:unbound

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

logiciels:unbound [2020/04/12 18:54] (Version actuelle)
jpg créée
Ligne 1: Ligne 1:
 +====== Unbound ======
 +
 +**Objet** : //Installer unbound// \\ 
 +**Commentaire** : //Serveur cache dns simple// \\ 
 +
 +  * **Suivi** :
 +    *//​Création//​ : <fc #​ff0000>​Jean-Paul le : 2020/04/12 18:​47</​fc>​ \\ 
 +    *//​Relecture//​ : .......... \\ 
 +    *//Doc testée par// : ........\\ ​
 +    *//​Version//​ : ..........\\ ​
 +
 +//Contact// : [[ mailto : wiki@gulliver77.org | Pour nous écrire]] \\ 
 +
 +
 +A savoir avant de commencer: La ligne de commande [[https://​debian-facile.org/​doc:​systeme:​commandes:​gnu_linux | ici]] ou [[https://​doc.ubuntu-fr.org/​tutoriel/​console_ligne_de_commande | là]] \\ 
 +
 +{{tag>​Debian-stretch Débutant}}
 +
 +----
 +====== Unbound le serveur dns simplement ======
 +
 +Un dns c'est quoi [[https://​fr.wikipedia.org/​wiki/​Domain_Name_System | DNS. ]]
 +
 +===== Installation =====
 +  sudo apt update && sudo apt upgrade
 +  sudo apt install unbound
 +  ​
 +Télécharger la liste des serveurs DNS racines :
 +  cd /​var/​lib/​unbound/​ && wget ftp://​ftp.internic.net/​domain/​named.cache
 +
 +Mise en place de cette liste pour le serveur Unbound :
 +  mv named.cache root.hints && chown unbound:​unbound root.hints
 +  ​
 +===== Configuration =====
 +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**
 +
 + ==== Ma configuration ====
 +
 +<​code>​
 +  #server:
 +port:                   ​53 ​                             #port d'​écoute
 +do-ip4: ​                ​yes ​                            #
 +do-ip6: ​                ​yes ​                            #
 +do-udp: ​                ​yes ​                            #​protocole autorisé
 +do-tcp: ​                ​yes ​                            #​indique de communiquer sur le protocole TCP
 +#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
 +harden-dnssec-stripped:​ yes                             #​DNSSEC pour les zones de confiance
 +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
 + 
 +val-log-level: ​         2                               #log
 +verbosity: ​             5                               #​plage de 1 a 5 , 5 permet le plus parlant
 +log-time-ascii: ​        ​yes ​                            #​valable sur un autre fichier que syslog
 +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
 + 
 +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
 +
 +
 +
 +server:
 +
 +include: ​ "/​etc/​unbound/​unbound.conf.d/​adslist"​
 +
 +#  mon serveur
 + local-data:​ "​gull-server. IN A 192.168.1.113" ​
 + local-data:​ "​gull-server.popaul77.lan. IN A 192.168.1.113" ​
 + local-data:​ "​popaul77.lan. IN A 192.168.1.113"​
 +
 +</​code>​
 +
 +===== Blocage des publicités =====
 +Télécharger et modifier le fichier tenu à jour par : **Steven Black ( https://​github.com/​StevenBlack/​hosts )**
 +
 +Se rendre dans le dossier de configuration de unbound ​ **/​etc/​unbound/​unbound.conf.d/​**
 +
 +Lancer la commande suivante:
 +
 +  wget -O- https://​raw.githubusercontent.com/​StevenBlack/​hosts/​master/​hosts | grep '​^0\.0\.0\.0'​ | awk '​{print "​local-zone:​ \""​$2"​\"​ redirect\nlocal-data:​ \""​$2"​ A 0.0.0.0\""​}'​ > adslist
 +
 +Tester la configuration du serveur avec **unbound-checkconf**
 +<​code>​
 +root@deb-cloud:​~#​ /​sbin/​unbound-checkconf
 +unbound-checkconf:​ no errors in /​etc/​unbound/​unbound.conf
 +</​code>  ​
 +  ​
 +Relancer le serveur dns:
 +  systemctl restart unbound
 +  ​
 +===== Utilisation =====
 +Maintenant que j'ai un serveur dns fonctionnel je vais configurer ma machine pour l'​utiliser.
 +
 +Sur nos distributions il existe un fichier **/​etc/​resolv.conf** qui contient les adresses des serveurs dns a contacter pour résoudre les adresses des sites consultés.
 +
 +On va modifier ce fichier pour faire les tests en rajoutant l'​adresse ip du serveur unbound
 +  nano /​etc/​resolv.conf
 +  ​
 +<​code>​
 +nameserver 192.168.1.113 ​ # adresse de mon serveur dns a rajouter
 +nameserver 192.168.1.254 ​ # adresse du serveur dns de ma freebox
 +</​code>​
 +
 +Il ne reste plus qu'a tester le bon fonctionnement de unbound
 +  apt install dnsutils
 +<​code>​
 +jpg@MyDell:​~$ dig google.fr
 +
 +;; QUESTION SECTION:
 +;​google.fr. IN A
 +
 +;; ANSWER SECTION:
 +google.fr. 100000 IN A 216.58.213.131
 +
 +;; Query time: 570 msec        ## temps mis pour repondre
 +;; SERVER: 192.168.1.74#​53(192.168.1.74) ## __ici c'est le serveur unbound qui repond pour la premiere fois a cette requette__
 +;; WHEN: dim. avril 12 14:27:50 CEST 2020
 +;; MSG SIZE  rcvd: 54
 +
 +</​code>​
 +<​code>​
 +jpg@MyDell:​~$ dig google.fr
 +
 +;; QUESTION SECTION:
 +;​google.fr. IN A
 +
 +;; ANSWER SECTION:
 +google.fr. 99823 IN A 216.58.213.131
 +
 +;; Query time: 0 msec         ## temps mis pour repondre
 +;; SERVER: 192.168.1.74#​53(192.168.1.74) # dexième reponse du serveur
 +;; WHEN: dim. avril 12 14:30:47 CEST 2020
 +;; MSG SIZE  rcvd: 54
 +
 +</​code>​
 + La reponse parle d'elle même  **0 msec**. \\
 +Dans un navigateur internet, les publicités sont bloquées par unbound ce qui se traduit par des pages qui s'​ouvrent plus vite.
 +
 +==== Et dans la vie réelle ====
 +Il est possible de forcer l'​adresse des serveurs dns sur tous les pc (Linux, Windows, Apple) exemple avec gnome-network-manager qui permet de fixer les dns de la connexion active, mais cette configuration est a faire sur toutes les machines du réseau local, il y a donc une solution un peu plus efficace par sa simplicité.
 +
 +Lors du boot de mon pc les serveurs dns sont donner par la Freebox via le dhcp il me faut donc modifier la configuration de la box pour intégrer l'​adresse de la machine qui héberge unbound.\\
 +Avantage de cette configuration,​ c'est que toutes les machines qui vont se connecter à ma Freebox auront l'​adresse de ma machine dns unbound et donc profiter de sa rapidité et du filtrage publicitaire.
 +
 +Certaines box internet n'​offrent pas la possibilité de rajouter des adresses de serveur dns. Il faudra donc désactiver la fonction dhcp de la box et de monter sur la machine hébergeant le serveur dns unbound ​ le serveur isc-dhcp configurer de manière a attribuer adresse ip et dns au réseau local.
 +
 +
 +----
 +
 +Jpg
 +
 +
 +----
 +===== Voir aussi =====
 +  *( [[https://​nlnetlabs.nl/​projects/​unbound/​security-advisories/​ | Unbound]])
 +  *( https://​wiki.debian.org/​fr/​Bind9 | bind9 )
  
logiciels/unbound.txt · Dernière modification: 2020/04/12 18:54 par jpg