Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
logiciel:internet:unbound:start [2021/04/03 11:44] – [Contrôle] adminlogiciel:internet:unbound:start [2022/08/13 21:57] (Version actuelle) – modification externe 127.0.0.1
Ligne 3: Ligne 3:
 ====== Unbound : un serveur DNS local ====== ====== Unbound : un serveur DNS local ======
  
-Le serveur DNS local **Unbound** ((plus simple a configurer que **bind9** pour un LAN de petite taille.)) traduit les noms de domaine +**Unbound** est un serveur de noms DNS, c’est à dire qu’il traduit un nom de domaine en adresse IP. ((C'est une alternative plus simple a configurer que **bind9** pour un LAN de petite taille.)) 
-  * soit d’après sa propre configuration,+ 
 +Il fait cette traduction 
 +  * soit d’après sa propre config,
   * soit en faisant appel à d’autres serveurs DNS.   * soit en faisant appel à d’autres serveurs DNS.
  
-Avantages d'avoir son propre serveur DNS : +Dans un souci defficacitéil peut mettre les résultats en cache.
-  - La mise en cache des résultats accélère les requêtes DNS sur le réseau local et améliore l'efficacité +
-  - il peut fermer l'accès aux domaines des régies publicitaires (comme //googlesyndication.com//, //doubleclick.net//, //ads.youtube.com//, //adserver.yahoo.com//). en renvoyant vers une adresse IP qui ne fait rien. +
-  - il permet de définir des domaines factices sur le réseau local.+
  
-Nous allons voir comment mettre en place votre propre serveur DNS.+Nous utiliserons Unbound en tant que serveur DNS sur le réseau local pour définir des domaines factices (comme on le ferait avec un fichiers hosts, mais en plus poussé et automatisé).
  
-Le serveur **Unbound** sera installé sur un serveur du réseau local (un RPI dans cet exemple).+Le serveur **Unbound** sera installé sur un serveur du réseau local (un Raspberry Pi dans cet exemple).
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 21: Ligne 20:
   * et une connexion à Internet active pour les tests.   * et une connexion à Internet active pour les tests.
  
-===== Installation ===== +===== Installation sur la machine du serveur =====
- +
-  * Sur la machine du serveur, installez les paquets **[[apt>unbound,dnsutils,ldnsutils]]** ou en ligne de commande (comme sur un RPI via SSH) :<cli prompt='$ '>...@...:~$ sudo apt install unbound dnsutils ldnsutils</cli>+
  
 +  - **Sous Linux** : installez les paquets **[[apt>unbound,dnsutils,ldnsutils]]** ou en ligne de commande (comme sur un Raspberry Pi via SSH) :<cli prompt='$ '>...@...:~$ sudo apt install unbound dnsutils ldnsutils</cli>
 +  - **Sous Windows** : Téléchargez l'installateur **unbound_setup_x.x.x.exe** sur la page [[http://unbound.net/download.html]] et lancez-le.
 ===== Configuration ===== ===== Configuration =====
  
Ligne 680: Ligne 679:
  
 <WRAP center round info 60%> <WRAP center round info 60%>
-  verbosity: <chiffre>+  verbosity: <chiffre>
   : Niveau de détail des messages.   : Niveau de détail des messages.
     * 0 => pas de message, que les erreurs.     * 0 => pas de message, que les erreurs.
Ligne 688: Ligne 687:
     * 4 => informations au niveau de l'algorithme.     * 4 => informations au niveau de l'algorithme.
     * 5 => enregistre l'identification des clients non mis en cache.     * 5 => enregistre l'identification des clients non mis en cache.
-  interface: <ip address[@port]>+  interface: <ip address[@port]>
   : Interface à utiliser pour se connecter au réseau.   : Interface à utiliser pour se connecter au réseau.
   : **Par défaut : localhost, port par défaut (fourni par le paramètre port, 53 sinon)**.   : **Par défaut : localhost, port par défaut (fourni par le paramètre port, 53 sinon)**.
Ligne 694: Ligne 693:
   : Peut être fourni plusieurs fois pour travailler sur de multiples interfaces.   : Peut être fourni plusieurs fois pour travailler sur de multiples interfaces.
   : Les interfaces ne sont pas modifiées par un reload (kill -HUP), mais seulement au redémarrage.   : Les interfaces ne sont pas modifiées par un reload (kill -HUP), mais seulement au redémarrage.
-  port: <port number>+  port: <port number>
   : Numéro de port sur lequel le serveur répond aux requêtes.   : Numéro de port sur lequel le serveur répond aux requêtes.
   : **par défaut : 53**   : **par défaut : 53**
-  do-ip4: <yes or no>+  do-ip4: <yes or no>
   : Active ou désactive les réponses aux requêtes IP4.   : Active ou désactive les réponses aux requêtes IP4.
   : **Par défaut : yes**.   : **Par défaut : yes**.
-  do-ip6: <yes or no>+  do-ip6: <yes or no>
   : Active ou désactive les réponses aux requêtes IP6.   : Active ou désactive les réponses aux requêtes IP6.
   : **Par défaut : yes**.   : **Par défaut : yes**.
-  do-udp: <yes or no>+  do-udp: <yes or no>
   : Active ou désactive les réponses aux requêtes UDP.   : Active ou désactive les réponses aux requêtes UDP.
   : **Par défaut : yes**.   : **Par défaut : yes**.
-  do-tcp: <yes or no>+  do-tcp: <yes or no>
   : Active ou désactive les réponses aux requêtes TCP.   : Active ou désactive les réponses aux requêtes TCP.
   : **Par défaut : yes**.   : **Par défaut : yes**.
-  do-daemonize: <yes or no>+  do-daemonize: <yes or no>
   : Active ou désactive le fonctionnement en arrière-plan (comme un démon).   : Active ou désactive le fonctionnement en arrière-plan (comme un démon).
   : **Par défaut : yes**.        : **Par défaut : yes**.     
-  access-control: <IP netblock> <action>+  access-control: <IP netblock> <action>
   : **netblock** : plage d'adresses IP4 ou IP6 suivie de /size pour un bloc de réseau sans classes.   : **netblock** : plage d'adresses IP4 ou IP6 suivie de /size pour un bloc de réseau sans classes.
   : Actions possibles : deny, refuse, allow, allow_snoop, deny_non_local ou refuse_non_local.   : Actions possibles : deny, refuse, allow, allow_snoop, deny_non_local ou refuse_non_local.
Ligne 723: Ligne 722:
   : Si aucun **deny** ne correspond, la correspondance de plage la plus spécifique est utilisée.   : Si aucun **deny** ne correspond, la correspondance de plage la plus spécifique est utilisée.
   : **Par défaut, seul localhost est autorisé, le reste est bloqué**.   : **Par défaut, seul localhost est autorisé, le reste est bloqué**.
-  root-hints: <filename>+  root-hints: <filename>
   : Lire les indications de racine dans ce fichier.   : Lire les indications de racine dans ce fichier.
   : **Par défaut : rien, en utilisant des builtin pour la classe IN.**   : **Par défaut : rien, en utilisant des builtin pour la classe IN.**
   : Le fichier a le format des fichiers de zone, avec seulement root names et addresses.   : Le fichier a le format des fichiers de zone, avec seulement root names et addresses.
-  hide-identity: <yes or no> +  hide-identity: <yes or no> 
-  hide-version: <yes or no>+  hide-version: <yes or no>
   : Cacher les infos sur le serveur DNS.   : Cacher les infos sur le serveur DNS.
-  harden-glue: <yes or no>+  harden-glue: <yes or no>
   : limite l'usurpation de DNS.   : limite l'usurpation de DNS.
   : **Par défaut : yes.**   : **Par défaut : yes.**
-  harden-dnssec-stripped: <yes or no>+  harden-dnssec-stripped: <yes or no>
   : Requérir les infos DNSSEC pour les zones de confiance.   : Requérir les infos DNSSEC pour les zones de confiance.
   : **Par défaut : on**.   : **Par défaut : on**.
-  use-caps-for-id: <yes or no>+  use-caps-for-id: <yes or no>
   : Ne pas tenir compte de la casse dans la requête : MonSite.com équivaut à monsite.com.   : Ne pas tenir compte de la casse dans la requête : MonSite.com équivaut à monsite.com.
   : **no par défaut**   : **no par défaut**
-  cache-min-ttl: <seconds>+  cache-min-ttl: <seconds>
   : valeur mini de la TTL en secondes. Ne pas dépasser 1h   : valeur mini de la TTL en secondes. Ne pas dépasser 1h
   : **Par défaut : 0**.   : **Par défaut : 0**.
-  prefetch: <yes or no>+  prefetch: <yes or no>
   : activation du prefetch. Si un requête est faite lorsque la tll expire dans moins de 10% du temps qu'il lui est imparti, le cache se mettra à jour aussitôt après avoir répondu à la requête.   : activation du prefetch. Si un requête est faite lorsque la tll expire dans moins de 10% du temps qu'il lui est imparti, le cache se mettra à jour aussitôt après avoir répondu à la requête.
   : **Par défaut : no**.   : **Par défaut : no**.
-  num-threads: <number>+  num-threads: <number>
   : Le nombre de threads à créer pour servir les clients. Utilisez 1 pour pas de threading.   : Le nombre de threads à créer pour servir les clients. Utilisez 1 pour pas de threading.
-  msg-cache-slabs: <number> +  msg-cache-slabs: <number> 
-  rrset-cache-slabs: <number> +  rrset-cache-slabs: <number> 
-  infra-cache-slabs: <number> +  infra-cache-slabs: <number> 
-  key-cache-slabs: <number>+  key-cache-slabs: <number>
   : Nombre de slabs à utiliser . Doit être une puissance de 2 du num-threads.   : Nombre de slabs à utiliser . Doit être une puissance de 2 du num-threads.
-  rrset-cache-size: <number> +  rrset-cache-size: <number> 
-   msg-cache-size: <number>+   msg-cache-size: <number>
   : Taille du cache. A  plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes or  gigabytes  (1024*1024  bytes  in  a megabyte).   : Taille du cache. A  plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes or  gigabytes  (1024*1024  bytes  in  a megabyte).
   : **Par défaut : 4 mégaoctets**.   : **Par défaut : 4 mégaoctets**.
-  so-rcvbuf: <number>+  so-rcvbuf: <number>
   : Taille du buffer pour le port UPD en entrée. Évite la perte de message lors des requêtes   : Taille du buffer pour le port UPD en entrée. Évite la perte de message lors des requêtes
   : **Par défaut : 0** (utiliser la valeur système)   : **Par défaut : 0** (utiliser la valeur système)
-  private-address: <IP address or subnet>+  private-address: <IP address or subnet>
   : Give IPv4 of IPv6 addresses  or  classless  subnets.  These  are addresses  on  your  private  network, and are not allowed to be returned for public internet  names.   Any  occurrence  of  such addresses are removed from DNS answers. Additionally, the DNSSEC validator may mark the  answers  bogus.  This  protects  against so-called  DNS  Rebinding, where a user browser is turned into a network proxy, allowing remote access  through  the  browser  to other  parts of your private network.  Some names can be allowed to contain your private addresses,   : Give IPv4 of IPv6 addresses  or  classless  subnets.  These  are addresses  on  your  private  network, and are not allowed to be returned for public internet  names.   Any  occurrence  of  such addresses are removed from DNS answers. Additionally, the DNSSEC validator may mark the  answers  bogus.  This  protects  against so-called  DNS  Rebinding, where a user browser is turned into a network proxy, allowing remote access  through  the  browser  to other  parts of your private network.  Some names can be allowed to contain your private addresses,
   : By default all the local-data that  you  configured  is  allowed to, and you can specify additional names using private-domain.   No  private  addresses  are enabled  by default.   : By default all the local-data that  you  configured  is  allowed to, and you can specify additional names using private-domain.   No  private  addresses  are enabled  by default.
   : We consider to enable this for the RFC1918 private IP address space by  default  in  later  releases.  That would  enable  private  addresses  for  10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 169.254.0.0/16 fd00::/8 and fe80::/10, since  the RFC  standards  say these addresses should not be visible on the public internet.  Turning on 127.0.0.0/8 would hinder many spam-blocklists   as  they  use  that.   Adding  ::ffff:0:0/96  stops IPv4-mapped IPv6 addresses from bypassing the filter.   : We consider to enable this for the RFC1918 private IP address space by  default  in  later  releases.  That would  enable  private  addresses  for  10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 169.254.0.0/16 fd00::/8 and fe80::/10, since  the RFC  standards  say these addresses should not be visible on the public internet.  Turning on 127.0.0.0/8 would hinder many spam-blocklists   as  they  use  that.   Adding  ::ffff:0:0/96  stops IPv4-mapped IPv6 addresses from bypassing the filter.
-  unwanted-reply-threshold: <number>+  unwanted-reply-threshold: <number>
   : Si non nulles, les réponses indésirables ne sont pas seulement signalés dans les statistiques, mais aussi ajoutées à un total cumulé maintenu par thread. Quand le seuil est atteint, un avertissement est affiché et une action défensive est prise, le cache est vidé pour éviter l'empoissonnement DNS. Une valeur de 10000 est suggérée, la valeur par défaut est de 0 (service désactivé).   : Si non nulles, les réponses indésirables ne sont pas seulement signalés dans les statistiques, mais aussi ajoutées à un total cumulé maintenu par thread. Quand le seuil est atteint, un avertissement est affiché et une action défensive est prise, le cache est vidé pour éviter l'empoissonnement DNS. Une valeur de 10000 est suggérée, la valeur par défaut est de 0 (service désactivé).
   : **Par défaut : 0 (désactivé)**.   : **Par défaut : 0 (désactivé)**.
-  do-not-query-localhost: <yes or no>+  do-not-query-localhost: <yes or no>
   : Interdire de répondre aux requêtes du localhost ?   : Interdire de répondre aux requêtes du localhost ?
   : **Par défaut : yes** (localhost est interdit)   : **Par défaut : yes** (localhost est interdit)
   : Si no, localhost est utilisable.   : Si no, localhost est utilisable.
-  val-clean-additional: <yes or no>+  val-clean-additional: <yes or no>
   : Est-ce que cette section supplémentaire, doit être conservée intacte pour les données non-sécurisées ? Utile pour protéger les utilisateurs d'une validation de données potentiellement boguées. Toutes les données non signés dans la section supplémentaire seront retirés des messages sécurisés   : Est-ce que cette section supplémentaire, doit être conservée intacte pour les données non-sécurisées ? Utile pour protéger les utilisateurs d'une validation de données potentiellement boguées. Toutes les données non signés dans la section supplémentaire seront retirés des messages sécurisés
   : **Par défaut : yes**.   : **Par défaut : yes**.
-  chroot: <directory>+  chroot: <directory>
   : If chroot is enabled, you should pass the configfile  (from  the commandline)  as  a  full path from the original root. After the chroot has been performed the now defunct portion of the  config file  path  is  removed  to be able to reread the config after a reload.   : If chroot is enabled, you should pass the configfile  (from  the commandline)  as  a  full path from the original root. After the chroot has been performed the now defunct portion of the  config file  path  is  removed  to be able to reread the config after a reload.
   : All other file paths (working dir, logfile, roothints,  and  key files)  can  be  specified  in several ways: as an absolute path relative to the new root, as a  relative  path  to  the  working directory, or as an absolute path relative to the original root. In the last case the path is adjusted to remove the unused  portion.   : All other file paths (working dir, logfile, roothints,  and  key files)  can  be  specified  in several ways: as an absolute path relative to the new root, as a  relative  path  to  the  working directory, or as an absolute path relative to the original root. In the last case the path is adjusted to remove the unused  portion.
Ligne 781: Ligne 780:
   : The default is "/usr/local/etc/unbound".   : The default is "/usr/local/etc/unbound".
   : If you give "" no chroot is performed.   : If you give "" no chroot is performed.
-  username: <name>+  username: <name>
   : If  given,  after  binding  the  port  the  user  privileges are dropped. Default is "unbound". If you give username: "" no  user change is performed.   : If  given,  after  binding  the  port  the  user  privileges are dropped. Default is "unbound". If you give username: "" no  user change is performed.
   : If  this  user  is  not capable of binding the port, reloads (by signal HUP) will still retain the opened ports.  If  you  change the  port  number  in  the config file, and that new port number requires privileges, then a  reload  will  fail;  a  restart  is needed.   : If  this  user  is  not capable of binding the port, reloads (by signal HUP) will still retain the opened ports.  If  you  change the  port  number  in  the config file, and that new port number requires privileges, then a  reload  will  fail;  a  restart  is needed.
-  directory: <directory>+  directory: <directory>
   : Sets   the   working  directory  for  the  program.  Default  is "/usr/local/etc/unbound" On Windows the string  "%EXECUTABLE%" tries to change to the directory that unbound.exe resides in.   : Sets   the   working  directory  for  the  program.  Default  is "/usr/local/etc/unbound" On Windows the string  "%EXECUTABLE%" tries to change to the directory that unbound.exe resides in.
-  use-syslog: <yes or no>+  use-syslog: <yes or no>
   : Sets unbound to send log messages to  the  syslogd,  using  syslog(3).   The  log  facility  LOG_DAEMON  is used, with identity "unbound" The logfile setting is overridden when use-syslog is turned on.   : Sets unbound to send log messages to  the  syslogd,  using  syslog(3).   The  log  facility  LOG_DAEMON  is used, with identity "unbound" The logfile setting is overridden when use-syslog is turned on.
   : **The default is to log to syslog**.   : **The default is to log to syslog**.
-  pidfile: <filename>+  pidfile: <filename>
   : The  process  id  is   written   to   the   file.   : The  process  id  is   written   to   the   file.
   : Default   is "/usr/local/etc/unbound/unbound.pid" So, kill -HUP `cat /usr/local/etc/unbound/unbound.pid` triggers a reload, kill -TERM `cat /usr/local/etc/unbound/unbound.pid` gracefully terminates.   : Default   is "/usr/local/etc/unbound/unbound.pid" So, kill -HUP `cat /usr/local/etc/unbound/unbound.pid` triggers a reload, kill -TERM `cat /usr/local/etc/unbound/unbound.pid` gracefully terminates.
-  root-hints: <filename>+  root-hints: <filename>
   : Read  the  root  hints from this file.   : Read  the  root  hints from this file.
   : Default is nothing, using builtin hints for the IN class. The file has the format of  zone files,  with  root  nameserver  names  and  addresses  only. The default may become outdated, when servers change,  therefore  it is good practice to use a root-hints file.   : Default is nothing, using builtin hints for the IN class. The file has the format of  zone files,  with  root  nameserver  names  and  addresses  only. The default may become outdated, when servers change,  therefore  it is good practice to use a root-hints file.
Ligne 829: Ligne 828:
 Il génère tous les sous-domaines xxx.localhost, a.localhost, etc. Il génère tous les sous-domaines xxx.localhost, a.localhost, etc.
  
-==== Serveur DNS avec déclaration automatique des sous-domaines ====+=== Serveur DNS avec déclaration automatique des sous-domaines ===
  
 Ouvrez avec les droits d'administration le fichier **/etc/unbound/unbound.conf** pour le modifier comme voulu : Ouvrez avec les droits d'administration le fichier **/etc/unbound/unbound.conf** pour le modifier comme voulu :
Ligne 862: Ligne 861:
  
 <WRAP center round box 60%> <WRAP center round box 60%>
-  verbosity+  verbosity
   : degré de précision des messages   : degré de précision des messages
-  interface +  interface 
   : adresse réseau du serveur (il peut y avoir plusieurs lignes pour plusieurs adresses   : adresse réseau du serveur (il peut y avoir plusieurs lignes pour plusieurs adresses
-  access-control:+  access-control:
   :   :
-    0.0.0.0/0 allow+    0.0.0.0/0 allow
     : ouverture à tout le monde     : ouverture à tout le monde
-  logfile:+  logfile:
   : emplacement du fichier de log   : emplacement du fichier de log
-  use-syslog: no+  use-syslog: no
   : pour ne pas "pourrir" le syslog   : pour ne pas "pourrir" le syslog
-  local-zone: +  local-zone: 
   : la zone *.dev.com   : la zone *.dev.com
-    local-zone: "dev.com." redirect+    local-zone: "dev.com." redirect
     : crée les redirections     : crée les redirections
-    local-data: "dev.com. IN A 192.168.0.1"+    local-data: "dev.com. IN A 192.168.0.1"
     : IP de la machine qui sert ce domaine et ses sous-domaines     : IP de la machine qui sert ce domaine et ses sous-domaines
-  forward-zone: +  forward-zone: 
   : Utilisation du DNS "normal" pour tout le reste   : Utilisation du DNS "normal" pour tout le reste
-    name: "."+    name: "."
     : pour tout le reste     : pour tout le reste
-    forward-addr: 192.168.0.254+    forward-addr: 192.168.0.254
     : DNS de la box     : DNS de la box
  
 </WRAP> </WRAP>
  
-==== Test ====+=== Test ===
  
 Lancez :<cli prompt='$ '>...@...:~ $ unbound-checkconf</cli> Lancez :<cli prompt='$ '>...@...:~ $ unbound-checkconf</cli>
  
-==== Exemples ====+=== Exemples ===
  
 Exemple fourni avec le paquet Exemple fourni avec le paquet
Ligne 1049: Ligne 1048:
 Cette liste n'est pas exhaustive ; le fichier suivant contient un grand nombre de domaines utilisés par un grande nombre de régies publicitaires : [[https://homeserver-diy.net/wiki/index.php?title=Fichier:Regies_pub.odt|Regies pub.odt]] Cette liste n'est pas exhaustive ; le fichier suivant contient un grand nombre de domaines utilisés par un grande nombre de régies publicitaires : [[https://homeserver-diy.net/wiki/index.php?title=Fichier:Regies_pub.odt|Regies pub.odt]]
  
 +==== Sous Windows ====
 +
 +La configuration se fait en éditant le fichier **C:\Program Files\Unbound\unbound.conf**.
 +
 +A ce même endroit se trouve un fichier exemple **C:\Program Files\Unbound\example.conf** que l'on peut recopier en le renommant **unbound.conf** pour partir de cette base.
 ===== Utilisation ===== ===== Utilisation =====
  
Ligne 1074: Ligne 1078:
 ===== Voir aussi ===== ===== Voir aussi =====
  
 +  * **(en)** [[http://unbound.net/documentation/unbound-windows-manual-01.pdf|manuel (pdf)]]
   * **(fr)** doc ubuntu : [[https://doc.ubuntu-fr.org/unbound]]   * **(fr)** doc ubuntu : [[https://doc.ubuntu-fr.org/unbound]]
   * **(fr)** [[https://techarea.fr/creer-resolveur-dns-unbound-debian/]]   * **(fr)** [[https://techarea.fr/creer-resolveur-dns-unbound-debian/]]
   * **(fr)** [[https://memo-linux.com/debian-installer-le-serveur-dns-unbound/]]   * **(fr)** [[https://memo-linux.com/debian-installer-le-serveur-dns-unbound/]]
 +  * **(en)** [[http://blog.loicg.net/developpement-web/dns-local-virtualdocumentroot/]]
 +  * **(en)** site officiel : [[http://unbound.net/]]
   * **(en)** page de man unbound : [[https://www.unbound.net/documentation/unbound.html]]   * **(en)** page de man unbound : [[https://www.unbound.net/documentation/unbound.html]]
   * **(en)** page de man unbound.conf : [[https://www.unbound.net/documentation/unbound.conf.html]]   * **(en)** page de man unbound.conf : [[https://www.unbound.net/documentation/unbound.conf.html]]
   * **(fr)** [[logiciel:internet:unbound:config:start1]]   * **(fr)** [[logiciel:internet:unbound:config:start1]]
 +  * **(en)** tutoriel [[https://calomel.org/unbound_dns.html]]
  
 ---- ----
-//Basé sur << [[https://doc.ubuntu-fr.org/unbound]] >> par doc ubuntu.//+//Basé sur << [[http://unbound.net/documentation/unbound-windows-manual-01.pdf|manuel]] >> par unbound.//