<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.theodys.org/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Theodys.org - DNS</title>
  <link>http://www.theodys.org/index.php/</link>
  <description>Le blog de theodys societe commerciale de service informatique a bordeaux, nous mettons à disposition des internautes quelques guides, tutoriels et autres tutos concernant généralement des problemes que nous avons pu avoir au cour de nos interventions developpements</description>
  <language>fr</language>
  <pubDate>Fri, 14 Nov 2008 15:02:33 +0100</pubDate>
  <copyright>Theodys</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Installation et configuration d'un serveur DNS (Bind9) sur Ubuntu</title>
    <link>http://www.theodys.org/index.php/post/2007/05/14/Installation-et-configuration-dun-serveur-DNS-Bind9-sur-Ubuntu</link>
    <guid isPermaLink="false">urn:md5:b4f2ac2a2570223860ee3cebc2032bc1</guid>
    <pubDate>Mon, 14 May 2007 17:40:00 +0200</pubDate>
    <dc:creator>mimi</dc:creator>
        <category>Linux</category>
        <category>BIND</category><category>DNS</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;
Cet article présente l'installation et la configuration d'un serveur DNS.&lt;br /&gt;
L'installation est faite sur une distribution Ubuntu (6.06 LTS server dans mon cas)&lt;/p&gt;    &lt;h1&gt;Installation d'un serveur DNS (Bind9) sur Ubuntu&lt;/h1&gt;
&lt;p&gt;
Cet article présente l'installation et la configuration d'un serveur DNS.&lt;br /&gt;
L'installation est faite sur une distribution Ubuntu (6.06 LTS server dans mon cas)&lt;/p&gt;
&lt;h2&gt;Pré-requis&lt;/h2&gt;
&lt;p&gt;
Savoir ce qu'est le système DNS : &lt;a href=&quot;http://fr.wikipedia.org/wiki/DNS&quot; target=&quot;_blank&quot;&gt;Définition wikipedia&lt;/a&gt;&lt;br /&gt;
Pour l'ensemble du guide, nous partirons du principe, que la configuration réseau de votre serveur est fonctionnelle.&lt;br /&gt;
Il est aussi nécessaire d'avoir certaines bases de l'utilisation d'un systeme Linux&lt;br /&gt;
Enfin, il est important que votre getionnaire de paquet soit configurer et à jour. Pour cela je vous conseille de lire l'excellent guide sur le site de ubuntu-fr.org :&lt;br /&gt;
&lt;a href=&quot;http://doc.ubuntu-fr.org/gestionnaire_de_paquets&quot; target=&quot;_blank&quot;&gt;http://doc.ubuntu-fr.org/gestionnaire_de_paquets&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Ma configuration&lt;/h3&gt;
Adresse IP du serveur : 192.168.1.2&lt;br /&gt;
Adresse IP de mon routeur (ou de la &quot;box&quot;) : 192.168.1.1&lt;br /&gt;
Domaine : mondomaine.local&lt;br /&gt;
Les noms des ordinateurs et les ip souhaitées:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;server (ubuntu dapper LTS) =&amp;gt; 192.168.1.2&lt;/li&gt;
&lt;li&gt;mimiz (ubuntu Feisty) =&amp;gt; 192.168.1.5&lt;/li&gt;
&lt;li&gt;portable (ubuntu Feisty) =&amp;gt; 192.168.1.6&lt;/li&gt;
&lt;li&gt;poste2 (windows XP) =&amp;gt; 192.168.1.10&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;
La première chose à faire est d'installer le paquet bind sur le serveur :
&lt;/p&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
#sudo apt-get install bind
&lt;/div&gt;
&lt;h2&gt;Configuration du serveur&lt;/h2&gt;
&lt;p&gt;
Dans un premier temps, nous allons jeter un coup d'oeil au fichier de configuration général de bind :&lt;/p&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
// This is the primary configuration file for the BIND DNS server named.&lt;br /&gt;//&lt;br /&gt;// Please read /usr/share/doc/bind9/README.Debian.gz for information on the&lt;br /&gt;// structure of BIND configuration files in Debian, *BEFORE* you customize&lt;br /&gt;// this configuration file.&lt;br /&gt;//&lt;br /&gt;// If you are just adding zones, please do that in /etc/bind/named.conf.local&lt;br /&gt;&lt;br /&gt;include &quot;/etc/bind/named.conf.options&quot;;&lt;br /&gt;&lt;br /&gt;// prime the server with knowledge of the root servers&lt;br /&gt;zone &quot;.&quot; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type hint;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file &quot;/etc/bind/db.root&quot;;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// be authoritative for the localhost forward and reverse zones, and for&lt;br /&gt;// broadcast zones as per RFC 1912&lt;br /&gt;&lt;br /&gt;zone &quot;localhost&quot; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type master;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file &quot;/etc/bind/db.local&quot;;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;zone &quot;127.in-addr.arpa&quot; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type master;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file &quot;/etc/bind/db.127&quot;;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;zone &quot;0.in-addr.arpa&quot; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type master;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file &quot;/etc/bind/db.0&quot;;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;zone &quot;255.in-addr.arpa&quot; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type master;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file &quot;/etc/bind/db.255&quot;;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// zone &quot;com&quot; { type delegation-only; };&lt;br /&gt;// zone &quot;net&quot; { type delegation-only; };&lt;br /&gt;&lt;br /&gt;// From the release notes:&lt;br /&gt;//  Because many of our users are uncomfortable receiving undelegated answers&lt;br /&gt;//  from root or top level domains, other than a few for whom that behaviour&lt;br /&gt;//  has been trusted and expected for quite some length of time, we have now&lt;br /&gt;//  introduced the &quot;root-delegations-only&quot; feature which applies delegation-only&lt;br /&gt;//  logic to all top level domains, and to the root domain.  An exception list&lt;br /&gt;//  should be specified, including &quot;MUSEUM&quot; and &quot;DE&quot;, and any other top level&lt;br /&gt;//  domains from whom undelegated responses are expected and trusted.&lt;br /&gt;// root-delegation-only exclude { &quot;DE&quot;; &quot;MUSEUM&quot;; };&lt;br /&gt;&lt;br /&gt;include &quot;/etc/bind/named.conf.local&quot;;
&lt;/div&gt;
Vous l'aurez certainement remarqué, plusieurs fichiers sont inclus, du coup je vous invite aussi à regarder à quoi ils ressemblent ne serait-ce que pour savoir ce qui est configuré.&lt;br /&gt;
La dernière ligne indique l'inclusion du fichier : &lt;span style=&quot;font-weight: bolder;&quot;&gt;/etc/bind/named.conf.local&lt;/span&gt;, c'est dans ce fichier que nous allons rajouter les informations de la zone (du domaine) que nous souhaitons configurer.&lt;br /&gt;
&lt;p&gt;
J'ai, dans le fichier &lt;span style=&quot;font-weight: bolder;&quot;&gt;/etc/bind/named.conf.options&lt;/span&gt; comme suit :
&lt;/p&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
options {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; directory &quot;/var/cache/bind&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If there is a firewall between you and nameservers you want&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // to talk to, you might need to uncomment the query-source&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // directive below.  Previous versions of BIND always asked&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // questions using port 53, but BIND 8.1 and later use an unprivileged&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // port by default.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //query-source address * port 53;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If your ISP provided one or more IP addresses for stable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // nameservers, you probably want to use them as forwarders.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Uncomment the following block, and insert the addresses replacing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the all-0's placeholder.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; forwarders {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&lt;br /&gt;        auth-nxdomain no;    # conform to RFC1035&lt;br /&gt;&lt;br /&gt;};&lt;/div&gt;
Tout ce passe au niveau de forwarders {, en effet j'ai mis ici l'adresse IP de mon routeur, cela permet de faire en sorte que si le serveur que nous sommes en train de configurer n'arrive pas à résoudre une adresse donnée il envoie la requete à mon routeur.
&lt;p&gt;
Pour chaque domaine, il est nécessaire de configurer deux zones, la zone principale, et la zone de recherche inversée.&lt;br /&gt;
Je ne rentrerais pas dans le détails mais en gros, &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la zone principale permet de faire pointer un nom de domaine pleinement qualifié (&lt;a href=&quot;http://fr.wikipedia.org/wiki/DNS#Fully_Qualified_Domaine_Name&quot; target=&quot;_blank&quot;&gt;FQDN = Full Qualified Domain Name&lt;/a&gt;) sur une adresse IP, pour information un nom de domaine pleinement qualifié est de la forme : hote.domaine.extension.&lt;/li&gt;
&lt;li&gt;la zone de recherche inversée, permet de faire, comme son nom l'indique, l'inverse, c'est-à-dire de faire pointer une adresse IP sur un FQDN.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Création de la zone principale&lt;/h3&gt;
Dans le fichier &lt;span style=&quot;font-weight: bolder;&quot;&gt;/etc/bind/named.conf.local&lt;/span&gt; nous allons rajouter les informations suivantes :&lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
//&lt;br /&gt;// Do any local configuration here&lt;br /&gt;//&lt;br /&gt;zone &quot;mondomaine.local&quot; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type master;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file &quot;mondomaine.local.hosts&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow-update { none; };&lt;br /&gt;};
&lt;/div&gt;
Ces informations vont créer le domaine : mondoamaine.local, la zone est de type master (c'est-à-dire maitre), le fichier qui contiendra le détails des machines de mon domaine est &lt;span style=&quot;font-weight: bolder;&quot;&gt;/etc/bind/mondomaine.local.hosts&lt;/span&gt;, et je n'autorise pas de mise à jour.&lt;br /&gt;
Pour en savoir plus sur la configuration d'une zone, je vous invite à visiter le site officiel de bind (&lt;a href=&quot;http://www.isc.org&quot; target=&quot;_blank&quot;&gt;http://www.isc.org&lt;/a&gt;).&lt;br /&gt;
La dernière ligne n'est pas indispensable.&lt;br /&gt;
&lt;h3&gt;Création de la zone de recherche inversée&lt;/h3&gt;
Toujours dans le fichier &lt;span style=&quot;font-weight: bolder;&quot;&gt;/etc/bind/named.conf.local&lt;/span&gt; nous allons rajouter les informations suivantes :&lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
zone &quot;1.168.192.in-addr.arpa&quot; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type master;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file &quot;1.168.192.in-addr.arpa.zone&quot;;&lt;br /&gt;};
&lt;/div&gt;
Là je crois que vous allez me dire, oulala, c'est quoi ce nom ?&lt;br /&gt;
C'est en fait assez simple , il s'agit en fait de l'adresse de votre réseau inversé, en gros si les adresses ip de votre réseau sont de la forme, 192.168.1.X, la zone inverse sera : 1.168.192.in-addr.arpa, la fin (in-addr.arpa).&lt;br /&gt;
Pour en savoir plus sur l'extension .arpa : &lt;a href=&quot;http://fr.wikipedia.org/wiki/.arpa&quot; target=&quot;_blank&quot;&gt;http://fr.wikipedia.org/wiki/.arpa&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Configuration de la zone principale&lt;/h3&gt;
Dans la section principale, on a défini que le fichier &lt;span style=&quot;font-weight: bolder;&quot;&gt;/etc/bind/mondomaine.local.hosts&lt;/span&gt; contiendrait la définition des hôtes de notre réseau.&lt;br /&gt;
Il faut donc créer ce fichier, et le remplir.&lt;br /&gt;
Mais regardons à quoi ressemble ce fichier, nous le détaillerons plus ensuite :&lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
@      &amp;nbsp;&amp;nbsp; &amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; SOA     &amp;nbsp;&amp;nbsp;&amp;nbsp; server.mondomaine.local.  webmaster.mondomaine.local. (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 2007051401 ; serial&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 21600      ; refresh after 6 hours&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 3600       ; retry after 1 hour&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 604800     ; expires after 1 week&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 86400 )    ; minimum TTL of 1 day&lt;br /&gt;@       &amp;nbsp;&amp;nbsp;&amp;nbsp; IN&amp;nbsp;&amp;nbsp; &amp;nbsp;      NS      &amp;nbsp;&amp;nbsp;&amp;nbsp; server.mondomaine.local.&lt;br /&gt;server&amp;nbsp;&amp;nbsp; &amp;nbsp;	        IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.2&lt;br /&gt;mimiz           &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.5&lt;br /&gt;portable        &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.6&lt;br /&gt;poste2          &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.10&lt;br /&gt;router		&amp;nbsp;&amp;nbsp;&amp;nbsp; IN	&amp;nbsp;&amp;nbsp;&amp;nbsp; A	&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.1
&lt;/div&gt;
Voilà, voilà, voilà &lt;br /&gt;
Bon ça nous dis quoi tout ça ?&lt;br /&gt;
Un fichier de zone DOIT toujours commencer par la définition d'un SOA (Start Of Authority) : &lt;br /&gt;
Le &quot;@&quot; spécifie la zone définie dans le fichier configuration&lt;br /&gt;
Ensuite &quot;IN&quot; précise qu'il s'adit d'une zone Internet, il s'agit &quot;presque&quot; de la valeur par défaut, j'ai bien dis &quot;presque&quot;, en effet, les cas où vous aurez a préciser un autre type de zone sont trés rares ...&lt;br /&gt;
Ensuite on précise le mot clé SOA suivi du FQDN du serveur qui héberge la zone (server.mondomaine.local.), puis, sur la meme ligne une adresse email de contact (webmaster.mondomaine.local.).&lt;br /&gt;
Dans ce dernier cas, le premier &quot;.&quot; est considéré comme un &quot;@&quot; (il s'agit d'une convention), vous auriez pu mettre aussi : moi.fai.com. ...&lt;br /&gt;
&lt;div style=&quot;border: 1px solid black; margin: 10px; width: 80%;&quot;&gt;&lt;span style=&quot;color: red; font-weight: bolder;&quot;&gt;Attention :&lt;/span&gt; Les &quot;.&quot; à la fin de server.mondomaine.local&lt;span style=&quot;color: red; font-weight: bolder;&quot;&gt;.&lt;/span&gt; et webmaster.mondomaine.local&lt;span style=&quot;color: red; font-weight: bolder;&quot;&gt;.&lt;/span&gt; sont obligatoires !&lt;/div&gt;
Ensuite il faut définir les éléments suivant :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Le numéro de série (serial), généralement la date du jour suivi d'un incrément : YYYYMMDDxx.&lt;/li&gt;
&lt;li&gt;Le temps de rafraichissement (refresh), ici 6 heures.&lt;/li&gt;
&lt;li&gt;Le temps entre deux essais (retry), ici 1 heures.&lt;/li&gt;
&lt;li&gt;Le temps d'expiration (expire) ici 1 semaine.&lt;/li&gt;
&lt;li&gt;La valeur TTL minimum (minimum TTL),  ici, 1 jour.&lt;/li&gt;
&lt;/ul&gt;
Toutes les valeurs de temps sont précisées en secondes ... Je vous rassure, ce n'est pas obligatoire, il est possible de préciser 1W pour une semaine, ou encore 1H pour une heure ...&lt;br /&gt;
Tout de suite aprés l'enregistrement SOA, il faut préciser le serveur DNS a consulter :
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
@       IN      NS      server.mondomaine.local.
&lt;/div&gt;
En gros, là on dit : la machine server.mondomaine.local est un serveur de nom (NS = Name server) pour la zone.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons la définition des machines de notre réseau :
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
server	        IN      A       192.168.1.2&lt;br /&gt;mimiz           IN      A       192.168.1.5&lt;br /&gt;portable        IN      A       192.168.1.6&lt;br /&gt;poste2          IN      A       192.168.1.10&lt;br /&gt;router		IN	A	192.168.1.1
&lt;/div&gt;
Chaque ligne Précise : &lt;br /&gt;
le nom du pc - le type de zone - le type d'enregistrement - l'adresse IP de la machine&lt;br /&gt;
le type d'enregistrement A (A pour Alias) permet donc de pointer, par exemple, server sur l'adresse ip 192.168.1.2).&lt;br /&gt;
Bon arretons nous là pour le moment, nous verrons un peu plus loin d'autres type d'enregistrement ...&lt;br /&gt;
Mais avant configurons la zone de recherche inversée :&lt;br /&gt;
&lt;h3&gt;Configuration de la zone de recherche inversée&lt;/h3&gt;
Comme dans la section précédente, commençonc par regarder le fichier :&lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
@       &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; SOA     &amp;nbsp;&amp;nbsp;&amp;nbsp; server.mondomaine.local.  webmaster.mondomaine.local. (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 2007051401 ; serial&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 21600      ; refresh after 6 hours&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 3600       ; retry after 1 hour&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 604800     ; expires after 1 week&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 86400 )    ; minimum TTL of 1 day&lt;br /&gt;@       &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; NS      &amp;nbsp;&amp;nbsp;&amp;nbsp; server.mondomaine.local&lt;br /&gt;1             &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; PTR     router.mondomaine.local.&lt;br /&gt;2             &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; PTR     server.mondomaine.local.&lt;br /&gt;5             &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; PTR     mimiz.mondomaine.local.&lt;br /&gt;6             &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; PTR     portable.mondomaine.local.&lt;br /&gt;10             &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      PTR    poste2.mondomaine.local
&lt;/div&gt;
Je ne vais pas, ici, ré-expliquer le début du fichier ...&lt;br /&gt;
Les lignes d'enregistrements de machine sont un peu différentes, en effet, vous remarquerez que toutes les lignes commencent par un nombre, en fait ce nombre est la fin de l'adresse ip de la machine ...&lt;br /&gt;
C'est en fait ce qu'il y a aprés : 192.168.1., mon routeur à l'adresse ip 192.168.1.&lt;span style=&quot;color: red; font-weight: bolder;&quot;&gt;1&lt;/span&gt; alors j'ai mis &lt;span style=&quot;color: red; font-weight: bolder;&quot;&gt;1&lt;/span&gt; en face de son FQDN.&lt;br /&gt;
Le type d'enregistrement est PTR.&lt;br /&gt;
Bon ben voilà, normalement c'est bon ... votre serveur DNS est configuré, et bien alors on va tester.&lt;br /&gt;
&lt;h3&gt;Configuration des clients&lt;/h3&gt;
&lt;h4&gt;Sous Windows&lt;/h4&gt;
Je ne détaillerais pas ici la configuration d'un poste client sous Windows (si quelqu'un veut bien le faire ce serait sympa &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; )
&lt;br /&gt;
&lt;h4&gt;Sous Linux&lt;/h4&gt;
Editez le fichier &lt;span style=&quot;font-weight: bolder;&quot;&gt;/etc/resolv.conf&lt;/span&gt;, puis reinseignez le comme suit :&lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
domain mondomaine.local&lt;br /&gt;nameserver 192.168.1.2&lt;/div&gt;
&lt;h2&gt;Test de la configuration&lt;/h2&gt;
&lt;h3&gt;Les outils&lt;/h3&gt;
Losrque vous avez installé le paquet bind sur votre distribution préférée, certains outils ont été ajoutés :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;named-checkconf : Permet de tester si vos fichiers de configurations sont correctement écrits&lt;/li&gt;
&lt;li&gt;named-checkzone : permet de tester une zone, syntraxe :
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
#sudo named-checkzone mondomaine.local /etc/bind/mondomaine.local.hosts&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;nslookup : permet d'interroger un serveur de nom.&lt;/li&gt;
&lt;li&gt;dig : permet aussi d'interroger un serveur de nom.&lt;/li&gt;
&lt;/ul&gt;
Si les tests de configuration sont correctement passés , redémarrer votre serveur : &lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
#sudo /etc/init.d/bind9 restart
&lt;/div&gt;
&lt;h3&gt;Interrogation du serveur&lt;/h3&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
remi@portable:~$ nslookup&lt;br /&gt;&amp;gt; server 192.168.1.2&lt;br /&gt;Default server: 192.168.1.2&lt;br /&gt;Address: 192.168.1.2#53&lt;br /&gt;&amp;gt; mimiz.mondomaine.local&lt;br /&gt;Server:         192.168.1.2&lt;br /&gt;Address:        192.168.1.2#53&lt;br /&gt;&lt;br /&gt;Name:   mimiz.monomaine.local&lt;br /&gt;Address: 192.168.1.5&lt;/div&gt;
Ouéé, le serveur à bien résolu mimiz.mondomaine.local en 192.168.1.5 !!&lt;br /&gt;
Testons la zone de recher inverse :&lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
remi@portable:~$ nslookup&lt;br /&gt;&amp;gt; server 192.168.1.2&lt;br /&gt;Default server: 192.168.1.2&lt;br /&gt;Address: 192.168.1.2#53&lt;br /&gt;&amp;gt; 192.168.1.6&lt;br /&gt;Server:         192.168.1.2&lt;br /&gt;Address:        192.168.1.2#53&lt;br /&gt;&lt;br /&gt;6.1.168.192.in-addr.arpa        name = portable.mondomaine.local.&lt;/div&gt;
Et bien, c'est pas ty cool tout ça ?&lt;br /&gt;
Tout fonctionne comme il faut !
&lt;h2&gt;Utilisation des CNAME&lt;/h2&gt;
&lt;p&gt;
Comme je l'ai promis un peu plus haut, nous allons voir un autre type d'enregistrement utile : le type : CNAME (pour Canonical Name).&lt;br /&gt;
Ce type d'enregistrement permet de faire pointer un nom différent sur une machine précise et sans passer par l'adresse ip ...&lt;br /&gt;
Le meilleur exemple pour ce type d'enregistrement est le nom d'hôte : www&lt;br /&gt;
On va dire par exemple que votre serveur contient aussi un serveur web, alors dans ce cas ce serait bien d'avoir www.mondomaine.local qui pointe sur votre serveur.&lt;br /&gt;
Reprenons le fichier de zone principal :&lt;/p&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
@       &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; SOA     &amp;nbsp;&amp;nbsp;&amp;nbsp; server.mondomaine.local.  webmaster.mondomaine.local. (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 2007051401 ; serial&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 21600      ; refresh after 6 hours&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 3600       ; retry after 1 hour&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 604800     ; expires after 1 week&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 86400 )    ; minimum TTL of 1 day&lt;br /&gt;@       &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; NS      &amp;nbsp;&amp;nbsp;&amp;nbsp; server.mondomaine.local.&lt;br /&gt;server	        &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.2&lt;br /&gt;mimiz           &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.5&lt;br /&gt;portable&amp;nbsp;        IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.6&lt;br /&gt;poste2          &amp;nbsp;&amp;nbsp;&amp;nbsp; IN      &amp;nbsp;&amp;nbsp;&amp;nbsp; A       &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.10&lt;br /&gt;router		&amp;nbsp;&amp;nbsp;&amp;nbsp; IN	&amp;nbsp;&amp;nbsp;&amp;nbsp; A	&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.1&lt;br /&gt;www		&amp;nbsp;&amp;nbsp;&amp;nbsp; IN	&amp;nbsp;&amp;nbsp;&amp;nbsp; CNAME	&amp;nbsp;&amp;nbsp;&amp;nbsp; server
&lt;/div&gt;
J'ai donc simplement rajouté une ligne assez parlante il me semble, faisons un ch'ti test : &lt;br /&gt;
&lt;div style=&quot;border: 2px solid white; padding: 5px; background-color: black; color: white; margin-top: 10px; margin-bottom: 10px;&quot;&gt;
ping www.mondomaine.local&lt;br /&gt;PING server.mondomaine.local (192.168.1.2) 56(84) bytes of data.&lt;br /&gt;64 bytes from server.theodys.net (192.168.1.2): icmp_seq=1 ttl=64 time=0.110 ms&lt;br /&gt;64 bytes from server.theodys.net (192.168.1.2): icmp_seq=2 ttl=64 time=0.109 ms&lt;br /&gt;64 bytes from server.theodys.net (192.168.1.2): icmp_seq=3 ttl=64 time=0.105 ms&lt;br /&gt;64 bytes from server.theodys.net (192.168.1.2): icmp_seq=4 ttl=64 time=0.116 ms&lt;br /&gt;&lt;br /&gt;--- mimiz.theodys.net ping statistics ---&lt;br /&gt;4 packets transmitted, 4 received, 0% packet loss, time 2997ms&lt;br /&gt;rtt min/avg/max/mdev = 0.105/0.110/0.116/0.004 ms&lt;/div&gt;
Vous remarquerez que l'adresse ip (et le nom réel) de server ont été renvoyés comme il faut.
Amusez vous à faire la même chose avec www.google.com par exemple, et Ô surprise, ca pointe vers une autre machine ...&lt;br /&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
Voilà, c'est fini ...&lt;br /&gt;
A bientôt pour un autre piti tuto ...&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bolder;&quot;&gt;mimiz
&lt;/span&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.theodys.org/index.php/post/2007/05/14/Installation-et-configuration-dun-serveur-DNS-Bind9-sur-Ubuntu#comment-form</comments>
      <wfw:comment>http://www.theodys.org/index.php/post/2007/05/14/Installation-et-configuration-dun-serveur-DNS-Bind9-sur-Ubuntu#comment-form</wfw:comment>
      <wfw:commentRss>http://www.theodys.org/index.php/feed/rss2/comments/16</wfw:commentRss>
      </item>
    
  <item>
    <title>Mise en place d'un serveur DNS dynamique</title>
    <link>http://www.theodys.org/index.php/post/2006/08/27/Mise-en-place-dun-serveur-DNS-dynamique</link>
    <guid isPermaLink="false">urn:md5:459ab504018bfc27ae51409c92175e36</guid>
    <pubDate>Sun, 27 Aug 2006 17:49:00 +0200</pubDate>
    <dc:creator>mimi</dc:creator>
        <category>Linux</category>
        <category>BIND</category><category>comment</category><category>DNS</category><category>Linux</category><category>Windows</category>    
    <description>Tutorial sur la mise en oeuvre d'un serveur DNS (&lt;a hreflang=&quot;en&quot; href=&quot;http://www.isc.org/sw/bind/bind9.3.php&quot;&gt;BIND&lt;/a&gt;) Dynamique sous linux.    &lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.isc.org/sw/bind/bind9.3.php&quot;&gt;BIND&lt;/a&gt; (Berkeley Internet Name Domain) est surement un des serveurs les plus utilisés pour le bon fonctionnement d'Internet. C'est ce logiciel qui gère la plupart des noms de domaine sur Internet, il permet entre autre de gérer la correspondance entre adresses IP et nom de domaine.&lt;/p&gt;
&lt;p&gt;Je ne reviendrais pas dans cet article sur le fonctionnement de DNS ni sur l'installation ni sur la  configuration du systeme, je partirais donc du principe que vous avez déjà installé un serveur DNS, qu'au moins un nom de domaine est configuré, et que jusqu'ici tout fonctionne correctement.&lt;/p&gt;
&lt;div class=&quot;titre1&quot;&gt;Pourquoi un DNS dynamique ?&lt;/div&gt;
&lt;p&gt;Si vous avez configuré un serveur DNS vous avez du remarqué que si l'adresse IP d'une machine change, il faudra aller modififier le fichier des enregistrements du domaine pour que la nouvelle adresse IP soit prise en compte. Souvent l'exemple donné est une machine qui reçoit une adresse IP via DHCP, et qui change à chaque redémarrage, par défaut DNS ne le sait pas, il faut donc faire la mise à jour à la main !&lt;/p&gt;
&lt;p&gt;Vous me direz, pourquoi ne pas utilisé un service de type DynDNS ? Ben simplement parce que je souhaite utiliser mon propre nom de domaine, et que ce dernier est hébergé sur un serveur Dédié ...&lt;/p&gt;
&lt;p&gt;Mettre en place un DNS dynamique permettra donc de s'affranchir de la mise à jour de DNS, elle se fera toute seule ! &lt;br /&gt;La mise à jour automatique via DHCP est possible, mais n'est pour le moment pas l'objet de ce guide. Voyons la configuration de test ainsi que les objectifs à atteindre&lt;/p&gt;
&lt;div class=&quot;titre1&quot;&gt;Configuration et Objectifs&lt;/div&gt;
&lt;div class=&quot;titre2&quot;&gt;Configuration :&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt; Serveur DNS : NS.domaine.com &lt;/li&gt;
&lt;li&gt; Zone : domaine.net &lt;/li&gt;
&lt;li&gt; Logiciels : BIND ... et ... c'est tout &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;titre2&quot;&gt;Objectifs :&lt;/div&gt;
&lt;p&gt;J'ai une machine (monpc) connecté à Internet via mon FAI avec une adresse IP dynamique (a peu prés comme tout le mode quoi ...), j'aimerais mettre en place certains services sur cette machine et y acceder de n'importe où. Je pourrais utiliser un service de type DynDNS, mais j'ai envie d'utiliser mon propre nom de domaine, qui, comme je l'ai déjà dit, est hébergé sur un serveur Dédié.&lt;/p&gt;
&lt;p&gt;L'objectif est donc d'arriver à mettre à jour un hôte de ma zone : domaine.net. De façon a pouvoir acceder à ma machine en utilisant l'URL suivante : monpc.mondomaine.net.&lt;/p&gt;
&lt;p&gt;Je voudrais aussi que la transaction soit assez sécurisée (un peu plus qu'avec un login/password quoi !)&lt;/p&gt;
&lt;p&gt;Je voudrais aussi que certains de mes amis puissent utiliser le système pour leurs machines&lt;/p&gt;
&lt;p&gt;Enfin ma machine connectée à Internet tourne sous la distribution IPCOP, et donc je souhaiterais automatisée la mise a jour de ma zone à chaque changement d'IP&lt;/p&gt;
&lt;div class=&quot;titre1&quot;&gt;Etape 1 : Génération de la clé &lt;/div&gt;
&lt;p&gt;Comme je l'ai précisé plus haut, je souhaiterais que la mise à jour de mla zone se fasse de manière sécurisée. Nous allons donc utilisée une clé de cryptage générée à l'aide de la commande &lt;span class=&quot;command&quot;&gt;dnssec-keygen&lt;/span&gt; fournie avec BIND, la clé générée sera au format TSIG on parle d'ailleur de clé TSIG.&lt;br /&gt;
Je me place donc dans le répertoire de mon choix et je génére la clé ... Comme les zones gérées par mon serveur sont stockées dans le répertoire &lt;span class=&quot;command&quot;&gt;/var/named/zones/&lt;/span&gt;, j'ai créé le dossier &lt;span class=&quot;command&quot;&gt;/var/named/keys/&lt;/span&gt; dans lequel je sotckerais mes clés générées.&lt;br /&gt;Voyons donc la génération des clés :&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Création d'une clé de cryptage&lt;/legend&gt;
[root@monsrv ~]# cd /var/named/keys/ &lt;span class=&quot;commentaire&quot;&gt; // Je me place dans le bon repertoire&lt;/span&gt;&lt;br /&gt;
[root@monsrv keys]# /usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n HOST macle1 &lt;span class=&quot;commentaire&quot;&gt; // Je génére ma clé&lt;/span&gt;&lt;br /&gt;
Kmacle1.+157+30505 &lt;span class=&quot;commentaire&quot;&gt; // La réponse : le nom de ma clé&lt;/span&gt;&lt;br /&gt;
[root@monsrv keys]# chown named.named ./Kmacle1.+157+30505.* &lt;span class=&quot;commentaire&quot;&gt; // Je rend l'utilisateur named propriétaire de ma clé&lt;/span&gt;&lt;br /&gt;
&lt;/fieldset&gt;
&lt;div class=&quot;titre2&quot;&gt;Explications :&lt;/div&gt;
&lt;p&gt;Vous l'aurez compris, c'est la deuxième ligne qui est la plus intéressante, en effet, c'est cette ligne qui permet de créer la clé ... &lt;br /&gt;Une info, quand meme, chez moi l'utilitaire &lt;span class=&quot;command&quot;&gt;dnssec-keygen&lt;/span&gt; se trouve dans le répetoire &lt;span class=&quot;command&quot;&gt;/usr/sbin/&lt;/span&gt;, il pourra se trouver ailleurs sur votre machine en fonction de votre installation de BIND, uiliser &lt;span class=&quot;command&quot;&gt;find&lt;/span&gt; ou &lt;span class=&quot;command&quot;&gt;locate&lt;/span&gt; pour le trouver ...&lt;br /&gt;Revenons sur la deuxième ligne de notre exemple, on comprendra aisément que &lt;span class=&quot;command&quot;&gt; -a HMAC-MD5&lt;/span&gt; détermine le protocole de cryptage utilisé, le parametre &lt;span class=&quot;command&quot;&gt; -b 512&lt;/span&gt; détermine la longueur de la clé, le parametre &lt;span class=&quot;command&quot;&gt; -n HOST &lt;/span&gt; détermine le type d'enregistrement, il peut avoir les valeurs : &lt;span class=&quot;command&quot;&gt;ZONE | HOST | ENTITY | USER&lt;/span&gt;, et enfin macle1 est le nom de ma clé.
&lt;/p&gt;
&lt;p&gt;Pour en savoir plus sur les paramètres de &lt;span class=&quot;command&quot;&gt;dnssec-keygen&lt;/span&gt;, utilsé l'argument &lt;span class=&quot;command&quot;&gt;-?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Si on regarde le contenu de notre répertoire &lt;span class=&quot;command&quot;&gt;/var/named/keys/&lt;/span&gt; on verra 2 fichiers qui ont le même nom, et qui finissent par &lt;span class=&quot;command&quot;&gt;.private&lt;/span&gt; et &lt;span class=&quot;command&quot;&gt;.key&lt;/span&gt; soit : &lt;span class=&quot;command&quot;&gt;Kmacle1.+157+30505.private et Kmacle1.+157+30505.key&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Voyons à quoi ressemble la clé générée : &lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Contenu du fichier .key&lt;/legend&gt;
vi Kmacle1.+157+30505.key&lt;br /&gt;
&lt;br /&gt;
macle1. IN KEY 512 3 157 Zwc51Lxzt6ggjmrVRZuoBqKg/Y3S8ulAsrCNMRY+2dgQdwWwCaElBHnGYHoWdewF59w58YfEP/xUbgKDYPSUNg==&lt;br /&gt;
~&lt;br /&gt;
~&lt;br /&gt;
~&lt;br /&gt;
&amp;quot;./keys/Kmacle1.+157+30505.key&amp;quot; 1L, 115C
&lt;/fieldset&gt;
&lt;p&gt;La clé macle1 est donc : &lt;span class=&quot;command&quot;&gt;Zwc51Lxzt6ggjmrVRZuoBqKg/Y3S8ulAsrCNMRY+2dgQdwWwCaElBHnGYHoWdewF59w58YfEP/xUbgKDYPSUNg==
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Maintenant voyons comment configurer notre zone DNS&lt;/p&gt;
&lt;div class=&quot;titre1&quot;&gt;Etape 2 : Configuration de la zone&lt;/div&gt;
&lt;div class=&quot;titre2&quot;&gt;Création d'un fichier de clés&lt;/div&gt;
&lt;p&gt;Maintenant que la clé est définie, nous allons créer un fichier qui contiendra toutes les clés définies, et ce pour faciliter l'administration de votre serveur et donc ne pas surcharger le fichier de configuratiion de BIND (&lt;span class=&quot;command&quot;&gt;/etc/named.conf&lt;/span&gt; chez moi ...).  &lt;/p&gt;
&lt;p&gt;On va donc créer un fichier : &lt;span class=&quot;command&quot;&gt;/var/named/theokeys.conf&lt;/span&gt;, bien sur le nom du fichier importe peu ... &lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;/var/named/theokeys.conf&lt;/legend&gt;
vi /var/named/theokeys.conf&lt;br /&gt;&lt;br /&gt;
key macle1 {&lt;br /&gt;
    algorithm HMAC-MD5;&lt;br /&gt;
    secret &amp;quot;Zwc51Lxzt6ggjmrVRZuoBqKg/Y3S8ulAsrCNMRY+2dgQdwWwCaElBHnGYHoWdewF59w58YfEP/xUbgKDYPSUNg==&amp;quot;;
&lt;br /&gt;
};&lt;br /&gt;
~&lt;br /&gt;
~&lt;br /&gt;
~&lt;br /&gt;
&amp;quot;/var/named/theokeys.conf&amp;quot; 14L, 438C
&lt;/fieldset&gt;
&lt;p&gt;On remarquera, que le nom de la clé &lt;span class=&quot;command&quot;&gt;&amp;quot;macle1&amp;quot;&lt;/span&gt; est celui chosi lors de la génération, de la même maniere, l'algorithme de cryptage &lt;span class=&quot;command&quot;&gt;HDMA-MD5&lt;/span&gt;, est l'algorithme choisi, et enfin la valeur de &lt;span class=&quot;command&quot;&gt;secret&lt;/span&gt; est la clé propement dite !&lt;/p&gt;
&lt;div class=&quot;titre2&quot;&gt;Modification du fichier de configuration&lt;/div&gt;
&lt;p&gt;Donc on a créer un fichier de clé, maintenant il va falloir configurer &lt;span class=&quot;command&quot;&gt;named&lt;/span&gt;, pour qu'il le prenne en compte, et il faudra ensuite définir les &amp;quot;droits des clés&amp;quot;, c'est-à-dire ce que le proprietaire de  la clé à le droit de mettre à jour dans notre configuration&lt;/p&gt;
&lt;p&gt;Dans un premier temps on va insérer le fichier de clés à la configuration de &lt;span class=&quot;command&quot;&gt;named&lt;/span&gt;&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;/etc/named.conf&lt;/legend&gt;
vi /etc/named.conf &lt;br /&gt;
&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/named&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
//&lt;br /&gt;
// a caching only nameserver config&lt;br /&gt;
//&lt;br /&gt;
controls {&lt;br /&gt;
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;.&amp;quot; IN {&lt;br /&gt;
        type hint;&lt;br /&gt;
        file &amp;quot;named.ca&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;localhost&amp;quot; IN {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;localhost.zone&amp;quot;;&lt;br /&gt;
        allow-update { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;0.0.127.in-addr.arpa&amp;quot; IN {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;named.local&amp;quot;;&lt;br /&gt;
        allow-update { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
include &amp;quot;/etc/rndc.key&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
* Cles pour Dynamique DNS &lt;br /&gt;
*/&lt;br /&gt;
include &amp;quot;/var/named/theokeys.conf&amp;quot;; &lt;span class=&quot;commentaire&quot;&gt; // Inclusion du fichier de clés&lt;/span&gt;
&lt;br /&gt;
// Configuration des zones &lt;br /&gt;
zone &amp;quot;domaine.net&amp;quot; {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/var/named/domaine.net.hosts&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;/fieldset&gt;
&lt;p&gt; Si on redemarre &lt;span class=&quot;command&quot;&gt;named&lt;/span&gt; notre fichier de clés sera donc pris en compte, par contre pour le moment nous n'avons défini aucun droit pour notre clé&lt;/p&gt;
&lt;p&gt;Dans mon exemple, je souhaiterais que l'hôte : &lt;span class=&quot;command&quot;&gt;mimi.domaine.net &lt;/span&gt; puisse être mis à jour à l'aide de la clé &lt;span class=&quot;command&quot;&gt;macle1&lt;/span&gt;, on va donc rajouter une ligne à configuration de la zone &lt;span class=&quot;command&quot;&gt;domaine.net&lt;/span&gt;&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Modification de la zone domaine.net&lt;/legend&gt;
---&lt;br /&gt;
zone &amp;quot;domaine.net&amp;quot; {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/var/named/domaine.net.hosts&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant macle1. name mimi.domaine.net. A TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
---&lt;br /&gt;
&lt;/fieldset&gt;
&lt;p&gt;Dans cet exemple, j'ai donné l'autorisation à la clé &lt;span class=&quot;command&quot;&gt;macle1&lt;/span&gt; de modifié l'enregistrement DNS de &lt;span class=&quot;command&quot;&gt;mimi.domaine.net&lt;/span&gt;, et ce uniquement pour les type d'enregistrement &lt;span class=&quot;command&quot;&gt;A&lt;/span&gt; et &lt;span class=&quot;command&quot;&gt;TXT&lt;/span&gt;&lt;br /&gt;J'aurais aussi pu autoriser la clé &lt;span class=&quot;command&quot;&gt;macle1&lt;/span&gt; a modifier la zone dans son intégralité en insérant (à la place de la section &lt;span class=&quot;command&quot;&gt;update-policy&lt;/span&gt;) la valeur suivante :&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Exemple 2 : macle1 allow-update&lt;/legend&gt;
---&lt;br /&gt;
zone &amp;quot;domaine.net&amp;quot; {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/var/named/domaine.net.hosts&amp;quot;;&lt;br /&gt;
        allow-update {&lt;br /&gt;
                key macle1;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
---&lt;br /&gt;
&lt;/fieldset&gt;
&lt;p&gt;Mais pour des raisons de sécurité et d'intégrité de ma zone, je préfere utilisé l'instruction &lt;span class=&quot;command&quot;&gt;update-policy&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;La syntaxe des lignes de cette instruction est la suivante :&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Exemple 2 : syntaxe de update-policy&lt;/legend&gt;
...&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant &amp;lt;key&amp;gt; &amp;lt;type&amp;gt; &amp;lt;zone&amp;gt; &amp;lt;record-types&amp;gt;;&lt;br /&gt;
        };&lt;br /&gt;
...&lt;br /&gt;
&lt;/fieldset&gt;
&lt;p&gt;Explications : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;key&amp;gt; : Doit correspondre à une clé du fichier &lt;span class=&quot;command&quot;&gt;/var/named/theokeys.conf&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;type&amp;gt; : Correspond au type de l'autorisation, peut prendre &lt;span class=&quot;command&quot;&gt;name&lt;/span&gt; ou &lt;span class=&quot;command&quot;&gt;subdomain&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&amp;lt;zone&amp;gt; : Indique la zone ou le sous-domaine à mettre à jour&lt;/li&gt;
&lt;li&gt;&amp;lt;record-type&amp;gt; : Précise le type d'enregistrement qui peuvent être mis à jour&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Maintenant que la mise à jour dynamique est mise en place voyons comment cela fonctionne coté client !&lt;/p&gt;
&lt;div class=&quot;titre1&quot;&gt;Etape 3 : Mise à jour des enregistrements (nsupdate)&lt;/div&gt;
&lt;div class=&quot;titre2&quot;&gt;Récupération des clés&lt;/div&gt;
&lt;p&gt;Comme nous avons créer des clés pour autoriser les mises à jour, il faut que les clients les récupèrent pour pouvoir mettre à jour leurs enregistrements, je ne détaillerais pas ce point, car c'est assez facile, personnellement j'ai crée un fichier &lt;span class=&quot;command&quot;&gt;.tar.gz &lt;/span&gt; contenant les fichiers &lt;span class=&quot;command&quot;&gt;.key&lt;/span&gt; et &lt;span class=&quot;command&quot;&gt;.private&lt;/span&gt; de ma clé et que j'ai ensuite placé dans un répertoire accessible via FTP, j'ai récupéré ce fichier via FTP, puis je l'ai supprimé pour des raisons de sécurité.&lt;/p&gt;
&lt;p&gt;Ce n'est certainement pas la meilleure solution, mais s'en ai une !&lt;/p&gt;
&lt;p&gt;Aprés avoir décompressé le fichier dans un dossier de mon choix sur mon poste client, je me suis penché sur l'utilisation de &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;titre2&quot;&gt;Utilisation de nsupdate&lt;/div&gt;
&lt;p&gt;L'utilitaire &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt; est fourni avec BIND aussi bien pour &lt;a href=&quot;http://www.theodys.org/index.php/tag/Linux&quot;&gt;Linux&lt;/a&gt; que pour &lt;a href=&quot;http://www.theodys.org/index.php/tag/Windows&quot;&gt;Windows&lt;/a&gt; je vais donc expliquer comment mettre à jour l'enregistrement &lt;span class=&quot;command&quot;&gt;mimi.domaine.net&lt;/span&gt; à l'aide de cet utilitaire, pour avoir plus d'information sur &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt; consultez &lt;a href=&quot;http://linux.yyz.us/nsupdate/nsupdate-man.html&quot; target=&quot;_blank&quot;&gt;l'aide en ligne&lt;/a&gt; ou utilisez &lt;span class=&quot;command&quot;&gt;man nsupdate&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;La syntaxe de &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt; est identique sous &lt;a href=&quot;http://www.theodys.org/index.php/tag/Windows&quot;&gt;Windows&lt;/a&gt; ou sous &lt;a href=&quot;http://www.theodys.org/index.php/tag/Linux&quot;&gt;Linux&lt;/a&gt;, la seule différence réelle va résider dans les chemins d'accés aux fichiers de clé.&lt;/p&gt;
&lt;p&gt;L'utilisation de &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt; fonctionne à peu prés comme un shell (ou une invite de commande, pour les utilisateurs de &lt;a href=&quot;http://www.theodys.org/index.php/tag/Windows&quot;&gt;Windows&lt;/a&gt;), voyons un exemple :&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Utilisation de &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt;&lt;/legend&gt;
nsupdate -k /chemin/de/la/clé/Kmacle1.+157+30505.key
&amp;gt; _
&lt;/fieldset&gt;
&lt;p&gt;Je préfére utilsé le paramètre &lt;span class=&quot;command&quot;&gt;-k &lt;/span&gt;, mais c'est un choisx personnel, reportez vous à la documentation de &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt; pour en savoir plus&lt;/p&gt;
&lt;p&gt;Une fois sur le prompt de &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt;, vous pouvez envoyer des requetes au serveur pour qu'il fasse les mises à jour souhaitées :&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Requêtes &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt; 1&lt;/legend&gt;
nsupdate -k /chemin/de/la/clé/Kmacle1.+157+30505.key
&amp;gt;server NS.domaine.com &lt;span class=&quot;commentaire&quot;&gt;// Je me place sur mon serveur DNS&lt;/span&gt;&lt;br /&gt;
&amp;gt;zone domaine.net&lt;span class=&quot;commentaire&quot;&gt; // Je précise la zone&lt;/span&gt;&lt;br /&gt;
&amp;gt; update add mimi.domaine.net 86400 IN A www.xxx.yyy.zzz &lt;span class=&quot;commentaire&quot;&gt;// Details plus bas&lt;/span&gt;&lt;br /&gt;
&amp;gt; &lt;span class=&quot;commentaire&quot;&gt;// Appuyer encore sur [ENTREE] pour que nsupdate excute la commande&lt;/span&gt;
&lt;/fieldset&gt;
&lt;p&gt;Explcations :&lt;/p&gt;
&lt;p&gt;La ligne &lt;span class=&quot;command&quot;&gt;update add mimi.domaine.net 86400 IN A www.xxx.yyy.zzz&lt;/span&gt;, vous l'aurez compris est la requête à proprement parlé, en gros là je dis à &lt;span class=&quot;command&quot;&gt;named&lt;/span&gt; Ajoute l'hôte &lt;span class=&quot;command&quot;&gt;mimi.domaine.net&lt;/span&gt; pour une durée de &lt;span class=&quot;command&quot;&gt;86400&lt;/span&gt; secondes (soit 1 jour), le type d'enregistrement est &lt;span class=&quot;command&quot;&gt;A&lt;/span&gt;, et l'adresse IP est  &lt;span class=&quot;command&quot;&gt;www.xxx.yyy.zzz&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;On notera, que pour que le serveur prenne en compte les requêtes, il faut valider une ligne vide !&lt;br /&gt;
&lt;br /&gt; Vous remarquerez que c'est assez simple d'utilisation, une chose quand même, si vous aviez déjà ajouté l'hôte, il faudra le
supprimer avant de le rajouter afin de le mettre à jour ! exemple :  &lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Requêtes &lt;span class=&quot;command&quot;&gt;nsupdate&lt;/span&gt; 2&lt;/legend&gt;
nsupdate -k /chemin/de/la/clé/Kmacle1.+157+30505.key
&amp;gt; server NS.domaine.com &lt;span class=&quot;commentaire&quot;&gt;// Je me place sur mon serveur DNS&lt;/span&gt;&lt;br /&gt;
&amp;gt; zone domaine.net&lt;span class=&quot;commentaire&quot;&gt; // Je précise la zone&lt;/span&gt;&lt;br /&gt;
&amp;gt; update delete mimi.domaine.net A &lt;span class=&quot;commentaire&quot;&gt;// On supprime l'enregistrement&lt;/span&gt;&lt;br /&gt;
&amp;gt; update add mimi.domaine.net 86400 IN A www.xxx.yyy.zzz &lt;span class=&quot;commentaire&quot;&gt;// On ajoute l'enregistrement&lt;/span&gt;&lt;br /&gt;
&amp;gt; &lt;span class=&quot;commentaire&quot;&gt;// Appuyer encore sur [ENTREE] pour que nsupdate excute la commande&lt;/span&gt;
&lt;/fieldset&gt;
&lt;p&gt;Voilà maintenant vous pouvez tester la configuration, avec des utilisaires systèmes comme &lt;span class=&quot;command&quot;&gt;ping&lt;/span&gt;, &lt;span class=&quot;command&quot;&gt;dig&lt;/span&gt; ou encore &lt;span class=&quot;command&quot;&gt;nslookup&lt;/span&gt;, à vous de choisir !&lt;/p&gt;
&lt;p&gt;Bon, la mise à jour de notre serveur DNS fonctionne, c'est bien, mais ce serait encore mieux si la mise à jour se faisait de façon automatique à chaque fois que l'adresse IP de ma machine change ...&lt;/p&gt;
&lt;div class=&quot;titre2&quot;&gt;Automatisation de la mise à jour&lt;/div&gt;
&lt;div class=&quot;titre3&quot;&gt;Sous Linux&lt;/div&gt;
&lt;p&gt;J'ai crée un petit script &lt;span class=&quot;command&quot;&gt;bash&lt;/span&gt; permettant de mettre à jour le serveur DNS de façon automatique (à savoir sans interaction avec l'utilisateur). Vous pouvez utiliser ce script pour vos besoins ... Et si vous prenez l'envie de l'améliorer, j'espere que vous penserez à me le faire savoir ...&lt;/p&gt;
&lt;p&gt;Voici le script :&lt;/p&gt;
&lt;fieldset class=&quot;code&quot;&gt;
&lt;legend&gt;Script : nsupdte.sh&lt;/legend&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Auteur : Rémi Goyard &lt;br /&gt;
# version 1.0&lt;br /&gt;
# LICENCE : Faites en ce que vous voulez... &lt;br /&gt;
&lt;br /&gt;
### Parametres à modifier&lt;br /&gt;
IPADDR=`cat /chemin/de/local-ipaddress`&lt;br /&gt;
KEY=&amp;quot;/chemin/de/la/clé/Kmacle1.+157+30505.key&amp;quot;&lt;br /&gt;
SERVER=&amp;quot;ns.domaine.com&amp;quot;&lt;br /&gt;
ZONE=&amp;quot;domaine.net&amp;quot;&lt;br /&gt;
HOTE2=&amp;quot;hote2.domaine.net&amp;quot;&lt;br /&gt;
MIMI=&amp;quot;mimi.domaine.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LOGFILE=&amp;quot;/var/log/nsupdate.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt;eof | nsupdate -k $KEY&lt;br /&gt;
server $SERVER&lt;br /&gt;
zone $ZONE&lt;br /&gt;
update delete $HOTE2&lt;br /&gt;
update delete $MIMI&lt;br /&gt;
update add $HOTE2 84600 IN A $IPADDR&lt;br /&gt;
update add $MIMI 84600 IN A $IPADDR&lt;br /&gt;
send&lt;br /&gt;
EOF&lt;br /&gt;
&amp;gt;&amp;gt;$LOGFILE 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;/fieldset&gt;
&lt;p&gt;Bientôt la suite ...&lt;/p&gt;
&lt;div class=&quot;titre3&quot;&gt;Sous Windows&lt;/div&gt;
&lt;p&gt;Bientôt ...&lt;/p&gt;
&lt;div class=&quot;titre2&quot;&gt;Liens et autres documents utiles&lt;/div&gt;
&lt;a href=&quot;http://www.die.net/doc/linux/man/man8/nsupdate.8.html&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;nsupdate(8) - Linux man page&quot;&gt;nsupdate(8) - Linux man page&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.oceanwave.com/technical-resources/unix-admin/nsupdate.html&quot; target=&quot;_blank&quot; hreflang=&quot;en&quot; title=&quot; A DDNS Server Using BIND and Nsupdat&quot;&gt;A DDNS Server Using BIND and Nsupdate&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://linux.yyz.us/dns/ddns-server.html&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;Painless DDNS part 2: configuring the server&quot;&gt;Painless DDNS part 2: configuring the server&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://ops.ietf.org/dns/dynupd/secure-ddns-howto.html&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;Secure dynamic DNS howto&quot;&gt;Secure dynamic DNS howto&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.rfc-archive.org/getrfc.php?rfc=2136&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;RFC 2136 - Dynamic Updates in the Domain Name System (DNS UPDATE)&quot;&gt;RFC 2136 - Dynamic Updates in the Domain Name System (DNS UPDATE)&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;titre1&quot;&gt;Problemes et solutions&lt;/div&gt;
&lt;p&gt;A venir ....&lt;/p&gt;</description>
    
          <enclosure url="http://www.theodys.org/public/nsupdte.sh"
      length="536" type="text/plain" />
    
    
          <comments>http://www.theodys.org/index.php/post/2006/08/27/Mise-en-place-dun-serveur-DNS-dynamique#comment-form</comments>
      <wfw:comment>http://www.theodys.org/index.php/post/2006/08/27/Mise-en-place-dun-serveur-DNS-dynamique#comment-form</wfw:comment>
      <wfw:commentRss>http://www.theodys.org/index.php/feed/rss2/comments/4</wfw:commentRss>
      </item>
    
</channel>
</rss>