Vous êtes sur la page 1sur 22

WWW.RESEAUMAROC.

COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr 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 systme de nom de domaine


Le systme de nom de domaine (DNS) est utilis pour faire correspondre des noms de domaine et des adresses IP afin de pouvoir localiser des htes sur des rseaux distants par le biais de nom ; plus facilement mmorisables qu'une adresse IP. Ce processus s'articule autour d'une relation client / serveur ou le client, nomm resolver effectue une requte auprs d'un serveur de nom. Lorsque l'utilisateur entre une adresse, http://www.labo-linux.com par exemple, votre navigateur envoie une requte au Serveur de Domaine de votre fournisseur d'accs, qui essaie de dterminer l'adresse IP correspondante. Si votre fournisseur n'est pas l'autorit pour cette zone (pour ce domaine), il transmet la requte au domaine 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 contrle ainsi que des informations de base sur les autres zones.

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Quand une requte est envoye en dehors de la zone d'autorit, le serveur sait au minimum o chercher. Cela signifie que la requte peut avoir transiter par plusieurs serveurs de domaine avant d'atteindre la destination finale.

1.2 Notion de nom de domaine pleinement qualifi


Le FQDN, ou Fully Qualified Domain Name d'un hte est son nom d'hte accompagn du nom de son domaine d'appartenance.

Exemple: www.labo-linux.com est le nom complet de l'hte www appartenant au domaine labo-linux.com.

1.3 Les diffrents types de serveurs de noms


Lorsqu'un hte client demande des informations au serveur de noms, il se connecte gnralement sur le port 53. Le serveur de noms tente alors de rsoudre le FQDN d'aprs les informations qu'il contient sur l'hte demand ou des donnes mise en cache suite une requte antrieure. Si le serveur de noms ne possde pas encore la rponse dans sa bibliothque de solutions, il se tourne vers d'autres serveurs de noms, appels serveurs de noms root (ou serveurs de noms racines), afin de dterminer les serveurs de noms faisant autorit pour le FQDN en question. Grce ces informations, il effectuera ensuite une requte auprs des serveurs de noms faisant autorit pour dterminer l'adresse IP de l'hte en question. l'exception du nom de domaine, chaque section s'appelle une zone et dfinit un espace de nom particulier. Un FQDN doit contenir au moins un sous-domaine mais peut en inclure beaucoup plus, selon l'organisation de l'espace de nom choisie. Les zones sont dfinies sur des serveurs de noms qui font autorit par l'intermdiaire de fichiers de zone qui sont stocks sur des serveurs de noms primaires (aussi appels serveurs de noms matres). Les serveurs de noms primaires secondaires (ou serveurs de noms esclaves) quant eux reoivent leurs fichiers de zone des serveurs de noms primaires. Tout serveur de noms peut tre simultanment matre ou esclave pour diffrentes zones et peut aussi tre considr comme faisant autorit pour de multiples zones. Tout cela dpend de la configuration du serveur de noms. On distingue 4 types de serveur de noms :

Type Master Slave Cachingonly

Description Conserve les enregistrements originaux et fait autorit pour un espace de noms. Reoit ses informations des serveurs matres Ne fait pas autorit, ce type de serveur sert juste de cache afin d'acclrer le temps de rponse.

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Forwarding Fait suivre des requtes une liste spcifique 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 de configuration :

/etc/named.conf : le fichier de configuration du service named /var/named/ : le repertoire de travail de named ou sont stokes les fichers de zone, de cache, etc...

2.1 Installation de Bind 9 2.1.1 Tlchargement


Note: Cette documentation a t ralise en utilisant BIND 9.2.0 sous FreeBSD.
Tout d'abord, il faut tlcharger les sources du programme voulu (ftp://ftp.isc.org/isc/bind9/9.2.0/bind9.2.0.tar.gz). Nous l'avons mis par exemple dans le rpertoire "/tmp". Il reste maintenant l'extraire, en utilisant la commande :

tar -zxvf bind-9.2.0.tar.gz

2.1.2 Compilation et installation


La compilation passe par trois tapes distinctes :

La configuration des paramtres de compilation. La compilation en elle-mme. L'installation des binaires, documentations et fichiers de configuration par dfaut.

Pour la configuration des paramtres de compilation, il faut entrer dans le rpertoire racine des sources de BIND (ici "/tmp/bind-9.2.0"), et excuter la commande "./configure". La commande "./configure" peut contenir un ou plusieurs paramtres 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 rplication de zones entre serveurs DNS primaire et secondaire(s). "--enable-threads" : Ajoute le support pour le multithreading, pour pouvoir tirer partie des systmes multi-processeurs. "--with-kame" : Support de IPv6, s'il n'est pas pris en charge par dfaut par le systme install.

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Il existe beaucoup d'autres paramtres, dont nous ne parlerons pas, mais dont on peut avoir le listing et la description avec la commande "./configure --help". La compilation en elle-mme s'effectue en utilisant la commande :

make

Il ne reste plus qu' installer les binaires compils, ainsi que les documentations dans les rpertoires appropris avec la commande :

make install

Une fois ces tapes accomplies, Bind est prsent install et prt tre configur.

2.2 Configuration de Bind


Maintenant que Bind est install, nous allons maintenant voir les diffrentes tapes de configurations du service.

2.2.1 Le fichier /etc/named.conf


Ce fichier est compos d'une suite de dfinitions (ou statements) utilisant des options insres entre accolages qui vont nous permettre de dfinir les caractristiques de notre serveur.

<dclaration> <option-1>; ... <option-N>; };

["<dclaration-1-nom>"]

[<dclaration-1-classe>]

2.2.2 Les diffrents types de dclaration


Les listes de contrle d'accs Ce type de dclaration permet de dfinir des groupes d'htes. Le but est de dfinir ces groupes pour ensuite dans d'autres dclarations pouvoir les dsigner par le biais du nom de la liste. La syntaxe est la suivante :

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

acl <lment-correspondant>; [<lment-correspondant>; };

<nom_de_la_liste>

{ ...]

Il est possible d'utiliser des mots cls tels que :

any : toutes les addresses IP localhost : toutes les IP utilises par le serveur localnets : tous les rseaux directement connects au serveur none : aucune IP

Afin d'illustrer cela, voici un exemple ou nous configurons 2 listes :

acl 172.16.0.0/16 192.168.0.0/24; }; acl 192.168.1.0/24; }; options blackhole allow-query allow-recursion } { {

bad_network

my_network

bad_network; my_network; my_network;

{ }; }; };

Les inclusions L'un des problmes de scurit du service named est que le fichier /etc/named.conf est accessible en lecture par tous les utilisateurs. Les inclusions sont utilises afin de pouvoir stocker des informations critiques dans des fichiers spars et accs restreint puis de pouvoir les utiliser depuis named.conf. La syntaxe est la suivante :

include

"<nom-fichier>"

Les options Ce type de dclaration fournit les options gnrales de configuration du serveur et tablit les valeurs par dfaut pour les autres dclarations

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

options <option>; [<option>; };

{ ...]

options

utilisation allow-query Dfinit les htes autoriss faire des requtes sur le serveur

allowrecursion blackhole directory

Dfinit les htes autoriss des faire des demandes rcursives Dfinit les htes qui ne sont pas autoriss Dfinit le rpertoire de travail (/var/named par dfaut) Contrle le comportement de retransmission d'une directive forwarders. Les options suivantes sont acceptes :

forward

first : les serveurs de noms spcifis dans la directive forwarders sont interrogs avant que named ne tente de rsoudre le nom luimme. only : named ne doit pas tenter d'effectuer lui-mme une rsolution dans le cas o des demandes vers les serveurs spcifis dans la directive forwarders choueraient.

forwarders Dfinit les IPs des serveurs o doivent tre forwards les requtes listen-on Spcifie l'interface rseau utiliser (toutes par dfaut)
Dfinit si le service envoie une notification aux serveurs esclaves lors d'une mise jour :

notify

yes : notification bo : pas de notification explicit : notification envers les serveur esclaves spcifis dans une liste also-notify l'intrireur d'une dclaration de zone

pid-file statisticsfile

Dfinit l'emplacement du fichier de PID cre par named Dfinit l'emplacement du fichier de statistiques (par dfaut /var/named/stats)

Voici un exemple d'option :

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

acl

"labo-linux"

127.0.0.1;

192.168.1.0/24;

};

options directory forwarders 193.252.19.3; 193.252.19.4; }; allow-query listen-on pid-file }; {

# #

Les

DNS

{ "/etc/namedb"; { de notre providers {"labo-cisco";};

192.168.1.1;

}; "named.pid";

Les dclarations de zone Ce type de dclaration permet de dfinir les caractristiques d'une zone :

L'emplacement de ses fichiers de configurations Les options spcifiques la zone

La syntaxe utiliser est la suivante :

zone <zone-nom> <zone-options>; [<zone-options>; };

<zone-classe>

{ ...]

De nombreuses options peuvent tre spcifies pour ce type de dclaration :

Options Utilisation

allowquery allowtransfer allowupdate file masters

Quels client sont autoriss obtenir des informations pour cette zone Quels serveurs esclaves sont autoriss a demander un transfert des informations de cette zone Quels htes sont autoriss mettre jour dynamiquement les informations de cette zone Nom du fichier de configuration de la zone dans le rpertoire de travail Liste des IPs faisant autorit ou demander des informations sur la zone

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Dfinit si le service envoie une notification aux serveurs esclaves lors d'une mise jour :

notify

Yes : notification No : pas de notification Explicit : notification envers les serveur esclaves spcifis dans une liste also-notify l'intrireur d'une dclaration de zone

Dfinit le type de zone :


type

forward : retransmet toutes les requtes d'informations propos de cette zone vers d'autres serveurs de noms hint : un type spcial de zone utilis pour diriger des transactions vers les serveurs de noms racines qui rsolvent des requtes lorsqu'une zone n'est pas connue autrement. Aucune configuration au-del de la valeur par dfaut n'est ncessaire avec une zone hint. master : dsigne le serveur de noms faisant autorit pour cette zone. Une zone devrait tre configure comme de type master (matre) si les fichiers de configuration de la zone se trouvent sur le systme. slave : dsigne le serveur de noms comme serveur esclave pour cette zone. Cette option spcifie galement l'adresse IP du serveur de noms matre pour cette zone.

zoneConfigure named pour qu'il conserve des statistiques concernant cette statistics zone
Illustrons cela avec deux exemples, le premier dans le cas d'un serveur matre et le second pour un serveur esclave

# zone type file };

Cas

du

serveur "."

matre

: { hint; "named.root";

zone type file allow-update };

"labo-linux.com" {

IN{ master; "labo-linux.com.zone"; none; };

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

# zone type file masters };

Cas

du

serveur "labo-linux.com"

esclave

labo-linux.com.zone 192.168.0.1;

: { slave; ; };

Nous avons ici dfinit notre serveur en tant que matre pour la zone labo-linux.com et avons indiqu named de refuser la mise jour partir de n'importe quel hte. Nous avons galement indiqu que le fichier comportant le dtail de la zone serait labo-linux.com dans /var/named. Une fois la configuration du fichier /etc/named.conf, il nous faut prsent crer et dfinir les fichiers de zone.

2.3 Les fichiers de zone


Un fichier de zone est un fichier contenant des informations sur une zone particulire et stock dans le rpertoire de travail de named

2.3.1 Configuration d'un fichier de zone


Le nom du fichier doit correspondre au nom dfinit dans l'option file de la dclaration insre dans named.conf. Ce type de fichier peut contenir 2 types d'informations :

Des directives : Ce sont des instructions pour l'excution de certaines taches ou de paramtres spciaux Des enregistrements de ressources : des dfinitions des paramtres de la zone et assignation des identits aux htes.

Concernant le syntaxe, il est important que chaque information soit sur sa Note: propre ligne, les commentaires doivent se situer en fin de linge aprs les caractres ;
Les directives de fichiers de zone Pour insrer une directive ; de prfrence au dbut du fichier ; il convient d'utiliser le symbole $ suivi du nom de la directive. Les directives les plus courantes sont :

Directive Utilisation $INCLUDE Utilis pour inclure un autre fichier de zone l'intrieur Attache le nom de domaine tout enregistrement non qualifi (ne $ORIGIN finissant pas par un . )

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

$TTL

Dure en seconde pendant laquelle pendant laquelle les enregistrements seront 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'hte n'est pas spcifi, l'adresse sera utilis par dfaut pour le domaine.

Syntaxe <hte> IN

: A <adresse IP>

Exemple :

dc1

IN IN

A 192.168.10.2

192.168.10.1

Les enregistrements de type CNAME L'enregistrement CNAME est un alias redirigeant vers un autre nom d'hte

Syntaxe <alias>

: IN CNAME <nom>

Exemple :

dc1 serveur IN

IN CNAME

A dc1

192.168.10.2

Les enregistrements de type MX Le but de ces enregistrements est de rediriger le courier destination de ce domaine vers un ou plusieurs serveurs de courriers par dfaut.

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Dans le cas de plusieurs serveurs de messagerie, le champ prfrence permet d'attribuer une priorit.
Syntaxe IN : MX <prfrence> <nom-serveur>

Exemple :

IN IN

MX MX

20

10 mail2.labo-linux.com.

mail.labo-linux.com.

Note: Le '.' A la fin du nom est important car il indique que le nom spcifi est complet.
Les enregistrements de type NS Cet enregistrement annonce les serveurs de noms faisant autorit pour une zone.

Syntaxe IN

: NS Serveur

Exemple :

IN IN

NS

NS backup-dns.labo-linux.com.

main-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 le premier insrer aprs les directives. La syntaxe est la suivante :

@ IN SOA <numro-srie> <temps-actualisation> <temps-nouvel

<serveur-noms-primaire>

<email>

essai>

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

<temps-expiration> <TTL-minimum> )

Expliquons prsent les diffrents champs prsent ici :

Le symbole @ place la directive $ORIGIN (ou le nom de zone, si la directive $ORIGIN n'est pas installe) en tant qu'espace de nom dfini par le prsent enregistrement de ressources SOA. <serveurs-noms-primaire> : le serveur faisant autorit <email> : l'adresse de la personne contacter propos de cet espace de noms <numro-srie> : incrment chaque changement du le fichier de zone afin que named sache qu'il doit recharger cette zone. Cela est utilise par le serveur esclave pour dterminer s'il est en train d'utiliser des donnes de zone primes et doit donc les rafrachir. <temps-actualisation> : indique tout serveur esclave combien de temps il doit attendre avant de demander au serveur de noms matre si des changements ont t effectus dans la zone. <temps-nouvel essai> : prcise au serveur de noms esclave l'intervalle pendant lequel il doit attendre avant d'mettre une autre requte de rafrachissement, au cas o le serveur de noms matre ne rpondrait pas. <temps-expiration> : temps maximum depuis une abscence de rponse du serveur matre avant que le serveur esclave ne cesse de rpondre en tant qu'autorit pour les requtes au sujet de cet espace de nom. <TTL-minimum> : demande que d'autres serveurs de noms placent en cache les informations pour cette zone pendant au moins cette dure (en secondes).

Toutes les dures sont exprimes en secondes, cependant les mots cls tels que M, H, D et W (semaine) fonctionnent. Voici prsent un exemple d'application :

@ IN hostmaster.labo-linux.com. 02050500 3H 1800 604800 3D ) IN IN dns www ftp mail pop smtp imap imprimante IN IN IN IN IN IN IN IN NS MX A CNAME A A CNAME CNAME CNAME A

; ; ; ; ; 10

dns.labo-linux.com. ( numro de srie rafraichir aprs 3 heures retenter aprs 30 minutes expire aprs 1 semain TTL minimum de 3 jours dns.labo-linux.com. mail.labo-linux.com. 192.168.1.1 dns.labo-linux.com. 192.168.1.2 192.168.1.3 mail.labo-linux.com. mail.labo-linux.com. mail.labo-linux.com. 192.168.1.4

SOA

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

tftp routeuradsl

IN IN

A A

192.168.1.5 192.168.1.254

A prsent que notre fichier de zone est prt, il nous faut prsent nous occuper du fichier de zone inverse.

2.4 Les fichiers de zone inverse

2.4.1 Principe de domaine invers


Le processus de rsoution invers permet la recherche d'un nom partir d'une IP. Le domaine "inaddr.arpa" a t cr pour cela. On l'appelle domaine inverse et la rsolution des adresses IP en noms de domaine se nomme table inverse (translation inverse). Le nom de domaine inverse est cr en inversant les nombres 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 ncessit de ce nom invers, prenons un exemple concret : Votre serveur FTP accepte des requtes de divers clients. Cependant vous ne souhaitez n'accepter que des requtes provenant de domaines bien spcifiques, 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 dernire se trouve dans tous les paquets qui traversent le rseau. L'adresse IP que le systme fournit au serveur FTP est 212.180.91.66. Pour retrouver le nom de cette machine, il nous faut trouver 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, et poursuivre 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

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

C'est ce dernier qui lui dira que pour 66.91.180.212.in-addr.arpa nous avons un champ ``PTR www.labolinux.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 autorise. S'il n'existait pas de rsolution inverse de 212.180.91.66 au travers de la zone in-addr.arpa, le serveur aurait 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 le nom. C'est pourquoi la rsolution de noms inverse pour les machines est obligatoire.

2.4.2 Configuration d'un fichier de rsolution de noms invers


Le but de ce fichier va tre de fournir une rsolution inverse, donc un nom FQDN partir d'une adresse IP. Ce fichier est similaire au fichier de noms prcdents si ce n'est que les enregistrements sont de types PTR :

Exemple :

$ORIGIN $TTL @ linux.com. 02050500 3H 1800 604800

IN

SOA ; ; ; ;

1.168.192.in-addr.arpa 86400 dns.labo-linux.com. hostmaster.labo( numro de srie rafraichir aprs 3 heures retenter aprs 30 minutes expire aprs 1 semain

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

3D ) IN IN IN IN IN IN IN IN NS MX PTR PTR PTR PTR PTR PTR

TTL

minimum

de

jours

20 21 22 23 24 25

dns.labo-linux.com. 10 mail.labo-linux.com. ws1.labo-linux.com. ws2.labo-linux.com. ws3.labo-linux.com. laptop1.labo-linux.com. database.labo-linux.com. gateway.labo-linux.com.

Ce fichier serait mis en service avec la dclaration suivante dans named.conf :

zone type file allow-update };

"1.0.10.in-addr.arpa" {

{ master; "labo-linux.com.rr.zone"; none; };

IN

3. L'administration du dmon named

3.1 Dmarrage et arrt du service


Pour dmarrer le serveur DNS, il suffit d'utiliser la commande "/usr/local/sbin/named". Les paramtres disponibles sont :

-c {config_file} : Permet de spcifier l'emplacement et le nom du fichier de configuration principale. -v : Affiche la version de BIND. -u {user_name} : Force BIND dmarrer sous un compte particulier, car BIND dmarre par dfaut en utilisant le compte root. -t {directory} : Option utilis lorsque l'on dmarre BIND dans une SandBox (cf. chapitre correspondant).

Il existe 2 utilitaires permettant de vrifier les fichiers de configuration de BIND :

named-checkconf : Vrifie le fichier de configuration principale et affiche les erreurs de syntaxe trouves. 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 le dmon named partir de l'hte local ou d'un hte distant.

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Afin de prvenir d'accs non autoriss au dmon, BIND utilise une mthode de cl secrte partage pour accorder des privilges aux htes. Dans une telle situation, une cl identique doit tre prsente aussi bien dans /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 dclaration controls doit tre prsente dans le fichier /etc/named.conf du serveur BIND. La dclaration controls montre dans l'exemple qui suit, permet rndc de se connecter partir d'un hte local.

controls inet };

127.0.0.1

allow

localhost;

keys

<nom-cl>;

{ };

Cette dclaration indique named de se mettre l'coute du port TCP 953 par dfaut de l'adresse inverse et d'autoriser les commandes rndc provenant de l'hte local, si la cl adquate est prsente. Le <nomcl> fait rfrence la dclaration key, qui se trouve aussi dans le fichier /etc/named.conf. L'exemple suivant illustre une dclaration key.

key algorithm secret };

"<nom-cl>"

{ hmac-md5; "<valeur-cl>";

Dans ce cas, la <valeur-cl> est une cl HMAC-MD5. Afin de crer des cls HMAC-MD5, utilisez la commande 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 place dans la zone <valeur-cl> se trouve dans <nom-fichier-cl>.

Il est conseill de mettre la dclaration de cl dans un fichier spar Note: uniquement accessible par root et de l'appeler via un include : include

"/etc/rndc.key";

3.2.2 Configuration de /etc/rndc.conf

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

La dclaration key reprsente la dclaration la plus importante contenue dans /etc/rndc.conf.

key algorithm secret };

"<nom-cl>"

{ hmac-md5; "<valeur-cl>";

Les lments <nom-cl> et <valeur-cl> doivent tre absolument identiques leurs paramtres contenus dans /etc/named.conf. Pour faire correspondre les cls spcifies dans le fichier /etc/named.conf du serveur cible, ajoutez les lignes suivantes au fichier /etc/rndc.conf.

options default-server default-key };

{ localhost; "<nom-cl>";

3.3 La ligne de commande de rndc


Une commande rndc se prsente sous le format suivant :

rndc <options> <commande> <options-commande>

Lors de l'excution de rndc sur un hte local configur de faon approprie, les commandes suivantes sont disponibles :

Commande halt querylog refresh reload stats stop -c <fichier-

Effet Arrt du service named Logging de toutes les requtes Rafraichissement de la base de donnes Recharge les fichiers de zone mais conserve toutes les rponses prcdemment places en cache. Evacue les statistiques courante de named vers le fichier /var/named/named.stats Arrte le serveur de manire nette, en enregistrant pralablement toute mise jour dynamique et donne Incremental Zone Transfers (IXFR). Permet de selectionner le fichier de configuration a utiliser

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

configuration> -p <numro-port> Permet de spcifier le numro de port utiliser -s <serveur> Permet d'envoyer les instructions un serveur spcifique Spcifie une cl autre que l'option default-key dans le fichier -y <nom-cl> /etc/rndc.conf. Note: Si vos changements n'affectent qu'une zone particulire, rechargez seulement une zone en ajoutant le nom de la zone aprs la commande reload.
4. Scurisation du serveur

Le but de la Sand Box, en cas d'attaque pirate, est de limiter l'accs seulement une infime partie du systme de fichiers. Pour cela, nous allons dmarrer le daemon de BIND dans un environnement chroot. L'effet obtenu sera de faire croire BIND que son repertoire sera sa propre racine de systme de fichiers. Nous allons voir comment scuriser le DNS via la mise en place d'une SandBox. Pour cela, il va falloir procder quelques modifications :

Crer un utilisateur non-privilgi pour faire fonctionner BIND. Changer le propritaire des fichiers de BIND. Crer un fichier PID dans notre environnement chroot. Modifier le fichier de configuration principal. Dmarrer BIND avec les bons paramtres.

Commenons la creation de l'utilisateur non-privilgi. Nous avons choisi d'utiliser le compte dns (UID = 1005). Nous crons maintenant le fichier PID pour bind, avec la commande "touch named.pid". Le changement de propritaire des fichiers de BIND (prsents dans le rpertoire "/etc/namedb") se fait grce la commande "chown dns *" dans le rpertoire de base de BIND. Les modifications qu'il faut apporter au fichier de configuration principale sont les suivantes :

directory "/"; pid-file "named.pid";

La dernire modification concerne les paramtres de dmarrage. Il suffit pour cela de mettre "-u 1005 -t /etc/namedb -c named.conf" en tant que paramtre pour l'option "named_flags" du fichier "/etc/rc.conf", au lieu de "-c /etc/namedb/named.conf". Il ne nous reste plus qu' redmarrer le serveur afin que le service DNS soit entirement fonctionnel avec toutes les dernires modifications.
5. Annexes

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

5.1 Mise jour du DNS via le serveur DHCP


Il est possible de configurer votre serveur DHCP et BIND de manire ce que lorsqu'une machine prend un bail DHCP, celle-ci soit enregistre par le serveur DNS. Sans trop entrer dans les dtails, nous allons ici dtailler les diffrentes tapes de configuration. Dans notre exemple ; les 2 services sont xcuts sur la mme machine et utilisent donc la mme adresse : 127.0.0.1 Modifications apporter a /etc/named.conf :

zone type file allow-update 127.0.0.1; }; }; # La zone type file allow-update 127.0.0.1; }; };

"labo-linux.com"

{ master; "/var/named/labo-linux.zone"; {

zone de recherche "10.168.192.in-addr.arpa"

inverse { master; "/var/named/reverse.rev"; {

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 dj une entre dans les fichiers de zones.
Modifications apporter /etc/dhcpd.conf :

# mthode ddns-update-style # ddns-update # mise ignore mise

de

mise

jour jour

du

DNS : interim; autorise on; DHCP force client-updates;

jour

par jour

le des

serveur IP

# la mise update-static-leases

fixes

force on;

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

# on dfinit galement quel DNS doit tre mis jour pour ces zones : zone labo-linux.com. { primary 127.0.0.1; } zone primary } 10.168.192.in-addr.arpa. { 127.0.0.1;

Modifications pour les clients Linux Ajoutez la ligne suivante dans /etc/dhclient.conf :

send host-name "lenomdelamachine";

En effet par dfaut, dhclient n'envoie pas le nom d'hte au serveur.

5.2 Exemples de fichiers de configuration


Le but de ce chapitre est de vous proposer des exemples de configurations prt l'emploi afin de vous aider mettre en place votre serveur :

5.2.1 Cas d'un serveur matre


/etc/named.conf

acl "labo-linux" options directory forwarders 193.252.19.3; 193.252.19.4; }; allow-query }; zone type file }; zone type file

127.0.0.1;

192.168.1.0/24;

}; { "/etc/namedb"; {

{"labo-linux";}; "." { hint; "named.root"; { master; "localhost.rev";

"0.0.127.IN-ADDR.ARPA"

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

}; zone type file }; zone type file }; "labo-linux.com" { master; "labo-linux.zone"; { master; "1.168.192.in-addr.arpa";

"1.168.192.in-addr.arpa"

/var/named/labo-linux.zone

@ linux.com. 02050500 10800 1800 3600000 259200 dns www ftp mail routeuradsl passerelle

IN

SOA

dns.labo-linux.com.

hostmaster.labo(

) IN IN IN IN IN IN IN NS MX A CNAME A A IN CNAME dns.labo-linux.com. 10 192.168.1.1 dns.labo-linux.com. 192.168.1.2 192.168.1.3 A 192.168.1.254 routeuradsl.labo-linux.com. mail.labo-linux.com.

/var/named/localhost.rev

@ IN hostmaster.labo-linux.com. 02042800 3600 900 3600000 3600 IN 1 IN PTR

SOA

dns.labo-linux.com. (

NS localhost.

) labo-linux.com.

5.2.2 Cas d'un serveur de cache


Pour ce type de serveur, un fichier /etc/named.conf suffit :

WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securit,Rseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

options directory allow-query { allow-transfer{ allow-recursion{192.168.1.0/24; }; controls inet }; zone type file }; zone type file allow-update }; zone type file allow-update }; 127.0.0.1 allow "." {

192.168.1.0/24; 192.168.1.0/24;

{ "/var/named"; }; }; }; { };

localhost;

keys IN

rndckey;

{ hint; "named.ca"; IN { master; "localhost.zone"; }; IN { master; "named.local"; };

"localhost" { "0.0.127.in-addr.arpa" {

none;

none;

include "/etc/rndc.key";