Dns

Vous avez configuré votre serveur DHCP, vous souhaitez créer un site internet et l’héberger chez vous ?

 

Vous devez gérer vos DNS en interne.

 

Définition : Domain Name System est un service permettant de faire correspondre une adresse IP à un nom de domaine.

 

Car les ordinateurs dialoguent entre eux par système binaire, donc par adresse IP. Et oui chaque octet correspond à un nombre binaire !

Ce qui n’est pas le cas des humains, nous on retient mieux les noms que les chiffres, c’est pourquoi DNS a été crée !

Pour info, google.fr correspond à 74.125.230.84 et samn0.fr correspond 82.226.54.213.

 

Comment connait-on l’adresse IP associée à un nom de domaine ? Par la commande ping.

 

# ping samn0.fr
PING samn0.fr (82.226.54.213) 56(84) bytes of data.
64 bytes from 82-226-54-213 icmp_seq=1 ttl=64 time=0.853 ms
64 bytes from 82-226-54-213 icmp_seq=2 ttl=64 time=0.696 ms

 

Afin de configurer tout cela, nous devons acheter notre nom de domaine.

Vous avez des hébergeurs connus, comme 1and1 ou OVH.

Pour info les 2 se valent, moi j’ai choisi le chti OVH pour un .FR.

 

Un fois votre nom de domaine acheté et opérationnel, nous pouvons commencer à le configurer.

Rendez-vous sur votre interface de gestion chez votre registar, ici ovh pour moi.

 

Vous devez spécifier votre adresse IP dans les DNS de votre registar, ainsi qu’un DNS secondaire. Ce dernier est obligatoire.

 

Une fois la modification effectuée, direction Fedora.

Tout d’abord nous devons installer BIND, c’est le serveur DNS sur Fedora, créer de toute pièce par l’université de Berkeley en Californie.

 

=> Il faut bien comprendre comment DNS fonctionne.

 

DNS fonctionne de manière hiérarchisée, avec un sommet appelé racine symbolisé par . (un point)

Ces derniers sont aux nombres de 13 dispersés à travers le monde.

 

Les domaines se trouvant juste en dessous de la racine, se nomment les domaines de premier niveau. Soit les .com ou .org appelés domaines génériques ou les .fr, .de appelés domaines country code.

 

Les sous domaines sont séparés par un ., ainsi samn0 est un sous domaine de .fr et www est lui même un sous domaine de samn0.

 

Donc nous avons :

  • www : hôte
  • samn0 : domaine
  • fr : tld ou country code

 

Les noms de domaine sont résolus de manière hiérarchique, de gauche à droite.

 

INSTALLATION DE BIND SOUS FEDORA

 

Et si on passait aux choses sérieuses, vous êtes prêts ?

 

# dnf install bind-chroot

 

A partir de là, 2 choses à modifier pas plus :

 

  • Le fichier de conf
  • il faut créer votre zone.

 

Commençons par le fichier de configuration, avec avant tout une copie du fichier de conf, au cas où il faudrait revenir en arrière.

 

# cp /etc/named.conf /etc/named.conf.bak
# nano /etc/named.conf

 

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
listen-on port 53 { 127.0.0.1; 192.168.0.241; 82.226.54.213;};
directory « /var/named »;
dump-file « /var/named/data/cache_dump.db »;
statistics-file « /var/named/data/named_stats.txt »;
memstatistics-file « /var/named/data/named_mem_stats.txt »;
allow-query {
any;
};
allow-recursion {
localhost;
192.168.0.240/28;
};
forwarders {
212.27.40.240;
};
version « SECRET »;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside . trust-anchor dlv.isc.org.;

};
logging {
channel default_debug {
file « data/named.run »;
severity dynamic;
};
};

zone « . » {
type hint;
file « /var/named/named.cache »;
};

zone « samn0.fr » IN {
type master;
file « /var/named/samn0.fr.zone »;
allow-transfer {
82.241.216.23;
};
allow-query {
any;
};
also-notify {
82.241.216.23;
};
};

include « /etc/named.rfc1912.zones »;

include « /etc/named.iscdlv.key »;

 

Voilà mon fichier de configuration personnalisé. Décryptons !

 

  1. Ligne 11 : listen-on port 53 { 127.0.0.1; 192.168.0.241; 82.226.54.213;} : Là il faut mettre les IP qui vont écouter le port 53 (port par défaut de DNS). L’ip de loopback (127.0.01), l’ip locale de mon réseau (192.168.0.241) et l’ip publique (82.226.54.213)
  2. Ligne 17 : allow-query : On spécifie les hôtes autorisées à interroger DNS. Par défaut any
  3. Ligne 20 : allow-recursion : Ici on spécifie les hôtes autorisées à interroger DNS et recevoir les requêtes.
  4. Ligne 24 : forwarders : Là on spécifie le DNS primaire de son FAI, au cas où le notre, notre secondaire ne répondent pas, Bind interrogera le DNS primaire de votre FAI.
  5. Ligne 40 : Zone Hint, on ne change rien, mais c’était pour vous montrer la zone raçine, vous savez les 13 DNS root dispersés à travers le monde
  6. Ligne 44 : zone « samn0.fr » : Là mettez votre domaine tel que vous l’avez enregistré
  7. Ligne 45 : type master : Et oui on veut gérer notre zone et par définition une seule zone est primaire !
  8. Ligne 46 : file « /var/named/samn0.fr.zone » : C’est le fichier de votre zone, celle qu’on va créer juste après ça ! Rappelez-vous comment vous l’avez intitulé ici, pour créer exactement le même fichier avec le même nom tout à l’heure.
  9. Ligne 48 : allow-transfer : on autorise les transferts sur notre IP publique.
  10. Ligne 51 : allow-query : On spécifie les hôtes autorisées à interroger notre zone. Par défaut any
  11. Ligne 54 : allow-notify : Ici mettez l’adresse IP de votre DNS secondaire. On autorise la notification de notre zone, afin qu’elle soit dupliquée correctement.

 

10 choses à modifier, ce n’est pas sorcier, non ?

 

Faites un CTRL+O pour enregistrer les modifications.

 

A présent, nous allons créer notre zone dans /Var/named/samn0.fr.zone. Pour info vous devez remplacer « samn0.fr » par votre nom de domaine à vous !

 

# nano /var/named/samn0.fr.zone

 

Comme le fichier n’existe pas, NANO vous ouvre un fichier vide.

 

A vos claviers, nous allons le remplir et sans erreur de syntaxe s’il vous plait ^^

 

$ttl 86400
samn0.fr. IN SOA ns.samn0.fr. postmaster.samn0.fr. (
2010100723
10800
3600
604800
38400 )

samn0.fr. IN NS ns.samn0.fr.
samn0.fr. IN NS hestia.zyxel.fr.
samn0.fr. IN MX 1 pop.samn0.fr.
pop.samn0.fr. IN A 82.226.54.213
ns.samn0.fr. IN A 82.226.54.213
samn0.fr. IN A 82.226.54.213
www.samn0.fr. IN A 82.226.54.213

 

 

  • Ligne 1 : Le TTL c’est le Time to live, le temps à vivre dans la boucle internet, avant que le paquet meurt ! Et oui si le paquet ne mourrait pas, le réseau mondial serait vite surchargé. Cela permet aux serveurs intermédiaires de connaître la date de péremption des informations et ainsi savoir s’il est nécessaire ou non de la revérifier.Je vous conseille de laisser par défaut 86 400 secondes, soit 1 journée.
  • Ligne 2 : samn0.fr. IN SOA ns.samn0.fr. postmaster.samn0.fr. : Non vous ne rêvez pas, les . à la fin sont primordiaux ! La syntaxe veut que on commence par le nom de domaine, suivi de la classe, du SOA et enfin du NS et du mail de l’administrateur.
  • Ligne 2 : IN c’est la classe, IN est l’abrévation de INternet, protocole qui régit la syntaxe
  • Ligne 2 : SOA Start Of Authority : Permet de décrire le serveur de nom ayant autorité  sur la zone
  • Ligne 2 : NS : Serveur de nom ayant autorité sur le domaine
  • Ligne 2 : postmaster : adresse de l’administrateur de la zone. Il n’y a pas de @, c’est remplacé par des ., c’est la syntaxe qui veut.
  • Ligne 3 : 2010100723 : C’est le numéro de série de l’enregistrement. Quand vous modifierez votre configuration, n’oubliez pas d’incrémenter ce numéro, cela permettra aux serveurs esclaves de mettre à jour leurs données quand cela est nécessaire. Utilisez un numéro de série de la forme AAAAMMJJXX où AAAA et l’année, MM le mois sur deux chiffres, JJ le jour sur deux chiffres et XX un numéro à deux chiffres (vous pouvez commencez à 00 et augmenter de 1 à chaque changement dans la même journée). Bon on se moque pas, c’est une 23 ème modif’ de ce fichier en ce qui me concerne ^^
  • Ligne 4 : 10800 : Le rafraichissement correspond à l’intervalle entre deux vérifications des serveurs esclaves. Valeur par défaut.
  • Ligne 5 : 3600 : Réessai est l’intervalle de nouvelle tentative de vérification en cas de non réponse de votre serveur. Valeur par défaut.
  • Ligne 6 : 604800 : L’obsolescence correspond à la durée maximale pendant laquelle les esclaves répondront aux requêtes sans avoir pu contacter le serveur maitre. Valeur par défaut.
  • Ligne 7 : 38400 : Durée de vie est la durée de validité des données communiquée par votre serveur pour toute requête. Valeur par défaut.
  • Ligne 9 : samn0.fr. IN NS ns.samn0.fr. : Mettez ici votre NS de votre serveur primaire !
  • Ligne 10 : samn0.fr. IN NS hestia.zyxel.fr. : Mettez ici votre NS de votre serveur secondaire !
  • Ligne 11 : samn0.fr. IN MX 1 pop.samn0.fr. : Mettez ici votre MX de votre futur serveur de mail.
  • Ligne 11 : MX : correspond au serveur de gestion du courrier. Lorsqu’un utilisateur envoie un courrier électronique à une adresse (utilisateur@domaine), le serveur de courrier sortant interroge le serveur de nom ayant autorité sur le domaine afin d’obtenir l’enregistrement MX.
  • Ligne 13 : ns.samn0.fr. IN A 82.226.54.213 C’est ici que l’on défini la correspond entre le nom et son adresse IP. Très important.
  • Ligne 13 : A : il s’agit du type de base établissant la correspondance entre un nom canonique et une adresse IP.

 

Vous pouvez rajouter autant de A correspondant à tous les services que vous voulez déclarer dans DNS.

 

Pour exemple, moi j’ai déclaré mon POP & SMTP (important pour Postfix), mon WWW (important pour mon site, vous savez celui qui vous permet de lire ça ^^) et FTP.

 

Faites CTRL+O pour sauvegarder votre zone !

 

Reste plus qu’à lancer le service NAMED.

 

# systemctl start named

 

Il ne reste plus que 2 choses à faire.

 

  1. Modifier le fichier de configuration de DHCP pour modifier le serveur DNS en mettant l’IP locale de votre serveur Fedora
  2. Et d’attendre la propagation DNS, entre 24 et 48h afin de rallier les 13 serveurs root de la planète…

 

Pour tester que notre DNS est fonctionnel, voici 2 tests rapides :

 

  • Sous Fedora dans un terminal SSH tapez

 

# dig samn0.fr

 

Naturellement il convient de remplacer « samn0.fr » par votre nom de domaine ^^

; <<>> DiG 9.6.2-P2-RedHat-9.6.2-5.P2.fc12 <<>> samn0.fr

;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28398
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;samn0.fr.                      IN      A
;; ANSWER SECTION:
samn0.fr.               86400   IN      A       82.226.54.213
;; AUTHORITY SECTION:
samn0.fr.               86400   IN      NS      hestia.zyxel.fr.
samn0.fr.               86400   IN      NS      ns.samn0.fr.
;; ADDITIONAL SECTION:
ns.samn0.fr.            86400   IN      A       82.226.54.213
hestia.zyxel.fr.        150793  IN      A       82.241.216.23
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jan 18 23:30:08 2011
;; MSG SIZE  rcvd: 118
  • Faites un tour sur ZoneCheck pour tester votre domaine.

 

Et voilà nous avons réussi à créer notre propre serveur DNS 🙂

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.