Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
configuration_serveur_dns_dhcp [Le 16/10/2014, 22:59] – [Configuration] 78.240.55.14 | configuration_serveur_dns_dhcp [Le 27/03/2018, 19:18] (Version actuelle) – ajout [Bloquer un domaine] bcag2 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | ====== Comment configurer un serveur léger dns et dhcp alias Dnsmasq ?====== | ||
+ | |||
+ | DnsMasq est un petit serveur DNS (cache DNS) qui intègre un serveur DHCP. Peu gourmand en ressources et très simple à configurer, il est bien adapté à une installation sur une solution embarquée telle qu’un routeur ou point d’accès wifi (sous OpenWRT par exemple ; - ) | ||
+ | |||
+ | Pour la résolution des noms, il se base sur les DNS déclarés dans la configuration réseau (/ | ||
+ | |||
+ | Côté serveur DHCP, il nous faut faire un minimum de conf… Cela se passe dans le fichier / | ||
+ | |||
+ | A minima, nous devrions configurer la plage dhcp, l’adresse d’un serveur DNS et une route par défaut (gateway). | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | On écrit dans un terminal : | ||
+ | |||
+ | < | ||
+ | sudo apt-get install dnsmasq | ||
+ | </ | ||
+ | |||
+ | Ou on clique ici : **[[apt> | ||
+ | ===== Configuration ===== | ||
+ | |||
+ | |||
+ | Pour le configurer on édite le fichier : [[: | ||
+ | |||
+ | Un exemple de dnsmasq pour un simple réseau : | ||
+ | |||
+ | < | ||
+ | domain-needed | ||
+ | bogus-priv | ||
+ | filterwin2k | ||
+ | |||
+ | localise-queries | ||
+ | local=/lan/ | ||
+ | domain=local.lan | ||
+ | expand-hosts | ||
+ | no-negcache | ||
+ | resolv-file=/ | ||
+ | |||
+ | dhcp-authoritative | ||
+ | dhcp-leasefile=/ | ||
+ | |||
+ | # use /etc/ethers for static hosts; same format as --dhcp-host | ||
+ | read-ethers | ||
+ | |||
+ | # Plage DHCP | ||
+ | dhcp-range=192.168.1.100, | ||
+ | # Netmask | ||
+ | dhcp-option=1, | ||
+ | # Route | ||
+ | dhcp-option=3, | ||
+ | </ | ||
+ | |||
+ | On édite le fichier [[: | ||
+ | |||
+ | < | ||
+ | # Le nom de domain local (n' | ||
+ | domain local.lan | ||
+ | # Où les clients doivent chercher les pc sur le réseau local | ||
+ | search local.lan | ||
+ | # Serveur dns primaire fourni par mon provideur | ||
+ | nameserver 195.238.2.21 | ||
+ | # Serveur dns secondaire fourni par mon provideur | ||
+ | nameserver 195.238.2.22 | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | On édite le fichier [[: | ||
+ | |||
+ | < | ||
+ | 127.0.0.1 | ||
+ | 127.0.1.1 | ||
+ | 192.168.1.1 | ||
+ | 192.168.1.1 | ||
+ | </ | ||
+ | |||
+ | Dans l' | ||
+ | Pas besoin d' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Application de la nouvelle configuration ===== | ||
+ | |||
+ | On tape dans un terminal : | ||
+ | |||
+ | < | ||
+ | sudo / | ||
+ | </ | ||
+ | ===== Plus d'info sur le fichier : / | ||
+ | |||
+ | Quelques explications sur les options utilisées. Il en existe bien d’autres, je vous invite à consulter le man pour approfondir le sujet… Ce qui suit en est largement inspiré… | ||
+ | |||
+ | **domain-needed** : Ne transmet pas les requêtes ne contenant pas un nom de domaine complet. Par exemple,une requête pour machine ne sera pas transmise aux serveurs DNS de votre FAI, alors qu’une requête pour machine.domain.com le sera. | ||
+ | |||
+ | **bogus-priv** : Fausse résolution inverse pour les réseaux privés. Toutes les requêtes DNS inverses pour des adresses IP privées (ie 192.168.x.x, | ||
+ | |||
+ | **filterwin2k** : Les dernières versions de windows font des requêtes DNS périodiques auxquelles non seulement les serveurs DNS publics ne peuvent donner de réponse, mais qui, de surcroît, peuvent poser des problèmes en déclenchant des connexions intempestives pour des liens réseaux avec des connexions “à la demande”. Fournir cette option active le filtrage des requêtes de ce type. Les requêtes bloquées sont les requêtes pour les entrées de type SOA ou SRV, ainsi que les requêtes de type ANY avec des noms possédant des caractères sous-lignés (requêtes pour des serveurs LDAP). | ||
+ | |||
+ | **localise-queries** : Retourne des réponses aux requêtes DNS dépendantes de l’interface sur laquelle la requête a été reçue, à partir du fichier /etc/hosts. Si un nom dans /etc/hosts a plus d’une adresse associée avec lui, et qu’une des adresses au moins est dans le même sous-réseau que l’interface sur laquelle la requête a été reçue, alors ne retourne que la(les) adresse(s) du sous-réseau considéré. Cela permet d’avoir dans /etc/hosts un serveur avec de multiples adresses, une pour chacune de ses interfaces, et de fournir aux hôtes l’adresse correcte (basée sur le réseau auquel ils sont attachés). Cette possibilité est actuellement limitée à IPv4. | ||
+ | |||
+ | **domain** : Spécifie le domaine utilisé pour étendre la recherche de noms sans domaine. Utilisé également pour attribuer un domaine de recherche au clients DHCP. | ||
+ | |||
+ | **expand-hosts** : Ajoute le nom de domaine aux noms simples (ne contenant pas de point dans le nom) contenus dans le fichier /etc/hosts, de la même façon que pour le service DHCP. | ||
+ | |||
+ | **no-negcache** : Désactive le “cache négatif”. Le “cache négatif” permet à Dnsmasq de se souvenir des réponses de type “no such domain” fournies par les serveurs DNS en amont et de fournir les réponses sans avoir à re-transmettre les requêtes aux serveurs amont. | ||
+ | |||
+ | **interface=eth0** : Indique quel carte réseaux est a l' | ||
+ | |||
+ | **resolv-file** : Lis les adresses des serveurs de nom amont dans le fichier de nom < | ||
+ | |||
+ | **dhcp-autoritative** : Cette option doit être donnée lorsque Dnsmasq est le seul serveur DHCP sur le réseau. Cela change le comportement par défaut qui est celui d’un strict respect des RFC, afin que les requêtes DHCP pour des baux inconnus par des hôtes inconnus ne soient pas ignorées. Cela permet à de nouveaux hôtes d’obtenir des baux sans tenir compte de fastidieuses temporisations (”timeout”). Cela permet également à Dnsmasq de reconstruire sa base de donnée contenant les baux sans que les clients n’aient besoin de redemander un bail, si celle-ci est perdue. | ||
+ | |||
+ | **dhcp-leasefile** : Utilise le fichier dont le chemin est fourni pour stocker les informations de baux DHCP. Si cette option est fournie mais qu’aucune option de type dhcp-range n’est donnée, alors un comportement de type Dnsmasq version 1 est activé. Le fichier fourni est supposé être un fichier de baux DHCP de type ISC DHCPD et est parcouru à la recherche de baux contenant des noms d’hôtes. Les noms trouvés sont rajoutés au DNS. Cette fonctionalité peut être exclue de Dnsmasq à la compilation, | ||
+ | |||
+ | **read-ethers** : Lis les informations d’hôtes DHCP dans le fichier / | ||
+ | |||
+ | **dhcp-range=adresse de début, | ||
+ | |||
+ | **dhcp-option=[< | ||
+ | |||
+ | Un traitement spécial est effectué sur les chaînes de caractères fournies pour l’option 119, conformément à la RFC 3397. Les chaînes de caractères ou les adresses IP sous forme de 4 chiffres séparés par des points donnés en arguments de l’option 120 sont traités conforméments à la RFC 3361. Les adresses IP sous forme de 4 chiffres séparés par des points suivies par une barre montante “/”, puis une taille de masque sont encodés conforméments à la RFC 3442. | ||
+ | |||
+ | Attention : aucun test n’étant fait pour vérifier que des données d’un type adéquat sont envoyées pour un numéro d’option donné, il est tout à fait possible de persuader Dnsmasq de générer des paquets DHCP illégaux par une utilisation incorrecte de cette option. Lorsque la valeur est un nombre décimal, Dnsmasq doit déterminer la taille des données. Cela est fait en examinant le numéro de l’option et/ou la valeur, mais peut-être évité en rajoutant un suffixe d’une lettre comme suit : b = un octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des options encapsulées de classes de vendeurs (voir plus bas), pour lesquelles Dnsmasq ne peut déterminer la taille de la valeur. Les données d’options consistant uniquement de points et de décimaux sont interprétées par Dnsmasq comme des adresses IP, et envoyées comme telles. Pour forcer l’envoi sous forme de chaîne de caractère, il est nécessaire d’utiliser des guillemets doubles. Par exemple, l’utilisation de l’option 66 pour fournir une adresse IP sous la forme d’une chaîne de caractères comme nom de serveur TFTP, il est nécessaire de faire comme suit : –dhcp-option=66, | ||
+ | |||
+ | Les options encapsulées de classes de vendeurs peuvent-être aussi spécifiées en utilisant –dhcp-option : par exemple –dhcp-option=vendor: | ||
+ | |||
+ | **dhcp-option=3, | ||
+ | |||
+ | **dhcp-option=6, | ||
+ | |||
+ | **dhcp-option=19, | ||
+ | |||
+ | **dhcp-option=44, | ||
+ | |||
+ | **dhcp-option=45, | ||
+ | |||
+ | **dhcp-option=46, | ||
+ | |||
+ | **dhcp-option=47** : Active le Scope TCP/IP sur NetBios. Si vous utilisez samba comme serveur wins. | ||
+ | |||
+ | |||
+ | ==== Exemple de fichier de configuration ===== | ||
+ | |||
+ | Voici le fichier de configuration que j' | ||
+ | |||
+ | < | ||
+ | |||
+ | | ||
+ | # | ||
+ | # pour éviter de fournir du trafic DHCP/DNS inutile du coté internet | ||
+ | ## | ||
+ | bogus-priv | ||
+ | filter-win2k | ||
+ | # pour permettre à dnsmasq de suivre vos changements d'IP: | ||
+ | # commentez cette ligne si vous avez une IP qui change | ||
+ | no-poll | ||
+ | # pour limiter l' | ||
+ | interface=eth0 | ||
+ | # nom de votre domaine pour dnsmasq | ||
+ | domain=zonelibre.lan | ||
+ | dhcp-authoritative | ||
+ | dhcp-leasefile=/ | ||
+ | # activez le serveur DHCP: | ||
+ | dhcp-option=3, | ||
+ | dhcp-option=19, | ||
+ | dhcp-range=192.168.10.100, | ||
+ | dhcp-option=44, | ||
+ | dhcp-option=45, | ||
+ | dhcp-option=46, | ||
+ | dhcp-option=47 | ||
+ | </ | ||
+ | |||
+ | ===== Comment fixer une adresse ip à un client ===== | ||
+ | |||
+ | C'est simple, on ajoute dans [[: | ||
+ | |||
+ | < | ||
+ | dhcp-host=00: | ||
+ | </ | ||
+ | |||
+ | Dans le cas présent, je fixe l' | ||
+ | |||
+ | ===== Configuration du cache DNS ===== | ||
+ | Pour configurer dnsmasq comme un démon de mise en cache DNS sur une seul ordinateur éditez ''/ | ||
+ | < | ||
+ | Pour utiliser cet ordinateur pour écouter son adresse IP LAN pour d' | ||
+ | < | ||
+ | <note tip>Il est recommandé d' | ||
+ | Pour plusieurs adresse IP séparez-les d'une virgule: | ||
+ | < | ||
+ | |||
+ | ===== Bloquer un domaine avec DNSMASQ ===== | ||
+ | Si vous souhaitez bloquer un domaine ou sous-domaine, | ||
+ | Éditez | ||
+ | <file - / | ||
+ | #modèle: | ||
+ | address=/ | ||
+ | #exemple: | ||
+ | # bloque tous le domaine io | ||
+ | address=/ | ||
+ | # bloque un site à éviter parmi tant d' | ||
+ | address=/ | ||
+ | </ | ||
+ | source [[https:// | ||
+ | ===== Liens et ressources complémentaires ===== | ||
+ | |||
+ | |||
+ | Cet article est une copie et une adaptation de : [[http:// | ||
+ | |||
+ | Explication très détaillée des dhcp-options en anglais : [[http:// | ||
+ | |||
+ | Site officiel de DnsMasq : [[http:// | ||
+ | |||
+ | ---- | ||
+ | // |