Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
logiciel:internet:unbound:start1 [2021/04/03 11:12] – créée admin | logiciel:internet:unbound:start1 [2021/04/03 11:27] – [Utilisation] admin | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== 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 : | ||
+ | * soit d’après sa propre configuration, | ||
+ | * soit en faisant appel à d’autres serveurs DNS. | ||
+ | |||
+ | Avantages d' | ||
+ | - La mise en cache des résultats accélère les requêtes DNS sur le réseau local et améliore l' | ||
+ | - il peut fermer l' | ||
+ | - il permet de définir des domaines factices sur le réseau local. | ||
+ | |||
+ | Nous allons voir comment mettre en place votre propre serveur DNS. | ||
+ | |||
+ | Le serveur **Unbound** sera installé sur un serveur du réseau local (un RPI dans cet exemple). | ||
===== Pré-requis ===== | ===== Pré-requis ===== | ||
+ | |||
+ | * un réseau local. | ||
+ | * et une connexion à Internet active pour les tests. | ||
===== Installation ===== | ===== Installation ===== | ||
+ | |||
+ | * Sur la machine du serveur, installez les paquets **[[apt> | ||
===== Configuration ===== | ===== Configuration ===== | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Les fichiers de configuration (nommés **< | ||
+ | |||
+ | Ainsi, le fichier **/ | ||
+ | </ | ||
+ | |||
+ | Liste des serveurs DNS racines | ||
+ | |||
+ | Téléchargez le fichier **named.cache** (liste des serveurs DNS racines sur lequel s' | ||
+ | < | ||
+ | |||
+ | Voici l' | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | ? verbosity: < | ||
+ | : Niveau de détail des messages. | ||
+ | * 0 => pas de message, que les erreurs. | ||
+ | * **1 => informations opérationnelles.** (par défaut) | ||
+ | * 2 => informations opérationnelles détaillées. | ||
+ | * 3 => informations au niveau requête, classées par requête. | ||
+ | * 4 => informations au niveau de l' | ||
+ | * 5 => enregistre l' | ||
+ | ? interface: <ip address[@port]> | ||
+ | : Interface à utiliser pour se connecter au réseau. | ||
+ | : **Par défaut : localhost, port par défaut (fourni par le paramètre port, 53 sinon)**. | ||
+ | : Cette interface sert à l’écoute des requêtes des clients et au renvoi des réponses. | ||
+ | : 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. | ||
+ | ? port: <port number> | ||
+ | : Numéro de port sur lequel le serveur répond aux requêtes. | ||
+ | : **par défaut : 53** | ||
+ | ? do-ip4: <yes or no> | ||
+ | : Active ou désactive les réponses aux requêtes IP4. | ||
+ | : **Par défaut : yes**. | ||
+ | ? do-ip6: <yes or no> | ||
+ | : Active ou désactive les réponses aux requêtes IP6. | ||
+ | : **Par défaut : yes**. | ||
+ | ? do-udp: <yes or no> | ||
+ | : Active ou désactive les réponses aux requêtes UDP. | ||
+ | : **Par défaut : yes**. | ||
+ | ? do-tcp: <yes or no> | ||
+ | : Active ou désactive les réponses aux requêtes TCP. | ||
+ | : **Par défaut : yes**. | ||
+ | ? do-daemonize: | ||
+ | : Active ou désactive le fonctionnement en arrière-plan (comme un démon). | ||
+ | : **Par défaut : yes**. | ||
+ | ? access-control: | ||
+ | : **netblock** : plage d' | ||
+ | : Actions possibles : deny, refuse, allow, allow_snoop, | ||
+ | * **deny** : bloque les requêtes des hôtes de cette plage d' | ||
+ | * **refuse** : bloque aussi les requêtes mais renvoie un message d' | ||
+ | * **allow** autorise les requêtes des hôtes de cette plage d' | ||
+ | * **allow_snoop** autorise aussi l' | ||
+ | * **deny_non_local** : les messages non autorisés sont sautés | ||
+ | * **refuse_non_local** ils reçoivent le code d' | ||
+ | : 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é**. | ||
+ | ? root-hints: < | ||
+ | : Lire les indications de racine dans ce fichier. | ||
+ | : **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. | ||
+ | ? hide-identity: | ||
+ | ? hide-version: | ||
+ | : Cacher les infos sur le serveur DNS. | ||
+ | ? harden-glue: | ||
+ | : limite l' | ||
+ | : **Par défaut : yes.** | ||
+ | ? harden-dnssec-stripped: | ||
+ | : Requérir les infos DNSSEC pour les zones de confiance. | ||
+ | : **Par défaut : on**. | ||
+ | ? use-caps-for-id: | ||
+ | : Ne pas tenir compte de la casse dans la requête : MonSite.com équivaut à monsite.com. | ||
+ | : **no par défaut** | ||
+ | ? cache-min-ttl: | ||
+ | : valeur mini de la TTL en secondes. Ne pas dépasser 1h | ||
+ | : **Par défaut : 0**. | ||
+ | ? 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. | ||
+ | : **Par défaut : no**. | ||
+ | ? num-threads: | ||
+ | : Le nombre de threads à créer pour servir les clients. Utilisez 1 pour pas de threading. | ||
+ | ? msg-cache-slabs: | ||
+ | ? rrset-cache-slabs: | ||
+ | ? infra-cache-slabs: | ||
+ | ? key-cache-slabs: | ||
+ | : Nombre de slabs à utiliser . Doit être une puissance de 2 du num-threads. | ||
+ | ? rrset-cache-size: | ||
+ | ? msg-cache-size: | ||
+ | : Taille du cache. A plain number is in bytes, append ' | ||
+ | : **Par défaut : 4 mégaoctets**. | ||
+ | ? so-rcvbuf: < | ||
+ | : 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) | ||
+ | ? private-address: | ||
+ | : Give IPv4 of IPv6 addresses | ||
+ | : By default all the local-data that you configured | ||
+ | : We consider to enable this for the RFC1918 private IP address space by default | ||
+ | ? unwanted-reply-threshold: | ||
+ | : Si non nulles, les réponses indésirables ne sont pas seulement signalés dans les statistiques, | ||
+ | : **Par défaut : 0 (désactivé)**. | ||
+ | ? do-not-query-localhost: | ||
+ | : Interdire de répondre aux requêtes du localhost ? | ||
+ | : **Par défaut : yes** (localhost est interdit) | ||
+ | : Si no, localhost est utilisable. | ||
+ | ? val-clean-additional: | ||
+ | : Est-ce que cette section supplémentaire, | ||
+ | : **Par défaut : yes**. | ||
+ | ? chroot: < | ||
+ | : If chroot is enabled, you should pass the configfile | ||
+ | : All other file paths (working dir, logfile, roothints, | ||
+ | : The pidfile can be either a relative path to the working directory, or an absolute path relative to the original root. It is written | ||
+ | : Additionally, | ||
+ | : If given a chroot is done to the given directory. | ||
+ | : The default is "/ | ||
+ | : If you give "" | ||
+ | ? username: < | ||
+ | : If given, | ||
+ | : If this user is not capable of binding the port, reloads (by signal HUP) will still retain the opened ports. | ||
+ | ? directory: < | ||
+ | : Sets | ||
+ | ? use-syslog: <yes or no> | ||
+ | : Sets unbound to send log messages to the syslogd, | ||
+ | : **The default is to log to syslog**. | ||
+ | ? pidfile: < | ||
+ | : The process | ||
+ | : Default | ||
+ | ? root-hints: < | ||
+ | : 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, | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP center round box 60%> | ||
+ | Voici un exemple commenté< | ||
+ | server: | ||
+ | # Répondre aux requêtes DNS sur toutes les interfaces réseau. | ||
+ | interface: 0.0.0.0 | ||
+ | | ||
+ | # plage adresses ip autorisées à consulter le serveur dns : | ||
+ | # uniquement le réseau local | ||
+ | access-control: | ||
+ | | ||
+ | # Ignorer la casse | ||
+ | # HomeServer-DIY.net sera traduit en homeserver-diy.net et le serveur et communiquera la bonne IP | ||
+ | use-caps-for-id: | ||
+ | | ||
+ | # Renforcer la vie privée des adresses du LAN. Ne mettre que des adresses locales | ||
+ | private-address: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Pour créer des DNS avec tous les sous-domaines, | ||
+ | |||
+ | Exemple pour localhost : | ||
+ | <code - > | ||
+ | server: | ||
+ | # zone *.localhost | ||
+ | local-zone: " | ||
+ | local-data: " | ||
+ | </ | ||
+ | |||
+ | Il génère tous les sous-domaines xxx.localhost, | ||
+ | |||
+ | ==== Exemples ==== | ||
+ | |||
+ | Exemple fourni avec le paquet | ||
+ | <code - / | ||
+ | server: | ||
+ | # Les lignes suivantes concernent la configuration de unbound pour les | ||
+ | # performance crypto DNSSEC en utilisant la clé des serveurs root | ||
+ | auto-trust-anchor-file: | ||
+ | | ||
+ | # Activer les logs | ||
+ | # verbosity: 1 (par défaut) | ||
+ | | ||
+ | #Répondre aux requêtes DNS sur toutes les interfaces réseau. | ||
+ | interface: 0.0.0.0 | ||
+ | | ||
+ | #Port sur lequel sont fait les requêtes DNS | ||
+ | #port: 53 (par défaut) | ||
+ | | ||
+ | #support de l'IPv4 | ||
+ | #do-ip4: yes (par défaut) | ||
+ | | ||
+ | #support de l'IPv6 | ||
+ | do-ip6: no | ||
+ | | ||
+ | #support udp | ||
+ | #do-udp: yes (par défaut) | ||
+ | | ||
+ | #support tcp | ||
+ | #do-tcp: yes (par défaut) | ||
+ | | ||
+ | #plages adresse ip autorisée à consulter le serveur dns | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | | ||
+ | #plage ip comprise entre 192.168.0.0 et 192.168.255.255 | ||
+ | access-control: | ||
+ | | ||
+ | # | ||
+ | #fichier à télécharger là à cette adresse: ftp:// | ||
+ | root-hints: "/ | ||
+ | | ||
+ | #Cacher les infos sur le serveur DNS | ||
+ | hide-identity: | ||
+ | hide-version: | ||
+ | | ||
+ | #paramètre limitant l' | ||
+ | harden-glue: | ||
+ | | ||
+ | #Requérir les infos DNSSEC pour les zones de confiance | ||
+ | harden-dnssec-stripped: | ||
+ | | ||
+ | #Options permettant de ne pas prendre la casse en compte lors des requêtes d' | ||
+ | # | ||
+ | | ||
+ | use-caps-for-id: | ||
+ | | ||
+ | #valeur mini de la TTL en secondes. Ne pas dépasser 1h | ||
+ | cache-min-ttl: | ||
+ | | ||
+ | #valeur max de la TTL en secondes. | ||
+ | cache-max-ttl: | ||
+ | | ||
+ | #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. | ||
+ | prefetch: yes | ||
+ | | ||
+ | #nombre de core du serveur dns | ||
+ | num-threads: | ||
+ | | ||
+ | ## Tweaks et optimisations du cache | ||
+ | #Nombre de slabs à utiliser . Doit être une puissance de 2 du num-threads. | ||
+ | msg-cache-slabs: | ||
+ | rrset-cache-slabs: | ||
+ | infra-cache-slabs: | ||
+ | key-cache-slabs: | ||
+ | | ||
+ | #Réglage de la taille du cache en Mo: | ||
+ | rrset-cache-size: | ||
+ | msg-cache-size: | ||
+ | | ||
+ | #Taille du buffer pour le port UPD en entrée. Evite la perte de message lors des requêtes | ||
+ | so-rcvbuf: 1m | ||
+ | | ||
+ | #Renforcer la vie privée des adresses du LAN. Ne mettre que des adresses locales | ||
+ | private-address: | ||
+ | | ||
+ | #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. | ||
+ | #Si elle atteint le seuil, un avertissement est affiché et une action défensive est prise, le cache est vidé pour éviter l' | ||
+ | #Une valeur de 10000 est suggérée, la valeur par défaut est de 0 (service désactivé). | ||
+ | unwanted-reply-threshold: | ||
+ | | ||
+ | #Autorisé à répondre aux requêtes du localhost | ||
+ | do-not-query-localhost: | ||
+ | | ||
+ | # | ||
+ | # | ||
+ | # Est-ce que cette section supplémentaire, | ||
+ | # 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 | ||
+ | val-clean-additional: | ||
+ | </ | ||
+ | |||
+ | Conf de Korben, Voir : [[http:// | ||
+ | |||
+ | <code - > | ||
+ | server: | ||
+ | #verbosity: 1 | ||
+ | interface: 0.0.0.0 | ||
+ | #port: 53 | ||
+ | #do-ip4: yes | ||
+ | #do-ip6: yes | ||
+ | #do-udp: yes | ||
+ | #do-tcp: yes | ||
+ | do-daemonize: | ||
+ | access-control: | ||
+ | # | ||
+ | # | ||
+ | chroot: "/ | ||
+ | username: " | ||
+ | directory: "/ | ||
+ | use-syslog: yes | ||
+ | pidfile: "/ | ||
+ | root-hints: "/ | ||
+ | </ | ||
+ | |||
+ | avec un utilisateur dédié créé par : | ||
+ | * < | ||
+ | sudo useradd -d / | ||
+ | |||
+ | Le répertoire / | ||
+ | |||
+ | Bloquer les pubs sur internet | ||
+ | |||
+ | De nombreuses pages web contiennent du code qui affiche des pubs en s' | ||
+ | |||
+ | Pour bloquer ces pubs, il suffit de configurer **unbound** pour qu'il retourne une adresse IP non attribuée du réseau local. Mais celle du localhost de l' | ||
+ | |||
+ | <code - > | ||
+ | local-zone: " | ||
+ | local-data: " | ||
+ | local-zone: " | ||
+ | local-data: " | ||
+ | local-zone: " | ||
+ | local-data: " | ||
+ | local-zone: " | ||
+ | local-data: " | ||
+ | local-zone: " | ||
+ | local-data: " | ||
+ | local-zone: " | ||
+ | local-data: " | ||
+ | </ | ||
+ | |||
+ | 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:// | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
+ | |||
+ | ==== Contrôle ==== | ||
+ | |||
+ | * Démarrer **unbound** :<cli prompt=' | ||
+ | * Arrêter **unbound** :<cli prompt=' | ||
+ | * Redémarrer **unbound** :<cli prompt=' | ||
+ | * Connaître l' | ||
===== Désinstallation ===== | ===== Désinstallation ===== |