Le service DNS (Domain Name Service) est un système permettant de réaliser une résolution de nom, celui-ci a plusieurs objectifs :
- Résolution des noms de machines en adresses IP (objectif primaire).
- Réaliser une résolution inverse (aussi appelé reverse DNS), résoudre une adresse IP en noms de machines.
- Rechercher l’adresse d’un serveur de messagerie pour l’envoi d’un courrier.
Le service DNS fonctionne sur le principe d’un système distribué. L’ensemble des données n’est pas regroupé sur un serveur, mais réparti sur plusieurs serveurs. Chaque serveur n’est responsable que d’un domaine DNS. Les domaines sont organisés de manière hiérarchique et forme une seule arborescence.
Le service DNS:
La carte d’identité du protocole:
- UDP
- TCP – exceptionnellement si un paquet de 512 octets n’est pas suffisant
- Port 53
- Taille maximale des paquets UDP: 512 octets – d’où la limite de 13 root servers utilisant chacun un nom à une lettre (A à M)
Pour plus de détail sur le fonctionnement théorique du service DNS, je vous invite à vous rendre sur le site frameip.com. Ci-joint l’url directe vers l’article traitant du sujet : http://www.frameip.com/dns/.
Installation du service DNS
Installation via Yum :
- Yum install bind
- Yum install bind-chroot
Installation via Yum :
Quelques modifications des permissions est nécessaire :
chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/var/named/
ln -s ../../ chroot
Activation du service:
chkconfig –levels 235 named on
Démmarage du daemon :
/etc/init.d/named start
Configuration du serveur DNS :
named.conf:
Named.conf est le fichier principal dans lequel seront déclarés tous les fichiers de zone. A l’installation le fichier named.conf n’existe pas sur le disque, il faut procéder à sa création.
/var/named/chroot/etc/named.conf : fichier de configuration du serveur DNS.
Exemple, la création du fichier :
#nano /var/named/chroot/etc/named.conf
Structure du fichier de configuration :
# — Déclaration de la zone directe locale
zone « localhost » IN {
type master;
file « /var/named/data/db.localhost »;
};
# — Déclaration de la zone inverse locale
zone « 0.0.127.in-addr.arpa » IN {
type master;
file « /var/named/data/db.127.0.0.1 »;
};
# — configuration de la zone directe AGHILES
zone « aghiles.fr » IN {
type master;
file « /var/named/data/db.aghiles.fr »;
};
# — configuration de la zone inverse AGHILES
zone « 50.50.10.in-addr.arpa » IN {
type master;
file « /var/named/data/db.192.168.2.0 »;
};
zone « 60.60.10.in-addr.arpa » IN {
type master;
file « /var/named/data/db.192.168.1.0 »;
};
# Cette option est utilisée pour permettre la résolution de nom en dehors du périmètre de la zone
# aghiles.fr, notamment lorsqu’un poste doit résoudre un nom Internet.
options {
forwarders { 212.27.40.240; 212.27.40.241; };
};
Les fichiers de zone
Les différents fichiers de zone se situent dans le répertoire suivant :
/var/named/chroot/var/named/data/
db.localhost (fichier de zone local directe)
$TTL 3d
@ IN SOA localhost. root.localhost. (
1 ; serial
3h ; refresh
1h ; retry
1w ; expire
1h ) ; negative caching-ttl
IN NS localhost.
IN A 127.0.0.1
db.127.0.0.1 (fichier de zone local inverse)
$TTL 86400
@ IN SOA localhost. root.localhost (
43 ; serial
2D ; refresh after 6 hours
4H ; retry after 1 hour
6W ; expires after 1 week
1W ) ; minimum TTL of 1 day
IN NS localhost.
1 IN PTR localhost.
db.aghiles.fr (fichier de zone aghiles.fr directe)
$TTL 86400
@ IN SOA dns2.aghiles.fr. dns2.aghiles.fr. (
43 ; serial
3H ; refresh after 6 hours
15M ; retry after 1 hour
1W ; expires after 1 week
1D ) ; minimum TTL of 1 day
IN NS dns2.aghiles.fr.
IN A 192.168.1.52
localhost IN A 127.0.0.1
swaghiles-srv1 IN A 192.168.2.1
swaghiles-srv2 IN A 192.168.1.1
jboss1 IN A 192.168.2.11
jboss2 IN A 192.168.2.12
jboss3 IN A 192.168.1.13
jboss4 IN A 192.168.1.14
collecteur1 IN A 192.168.2.22
collecteur2 IN A 192.168.1.24
viewer1 IN A 192.168.2.21
viewer2 IN A 192.168.1.23
bdd1 IN A 192.168.2.31
bdd2 IN A 192.168.1.32
radius1 IN A 192.168.2.41
radius2 IN A 192.168.1.42
bind1 IN A 192.168.2.51
bind2 IN A 192.168.1.52
dns1 IN A 192.168.2.51
dns2 IN A 192.168.1.52
ftp1 IN A 192.168.2.61
ftp2 IN A 192.168.1.62
supervision1 IN A 192.168.2.101
supervision2 IN A 192.168.1.102
db.192.168.2.0 (fichier de zone inverse pour ce qui concerne le subnet 192.168.2.0)
$TTL 604800
@ IN SOA bind1.aghiles.fr. bind1.aghiles.fr.(
2 ; serial
2D ; refresh after 6 hours
4H ; retry after 1 hour
6W ; expires after 1 week
1W ) ; minimum TTL of 1 day
IN NS bind1.aghiles.fr.
1 IN PTR swaghiles-srv1.aghiles.fr.
11 IN PTR jboss1.aghiles.fr.
12 IN PTR jboss2.aghiles.fr.
22 IN PTR collecteur1.aghiles.fr.
21 IN PTR viewer1.aghiles.fr.
31 IN PTR bdd1.aghiles.fr.
41 IN PTR radius1.aghiles.fr.
51 IN PTR bind1.aghiles.fr.
51 IN PTR dns1.aghiles.fr.
61 IN PTR ftp1.aghiles.fr.
101 IN PTR supervision1.aghiles.fr.
db.192.168.1.0 (fichier de zone inverse pour ce qui concerne le subnet 192.168.1.0)
$TTL 604800
@ IN SOA bind2.aghiles.fr. bind2.aghiles.fr. (
2 ; serial
2D ; refresh after 6 hours
4H ; retry after 1 hour
6W ; expires after 1 week
1W ) ; minimum TTL of 1 day
IN NS bind2.aghiles.fr.
1 IN PTR swaghiles-srv2.aghiles.fr.
13 IN PTR jboss3.aghiles.fr.
14 IN PTR jboss4.aghiles.fr.
24 IN PTR collecteur2.aghiles.fr.
23 IN PTR viewer2.aghiles.fr.
32 IN PTR bdd2.aghiles.fr.
42 IN PTR radius2.aghiles.fr.
52 IN PTR bind2.aghiles.fr.
52 IN PTR dns2.aghiles.fr.
62 IN PTR ftp2.aghiles.fr.
102 IN PTR Supervision2.aghiles.fr.
Où trouver les fichier de configuration ?
1) Service DNS
/etc/init.d/named à Service correspondant au service DNS sur le serveur de nom.
2) Fichier principal de configuration DNS
/etc/bind/named.conf: Contiendra la description de la correspondance nom à adresse de toutes les machines du réseau.
3) Les fichiers de zone
/etc/bind/db.«nom_de_domaine»: Contiendra la description de la correspondance nom à adresse de toutes les machines du réseau.
/etc/bind/db.«résolv_inverse_nom_de_domaine»: Contiendra la correspondance inverse adresse à nom (pour la résolution inverse de nom in-addr.arpa).
Comment filtrer l’origine des requêtes ?
Afin de sécuriser le service, BIND offre la possibilité de filtrer l’origine des requêtes émises par les clients. Exemple d’implémentation du service . Cette option doit être ajouté dans le fichier named.conf.
# Création d’une access-list identifiant les différents sous réseaux :
acl « lan_permit » {
192.168.1/24;
192.168.2/24;
};
# Application de l’access-list via la fonction allow-query access-list identifiant les différents sous réseaux :
options {
allow-query { lan_permit; };
};
Comment rediriger les requêtes vers l’extérieur ?
Le format de l’option:
forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; … ] };
Dans notre exemple nous utilisons la fonction forwarders à destination des serveurs DNS de free. Cette option permet de réaliser les requêtes vers l’extérieur au cas ou le serveur ne serait pas en mesure de répondre à la demande de lui même (par défaut BIND fonctionne en mode récursif).
Exemple
options {
forwarders { 212.27.40.240; 212.27.40.241; };
};
Mettre en œuvre le service DNS sur les commutateurs 3750
Ci-dessous sont présentées les commandes permettant la mise œuvre du service DNS sur commutateurs cisco 3750. L’application de ces commandes doit être effectuée en mode de configuration globale switch(config)#
SRV1
Ip domain lookup
ip domain-name aghiles.fr
ip name-server 192.168.2.51
ip name-server 192.168.1.52
SRV2
Ip domain lookup
ip domain-name aghiles.fr
ip name-server 192.168.1.52
ip name-server 192.168.2.51
Mise en œuvre du service DNS sur les pare-feu ASA
Ci-dessous sont présentées les commandes permettant la mise œuvre du service DNS sur les pare-feu ASA :
dns domain-lookup inside
dns server-group DefaultDNS
name-server 192.168.2.51
name-server 192.168.1.52
domain-name aghiles.fr
Resolv.conf (client DNS):
Resolv.conf est le fichier permettant de configurer les paramètres client DNS pour un serveur basé sur le système d’exploitation linux.
/etc/resolv.conf : Permet de configurer les paramètres DNS client de la machine.
Ci-dessous la structure du fichier de paramétrage DNS :
nameserver 192.168.1.52 ## DNS MASTER
nameserver 192.168.2.51 ## DNS SLAVE
search aghiles.fr # nom du domaine
Dépannage du service DNS :
nslookup :
Cette commande permet de tester la validité des différents enregistrements mis en œuvre sur le serveur :
set type=mx permet de recueillir les informations concernant le ou les serveurs de messagerie d’un domaine.
set type=ns permet de recueillir les informations concernant le serveur de noms associé au domaine.
set type=a permet de recueillir les informations concernant un hôte du réseau. Il s’agit du mode d’interrogation par défaut.
set type=soa permet d’afficher les informations du champ SOA (Start Of Authority).
set type=cname permet d’afficher les informations concernant les alias.
set type=hinfo permet, lorsque ces données sont renseignées, d’afficher les informations concernant le matériel et le système d’exploitation de l’hôte.
[root@dns1 ~]# nslookup aghiles.fr
Server: 192.168.2.51
Address: 192.168.2.51#53
Name: aghiles.fr
Address: 192.168.2.51
La commande PING:
Cette commande permet de vérifier qu’une résolution est bien effective lors de la requête :
[root@dns1 ~]# ping aghiles.fr
PING aghiles.fr (192.168.2.51) 56(84) bytes of data.
64 bytes from dns1 (192.168.2.51): icmp_seq=1 ttl=64 time=0.019 ms
64 bytes from dns1 (192.168.2.51): icmp_seq=2 ttl=64 time=0.007 ms
— aghiles.fr ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.007/0.013/0.019/0.006 ms
DIG
Cette commande permet de vérifier la configuration DNS du serveur, son rôle est similaire à la commande NSLOOKUP :
[root@radius1 raddb]# dig aghiles.fr
; <<>> DiG 9.3.4-P1 <<>> aghiles.fr
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61993
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;aghiles.fr. IN A
;; ANSWER SECTION:
aghiles.fr. 86400 IN A 192.168.2.51
;; AUTHORITY SECTION:
aghiles.fr. 86400 IN NS dns1.aghiles.fr.
;; ADDITIONAL SECTION:
dns1.aghiles.fr. 86400 IN A 192.168.2.51
;; Query time: 0 msec
;; SERVER: 192.168.2.51#53(192.168.2.51)
;; WHEN: Tue Dec 30 16:17:50 2008
;; MSG SIZE rcvd: 77