dns sous linux
TRANSCRIPT
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 1/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
Chapitre 01 - DNS et Bind
Mis en place d'un service DNS avec Bind
1. Rappel sur le protocol DNS
1.1 Le système de nom de domaine
Le système de nom de domaine (DNS) est utilisé pour faire correspondre des noms de domaine et desadresses IP afin de pouvoir localiser des hôtes sur des réseaux distants par le biais de nom ; plus
facilement mémorisables qu'une adresse IP.Ce processus s'articule autour d'une relation client / serveur ou le client, nommé « resolver » effectue unerequête auprès d'un serveur de nom.
Lorsque l'utilisateur entre une adresse, http://www.labo-linux.com par exemple, votre navigateur envoieune requête au Serveur de Domaine de votre fournisseur d'accès, qui essaie de déterminer l'adresse IPcorrespondante.
Si votre fournisseur n'est pas l'autorité pour cette zone (pour ce domaine), il transmet la requête audomaine autorité, jusqu'à ce qu'elle arrive au domaine indiqué (figure 1)
Chaque serveur de domaine dispose de toutes les informations relatives à la zone qu'il contrôle ainsi quedes informations de base sur les autres zones.
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 2/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
Quand une requête est envoyée en dehors de la zone d'autorité, le serveur sait au minimum où chercher.Cela signifie que la requête peut avoir à transiter par plusieurs serveurs de domaine avant d'atteindre ladestination finale.
1.2 Notion de nom de domaine pleinement qualifié
Le FQDN, ou Fully Qualified Domain Name d'un hôte est son nom d'hôte accompagné du nom de sondomaine d'appartenance.
Exemple : www.labo-linux.com est le nom complet de l'hôte www appartenant au domaine labo-linux.com.
1.3 Les différents types de serveurs de noms
Lorsqu'un hôte client demande des informations au serveur de noms, il se connecte généralement sur leport 53. Le serveur de noms tente alors de résoudre le FQDN d'après les informations qu'il contient surl'hôte demandé ou des données mise en cache suite à une requête antérieure.
Si le serveur de noms ne possède pas encore la réponse dans sa bibliothèque de solutions, il se tourne versd'autres serveurs de noms, appelés serveurs de noms root (ou serveurs de noms racines), afin dedéterminer les serveurs de noms faisant autorité pour le FQDN en question. Grâce à ces informations, ileffectuera ensuite une requête auprès des serveurs de noms faisant autorité pour déterminer l'adresse IPde l'hôte en question.
À l'exception du nom de domaine, chaque section s'appelle une zone et définit un espace de nom particulier. Un FQDN doit contenir au moins un sous-domaine mais peut en inclure beaucoup plus, selonl'organisation de l'espace de nom choisie.
Les zones sont définies sur des serveurs de noms qui font autorité par l'intermédiaire de fichiers de zone qui sont stockés sur des serveurs de noms primaires (aussi appelés serveurs de noms maîtres ).
Les serveurs de noms primaires secondaires (ou serveurs de noms esclaves ) quant à eux reçoivent leursfichiers de zone des serveurs de noms primaires.
Tout serveur de noms peut être simultanément maître ou esclave pour différentes zones et peut aussi êtreconsidéré comme faisant autorité pour de multiples zones. Tout cela dépend de la configuration du serveurde noms.
On distingue 4 types de serveur de noms :
Type Description
MasterConserve les enregistrements originaux et fait autorité pour un espacede noms.
Slave Reçoit ses informations des serveurs maîtres
Caching-only
Ne fait pas autorité, ce type de serveur sert juste de cache afind'accélérer le temps de réponse.
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 3/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
Forwarding Fait suivre des requêtes à une liste spécifique de serveur de noms
2. Installation et configuration de Bind
BIND fournit un service de resolution de nom grace au service /usr/sbin/named. Il utilise comme fichier deconfiguration :
/etc/named.conf : le fichier de configuration du service named /var/named/ : le repertoire de travail de named ou sont stokées les fichers de zone, de cache,
etc...
2.1 Installation de Bind 9
2.1.1 Téléchargement
Note: Cette documentation a été réalisée en utilisant BIND 9.2.0 sous FreeBSD.
Tout d'abord, il faut télécharger les sources du programme voulu (ftp://ftp.isc.org/isc/bind9/9.2.0/bind-9.2.0.tar.gz).
Nous l'avons mis par exemple dans le répertoire "/tmp". Il reste maintenant à l'extraire, en utilisant lacommande :
tar -zxvf bind-9.2.0.tar.gz
2.1.2 Compilation et installation
La compilation passe par trois étapes distinctes :
La configuration des paramètres de compilation. La compilation en elle-même. L'installation des binaires, documentations et fichiers de configuration par défaut.
Pour la configuration des paramètres de compilation, il faut entrer dans le répertoire racine des sources deBIND (ici "/tmp/bind-9.2.0"), et exécuter la commande "./configure".
La commande "./configure" peut contenir un ou plusieurs paramètres tels que :
"--with-openssl" : Pour le support du DNSSEC, qui est un canal OpenSSL (version 0.9.5a minimum)permettant de faire transiter le trafic de réplication de zones entre serveurs DNS primaire etsecondaire(s).
"--enable-threads" : Ajoute le support pour le multithreading, pour pouvoir tirer partie des
systèmes multi-processeurs. "--with-kame" : Support de IPv6, s'il n'est pas pris en charge par défaut par le système installé.
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 4/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
Il existe beaucoup d'autres paramètres, dont nous ne parlerons pas, mais dont on peut avoir le listing et ladescription avec la commande "./configure --help".
La compilation en elle-même s'effectue en utilisant la commande :
make
Il ne reste plus qu'à installer les binaires compilés, ainsi que les documentations dans les répertoires
appropriés avec la commande :
make install
Une fois ces étapes accomplies, Bind est à présent installé et prêt à être configuré.
2.2 Configuration de Bind
Maintenant que Bind est installé, nous allons maintenant voir les différentes étapes de configurations du
service.
2.2.1 Le fichier /etc/named.conf
Ce fichier est composé d'une suite de définitions (ou statements) utilisant des options insérées entreaccolages qui vont nous permettre de définir les caractéristiques de notre serveur.
<déclaration> ["<déclaration-1-nom>"] [<déclaration-1-classe>] {<option-1>;...<option-N>;
};
2.2.2 Les différents types de déclaration
Les listes de contrôle d'accès
Ce type de déclaration permet de définir des groupes d'hôtes. Le but est de définir ces groupes pourensuite dans d'autres déclarations pouvoir les désigner par le biais du nom de la liste. La syntaxe est lasuivante :
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 5/22
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 6/22
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 7/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
acl "labo-linux" { 127.0.0.1; 192.168.1.0/24; };
options {directory "/etc/namedb";forwarders {
193.252.19.3; # Les DNS de notre193.252.19.4; # providers
};
allow-query {"labo-cisco";};
listen-on { 192.168.1.1; };
pid-file "named.pid";};
Les déclarations de zone
Ce type de déclaration permet de définir les caractéristiques d'une zone :
L'emplacement de ses fichiers de configurations Les options spécifiques à la zone
La syntaxe à utiliser est la suivante :
zone <zone-nom> <zone-classe> {<zone-options>;[<zone-options>; ...]
};
De nombreuses options peuvent être spécifiées pour ce type de déclaration :
Options Utilisation allow- query
Quels client sont autorisés à obtenir des informations pour cette zone
allow- transfer
Quels serveurs esclaves sont autorisés a demander un transfert desinformations de cette zone
allow- update
Quels hôtes sont autorisés à mettre à jour dynamiquement lesinformations de cette zone
file Nom du fichier de configuration de la zone dans le répertoire de travailmasters Liste des IPs faisant autorité ou demander des informations sur la zone
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 8/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
notify
Définit si le service envoie une notification aux serveurs esclaves lors d'unemise à jour :
Yes : notification No : pas de notification Explicit : notification envers les serveur esclaves spécifiés dans une
liste also-notify à l'intérireur d'une déclaration de zone
type
Définit le type de zone : forward : retransmet toutes les requêtes d'informations à propos de
cette zone vers d'autres serveurs de noms hint : un type spécial de zone utilisé pour diriger des transactions
vers les serveurs de noms racines qui résolvent des requêteslorsqu'une zone n'est pas connue autrement. Aucune configurationau-delà de la valeur par défaut n'est nécessaire avec une zone hint.
master : désigne le serveur de noms faisant autorité pour cettezone. Une zone devrait être configurée comme de type master(maître) si les fichiers de configuration de la zone se trouvent sur lesystème.
slave : désigne le serveur de noms comme serveur esclave pourcette zone. Cette option spécifie également l'adresse IP du serveur denoms maître pour cette zone.
zone- statistics
Configure named pour qu'il conserve des statistiques concernant cettezone
Illustrons cela avec deux exemples, le premier dans le cas d'un serveur maître et le second pour un serveuresclave
# Cas du serveur maître :zone "." {type hint;file "named.root";
};
zone "labo-linux.com" IN{type master;file "labo-linux.com.zone";allow-update { none; };
};
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 9/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
# Cas du serveur esclave :zone "labo-linux.com" {
type slave;file « labo-linux.com.zone » ;masters { 192.168.0.1; };
};
Nous avons ici définit notre serveur en tant que maître pour la zone labo-linux.com et avons indiqué ànamed de refuser la mise à jour à partir de n'importe quel hôte. Nous avons également indiqué que le
fichier comportant le détail de la zone serait labo-linux.com dans /var/named.
Une fois la configuration du fichier /etc/named.conf, il nous faut à présent créer et définir les fichiers dezone.
2.3 Les fichiers de zone
Un fichier de zone est un fichier contenant des informations sur une zone particulière et stocké dans lerépertoire de travail de named
2.3.1 Configuration d'un fichier de zone
Le nom du fichier doit correspondre au nom définit dans l'option file de la déclaration insérée dansnamed.conf.
Ce type de fichier peut contenir 2 types d'informations :
Des directives : Ce sont des instructions pour l'exécution de certaines taches ou de paramètresspéciaux
Des enregistrements de ressources : des définitions des paramètres de la zone et assignation desidentités aux hôtes.
Note:
Concernant le syntaxe, il est important que chaque information soit sur sa
propre ligne, les commentaires doivent se situer en fin de linge après lescaractères « ; »
Les directives de fichiers de zone
Pour insérer une directive ; de préférence au début du fichier ; il convient d'utiliser le symbole $ suivi dunom de la directive. Les directives les plus courantes sont :
Directive Utilisation $INCLUDE Utilisé pour inclure un autre fichier de zone à l'intérieur
$ORIGIN Attache le nom de domaine à tout enregistrement non qualifié (nefinissant pas par un « . »)
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 10/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
$TTLDurée en seconde pendant laquelle pendant laquelle les enregistrementsseront valides
2.3.2 Les enregistrements de ressources d'un fichier de zone
De nombreux types d'enregistrements sont disponibles, voici les plus courants :
Les enregistrements de type «A»
Cet enregistrement est utilisé pour associé un nom à une IP. Si l'hôte n'est pas spécifié, l'adresse serautilisé par défaut pour le domaine.
Syntaxe :<hôte> IN A <adresse IP>
Exemple :
IN A 192.168.10.1dc1 IN A 192.168.10.2
Les enregistrements de type «CNAME»
L'enregistrement CNAME est un alias redirigeant vers un autre nom d'hôte
Syntaxe :<alias> IN CNAME <nom>
Exemple :
dc1 IN A 192.168.10.2serveur IN CNAME dc1
Les enregistrements de type «MX»
Le but de ces enregistrements est de rediriger le courier à destination de ce domaine vers un ou plusieursserveurs de courriers par défaut.
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 11/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
Dans le cas de plusieurs serveurs de messagerie, le champ préférence permetd'attribuer une priorité.
Syntaxe :IN MX <préférence> <nom-serveur>
Exemple :
IN MX 10 mail.labo-linux.com.IN MX 20 mail2.labo-linux.com.
Note: Le '.' A la fin du nom est important car il indique que le nom spécifié estcomplet.
Les enregistrements de type «NS»
Cet enregistrement annonce les serveurs de noms faisant autorité pour une zone.
Syntaxe :IN NS Serveur
Exemple :
IN NS main-dns.labo-linux.com.IN NS backup-dns.labo-linux.com.
Les enregistrements de type SOA
Utilisé pour indiquer les informations importantes au sujet de cet espace de nom, cet enregistrement est lepremier à insérer après les directives.
La syntaxe est la suivante :
@ IN SOA <serveur-noms-primaire> <email> (<numéro-série>
<temps-actualisation><temps-nouvel essai>
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 12/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
<temps-expiration><TTL-minimum> )
Expliquons à présent les différents champs présent ici :
Le symbole @ place la directive $ORIGIN (ou le nom de zone, si la directive $ORIGIN n'est pasinstallée) en tant qu'espace de nom défini par le présent enregistrement de ressources SOA.
<serveurs-noms-primaire> : le serveur faisant autorité <email> : l'adresse de la personne à contacter à propos de cet espace de noms <numéro-série> : incrémenté à chaque changement du le fichier de zone afin que named sache
qu'il doit recharger cette zone. Cela est utilisée par le serveur esclave pour déterminer s'il est en traind'utiliser des données de zone périmées et doit donc les rafraîchir.
<temps-actualisation> : indique à tout serveur esclave combien de temps il doit attendre avantde demander au serveur de noms maître si des changements ont été effectués dans la zone.
<temps-nouvel essai> : précise au serveur de noms esclave l'intervalle pendant lequel il doitattendre avant d'émettre une autre requête de rafraîchissement, au cas où le serveur de noms maîtrene répondrait pas.
<temps-expiration> : temps maximum depuis une abscence de réponse du serveur maîtreavant que le serveur esclave ne cesse de répondre en tant qu'autorité pour les requêtes au sujet decet espace de nom.
<TTL-minimum> : demande que d'autres serveurs de noms placent en cache les informationspour cette zone pendant au moins cette durée (en secondes).
Toutes les durées sont exprimées en secondes, cependant les mots clés tels que M, H, D et W (semaine)fonctionnent.
Voici à présent un exemple d'application :
@ IN SOA dns.labo-linux.com.hostmaster.labo-linux.com. (02050500 ; numéro de série3H ; rafraichir après 3 heures1800 ; retenter après 30 minutes
604800 ; expire après 1 semain3D ) ; TTL minimum de 3 jours
IN NS dns.labo-linux.com.IN MX 10 mail.labo-linux.com.
dns IN A 192.168.1.1www IN CNAME dns.labo-linux.com.ftp IN A 192.168.1.2mail IN A 192.168.1.3pop IN CNAME mail.labo-linux.com.smtp IN CNAME mail.labo-linux.com.imap IN CNAME mail.labo-linux.com.
imprimante IN A 192.168.1.4
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 13/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
tftp IN A 192.168.1.5routeuradsl IN A 192.168.1.254
A présent que notre fichier de zone est prêt, il nous faut à présent nous occuper du fichier de zone inverse.
2.4 Les fichiers de zone inverse
2.4.1 Principe de domaine inversé
Le processus de résoution inversé permet la recherche d'un nom à partir d'une IP. Le domaine "in-addr.arpa" a été créé pour cela. On l'appelle domaine inverse et la résolution des adresses IP en noms dedomaine se nomme table inverse (translation inverse). Le nom de domaine inverse est créé en inversant lesnombres de l'adresse IP, et ajoutant in-addr.arpa à la fin.
Exemple : l'adresse IP de www.labo-linux.com est 212.180.91.66. Son nom de domaine inversé est donc 66.91.128.212.in-addr.arpa
Afin de comprendre le fonctionnement et la nécessité de ce nom inversé, prenons un exemple concret :
Votre serveur FTP accepte des requêtes de divers clients. Cependant vous ne souhaitez n'accepter que desrequêtes provenant de domaines bien spécifiques, par exemple labo-linux.com.
Lorsqu'un client se connecte chez vous, votre serveur peut vous dire quelle est l'adresse IP du client,puisque cette dernière se trouve dans tous les paquets qui traversent le réseau. L'adresse IP que lesystème fournit au serveur FTP est 212.180.91.66. Pour retrouver le nom de cette machine, il nous fauttrouver 66.91.180.212.in-addr.arpa.
Le serveur de noms va donc d'abord trouver les serveurs puis les serveurs arpa., puis in-addr.arpa, etpoursuivre la recherche inverse par 212, puis 180 et finalement trouver le serveur pour la zone 91.128.212.à in-addr.arpa a labo-linux.com
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 14/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
C'est ce dernier qui lui dira que pour 66.91.180.212.in-addr.arpa nous avons un champ ``PTR www.labo-linux.com'', ce qui veut dire que le nom qui va avec 212.180.91.66 est www.labo-linux.com.
Notre serveur n'acceptant que certain domaines dont labo-linux.com, la connexion sera donc autorisée.
S'il n'existait pas de résolution inverse de 212.180.91.66 au travers de la zone in-addr.arpa, le serveuraurait été tout à fait incapable de trouver le nom et donc de filtrer en fonction du nom de domaine.
De nombreux serveurs n'acceptent pas les connexions venant de machines dont ils ne peuvent retrouver lenom. C'est pourquoi la résolution de noms inverse pour les machines est obligatoire.
2.4.2 Configuration d'un fichier de résolution de noms inversé
Le but de ce fichier va être de fournir une résolution inversée, donc un nom FQDN à partir d'une adresseIP. Ce fichier est similaire au fichier de noms précédents si ce n'est que les enregistrements sont de typesPTR :
Exemple :
$ORIGIN 1.168.192.in-addr.arpa$TTL 86400@ IN SOA dns.labo-linux.com. hostmaster.labo-linux.com. (02050500 ; numéro de série3H ; rafraichir après 3 heures1800 ; retenter après 30 minutes
604800 ; expire après 1 semain
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 15/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
3D ) ; TTL minimum de 3 jours
IN NS dns.labo-linux.com.IN MX 10 mail.labo-linux.com.
20 IN PTR ws1.labo-linux.com.21 IN PTR ws2.labo-linux.com.22 IN PTR ws3.labo-linux.com.23 IN PTR laptop1.labo-linux.com.24 IN PTR database.labo-linux.com.25 IN PTR gateway.labo-linux.com.
Ce fichier serait mis en service avec la déclaration suivante dans named.conf :
zone "1.0.10.in-addr.arpa" IN {type master;file "labo-linux.com.rr.zone";allow-update { none; };
};
3. L'administration du démon named
3.1 Démarrage et arrêt du service
Pour démarrer le serveur DNS, il suffit d'utiliser la commande "/usr/local/sbin/named". Les paramètresdisponibles sont :
-c {config_file} : Permet de spécifier l'emplacement et le nom du fichier de configurationprincipale.
-v : Affiche la version de BIND. -u {user_name} : Force BIND à démarrer sous un compte particulier, car BIND démarre par défaut
en utilisant le compte root. -t {directory} : Option utilisé lorsque l'on démarre BIND dans une SandBox (cf. chapitre
correspondant).
Il existe 2 utilitaires permettant de vérifier les fichiers de configuration de BIND :
named-checkconf : Vérifie le fichier de configuration principale et affiche les erreurs de syntaxetrouvées.
named-checkzone : Idem mais pour les fichiers de zone.
3.2 Configuration de rndc
BIND contient un utilitaire appelé rndc qui permet d'utiliser des lignes de commande pour administrer ledémon named à partir de l'hôte local ou d'un hôte distant.
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 16/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
Afin de prévenir d'accès non autorisés au démon, BIND utilise une méthode de clé secrète partagée pouraccorder des privilèges aux hôtes. Dans une telle situation, une clé identique doit être présente aussi biendans /etc/named.conf que dans le fichier de configuration de rndc, à savoir /etc/rndc.conf
3.2.1 Configuration de /etc/named.conf
Pour que rndc puisse se connecter à un service named, une déclaration controls doit être présente dans lefichier /etc/named.conf du serveur BIND.
La déclaration controls montrée dans l'exemple qui suit, permet à rndc de se connecter à partir d'un hôtelocal.
controls {inet 127.0.0.1 allow { localhost; } keys { <nom-clé>; };
};
Cette déclaration indique à named de se mettre à l'écoute du port TCP 953 par défaut de l'adresse inverséeet d'autoriser les commandes rndc provenant de l'hôte local, si la clé adéquate est présentée. Le <nom-clé> fait référence à la déclaration key, qui se trouve aussi dans le fichier /etc/named.conf. L'exemplesuivant illustre une déclaration key.
key "<nom-clé>" {algorithm hmac-md5;secret "<valeur-clé>";
};
Dans ce cas, la <valeur-clé> est une clé HMAC-MD5. Afin de créer des clés HMAC-MD5, utilisez lacommande suivante :
dnssec-keygen -a hmac-md5 -b <longueur-bits> -n HOST <nom-fichier-clé>
Une clé d'au moins 256 bits de long est un bon choix. La bonne clé qui doit être placée dans la zone<valeur-clé> se trouve dans <nom-fichier-clé>.
Note: Il est conseillé de mettre la déclaration de clé dans un fichier séparéuniquement accessible par root et de l'appeler via un include : include "/etc/rndc.key";
3.2.2 Configuration de /etc/rndc.conf
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 17/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
La déclaration key représente la déclaration la plus importante contenue dans /etc/rndc.conf.
key "<nom-clé>" {algorithm hmac-md5;secret "<valeur-clé>";
};
Les éléments <nom-clé> et <valeur-clé> doivent être absolument identiques à leurs paramètres contenus
dans /etc/named.conf.
Pour faire correspondre les clés spécifiées dans le fichier /etc/named.conf du serveur cible, ajoutez leslignes suivantes au fichier /etc/rndc.conf.
options {default-server localhost;default-key "<nom-clé>";
};
3.3 La ligne de commande de rndc
Une commande rndc se présente sous le format suivant :
rndc <options> <commande> <options-commande>
Lors de l'exécution de rndc sur un hôte local configuré de façon appropriée, les commandes suivantes sontdisponibles :
Commande Effet halt Arrêt du service namedquerylog Logging de toutes les requêtesrefresh Rafraichissement de la base de données
reload Recharge les fichiers de zone mais conserve toutes les réponsesprécédemment placées en cache.
stats Evacue les statistiques courante de named vers le fichier /var/named/named.stats
stop Arrête le serveur de manière nette, en enregistrant préalablementtoute mise à jour dynamique et donnée Incremental Zone
Transfers (IXFR).-c <fichier- Permet de selectionner le fichier de configuration a utiliser
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 18/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
configuration>-p <numéro-port> Permet de spécifier le numéro de port à utiliser-s <serveur> Permet d'envoyer les instructions à un serveur spécifique
-y <nom-clé> Spécifie une clé autre que l'option default-key dans le fichier /etc/rndc.conf.
Note: Si vos changements n'affectent qu'une zone particulière, rechargez seulementune zone en ajoutant le nom de la zone après la commande reload.
4. Sécurisation du serveur
Le but de la Sand Box, en cas d'attaque pirate, est de limiter l'accès à seulement une infime partie dusystème de fichiers.
Pour cela, nous allons démarrer le daemon de BIND dans un environnement chrooté. L'effet obtenu sera defaire croire à BIND que son repertoire sera sa propre racine de système de fichiers.
Nous allons voir comment sécuriser le DNS via la mise en place d'une SandBox. Pour cela, il va falloirprocéder à quelques modifications :
Créer un utilisateur non-privilégié pour faire fonctionner BIND. Changer le propriétaire des fichiers de BIND. Créer un fichier PID dans notre environnement chrooté. Modifier le fichier de configuration principal. Démarrer BIND avec les bons paramètres.
Commençons la creation de l'utilisateur non-privilégié. Nous avons choisi d'utiliser le compte dns (UID =1005).
Nous créons maintenant le fichier PID pour bind, avec la commande "touch named.pid".
Le changement de propriétaire des fichiers de BIND (présents dans le répertoire "/etc/namedb") se faitgrâce à la commande "chown dns *" dans le répertoire de base de BIND.
Les modifications qu'il faut apporter au fichier de configuration principale sont les suivantes :
directory "/"; pid-file "named.pid";
La dernière modification concerne les paramètres de démarrage. Il suffit pour cela de mettre "-u 1005 -t /etc/namedb -c named.conf" en tant que paramètre pour l'option "named_flags" du fichier "/etc/rc.conf",au lieu de "-c /etc/namedb/named.conf".
Il ne nous reste plus qu'à redémarrer le serveur afin que le service DNS soit entièrement fonctionnel avectoutes les dernières modifications.
5. Annexes
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 19/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
5.1 Mise à jour du DNS via le serveur DHCP
Il est possible de configurer votre serveur DHCP et BIND de manière à ce que lorsqu'une machine prend unbail DHCP, celle-ci soit enregistrée par le serveur DNS.
Sans trop entrer dans les détails, nous allons ici détailler les différentes étapes de configuration. Dans notreexemple ; les 2 services sont éxécutés sur la même machine et utilisent donc la même adresse : 127.0.0.1
Modifications à apporter a /etc/named.conf :
zone "labo-linux.com" {type master;file "/var/named/labo-linux.zone";allow-update {
127.0.0.1;};
};# La zone de recherche inversezone "10.168.192.in-addr.arpa" {
type master;file "/var/named/reverse.rev";
allow-update {127.0.0.1;};
};
Nous autorisons ainsi les modifications en provenance de 127.0.0.1
Note: Il est important que les machines s'enregistrant sur le DNS n'aient pas déjàune entrée dans les fichiers de zones.
Modifications à apporter à /etc/dhcpd.conf :
# méthode de mise à jour du DNS :ddns-update-style interim;
# mise à jour autoriséeddns-update on;
# mise à jour par le serveur DHCP forcéeignore client-updates;
# la mise à jour des IP fixes forcée
update-static-leases on;
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 20/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
# on définit également quel DNS doit être mis à jour pour ces zones :zone labo-linux.com. {
primary 127.0.0.1;}
zone 10.168.192.in-addr.arpa. {primary 127.0.0.1;
}
Modifications pour les clients Linux
Ajoutez la ligne suivante dans /etc/dhclient.conf :
send host-name "lenomdelamachine";
En effet par défaut, dhclient n'envoie pas le nom d'hôte au serveur.
5.2 Exemples de fichiers de configuration
Le but de ce chapitre est de vous proposer des exemples de configurations «prêt à l'emploi» afin de vousaider à mettre en place votre serveur :
5.2.1 Cas d'un serveur maître
/etc/named.conf
acl "labo-linux" { 127.0.0.1; 192.168.1.0/24; };options {
directory "/etc/namedb";forwarders {
193.252.19.3;193.252.19.4;
};allow-query {"labo-linux";};
};
zone "." {type hint;file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {type master;file "localhost.rev";
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 21/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
};
zone "labo-linux.com" {type master;file "labo-linux.zone";
};
zone "1.168.192.in-addr.arpa" {type master;file "1.168.192.in-addr.arpa";
};
/var/named/labo-linux.zone
@ IN SOA dns.labo-linux.com. hostmaster.labo-linux.com. (020505001080018003600000259200 )
IN NS dns.labo-linux.com.IN MX 10 mail.labo-linux.com.
dns IN A 192.168.1.1www IN CNAME dns.labo-linux.com.ftp IN A 192.168.1.2mail IN A 192.168.1.3routeuradsl IN A 192.168.1.254passerelle IN CNAME routeuradsl.labo-linux.com.
/var/named/localhost.rev
@ IN SOA dns.labo-linux.com.hostmaster.labo-linux.com. (02042800360090036000003600 )
IN NS labo-linux.com.1 IN PTR localhost.
5.2.2 Cas d'un serveur de cache
Pour ce type de serveur, un fichier /etc/named.conf suffit :
7/31/2019 DNS Sous Linux
http://slidepdf.com/reader/full/dns-sous-linux 22/22
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964
options {directory "/var/named";allow-query { 192.168.1.0/24; };allow-transfer{ 192.168.1.0/24; };allow-recursion{192.168.1.0/24; };
};
controls {inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {type hint;file "named.ca";
};
zone "localhost" IN {type master;file "localhost.zone";allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;file "named.local";allow-update { none; };
};
include "/etc/rndc.key";