DNS Server Installation in CentOS 6

Post on 23-Oct-2015

86 views 6 download

Transcript of DNS Server Installation in CentOS 6

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

Installation d’un serveur DNSCe tutorial indique les étapes d’installation et configurer des serveurs DNS primaire et secondaire. Les étapes on était testées sur Centos 6.4 32x64x.

Scenarios:

Ci- dessous les scénarios de l’installation :

[A] DNS Primaire(Master) :

Operating System     : CentOS 6.4Hostname             : masterdns.ensak.maIP Address           : 172.16.10.1/24

[B] Serveur Secondaire (Slave):

Operating System     : CentOS 6.4Hostname             : slavedns.ensak.maIP Address           : 172.16.10.13/24  

Setup du DNS primaire (Master).

[root@masterdns ~]# yum install bind* -y

1. Configurer le serveur DNS.

La configuration principal du DNS sera comme suit (Editer et ajouter les champs en gras) :

[root@masterdns ~]# vi /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; 172.16.10.1;}; ## Master DNS IP ##

listen-on-v6 port 53 { ::1; };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     { localhost; 172.16.10.0/24; }; ## IP Range ##

allow-transfer { localhost; 172.16.10.13; }; ## Slave DNS IP ##

recursion yes;dnssec-enable yes;dnssec-validation yes;

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah 

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

dnssec-lookaside auto;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";

};logging {        channel default_debug {                file "data/named.run";                severity dynamic;        };};zone "." IN {

type hint;file "named.ca";

};zone "ensak.ma" IN {

type master;file "fwd.ensak.ma";allow-update { none; };

};zone "1.168.192.in-addr.arpa" IN {

type master;file "rev.ensak.ma";allow-update { none; };

};include "/etc/named.rfc1912.zones";include "/etc/named.root.key";

2. Créer le fichier de Zone

On doit créer le fichier de zones direct et indirect que nous avons mentionné dans le fichier ‘/etc/named.conf’.

[A] Créer la zone direct.

Créer le fichier ‘fwd.ensak.ma’ dans ‘/var/named’ et ajouter les champs suivant :

[root@masterdns ~]# vi /var/named/fwd.ensak.ma $TTL 86400@   IN  SOA     masterdns.ensak.ma. root.ensak.ma. (        2013120401  ;Serial        3600        ;Refresh        1800        ;Retry        604800      ;Expire        86400       ;Minimum TTL)@ IN  NS      masterdns.ensak.ma.@ IN  NS     slavedns.ensak.ma.masterdns     IN  A    172.16.10.1slavedns IN A 172.16.10.13

[B] créer le fichier de zone indirect :

Créer le fichier ‘rev.ensak.ma’ dans ‘/var/named’ et ajouter les champs suivant :

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah 

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

[root@masterdns ~]# vi /var/named/rev.ensak.ma $TTL 86400@   IN  SOA     masterdns.ensak.ma. root.ensak.ma. (        2013120401  ;Serial        3600        ;Refresh        1800        ;Retry        604800      ;Expire        86400       ;Minimum TTL)@ IN  NS      masterdns.ensak.ma.@ IN  NS      slavedns.ensak.ma.masterdns IN  A   172.16.10.1slavedns IN  A   172.16.10.131     IN  PTR     masterdns.ensak.ma.13 IN  PTR    slavedns.ensak.ma.2 IN PTR client-xp.ensak.ma

3. démarrer ‘bind service’

[root@masterdns ~]# service named startGenerating /etc/rndc.key:                                  [  OK  ]Starting named:                                            [  OK  ][root@masterdns ~]# chkconfig named on

4. permet l’accès au DNS Serveur dans iptables

Ajouter les lignes en gras dans le fichier ‘/etc/sysconfig/iptables’. Cela permettra au diffèrent client d’accéder au serveur.[root@masterdns ~]# vi /etc/sysconfig/iptables# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT-A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT

5. Redémarrer iptables

[root@masterdns ~]# service iptables restartiptables: Flushing firewall rules:                         [  OK  ]iptables: Setting chains to policy ACCEPT: filter          [  OK  ]iptables: Unloading modules:                               [  OK  ]iptables: Applying firewall rules:                         [  OK  ]

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah 

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

6. Tester les erreurs de syntaxe dans les fichiers configuration et Zone

[A] Check DNS Config file

[root@masterdns ~]# named-checkconf /etc/named.conf [root@masterdns ~]# named-checkconf /etc/named.rfc1912.zones 

7. Test DNS Server

[root@masterdns ~]# nslookup masterdns.ensak.maServer: 172.16.10.1Address: 172.16.19.1#53Name: masterdns.ensak.maAddress: 172.16.10.1

Et voilà le serveur primaire est prêt.

Setup du Serveur DNS Secondaire (Slave)

[root@slavedns ~]# yum install bind* -y

1. Configurer le serveur DNS secondaire.

Ouvrir le fichier de configuration ‘/etc/named.conf’ et ajouter les champs en gras.[root@slavedns ~]# vi /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; 172.16.10.13; }; ## Slve DNS IP ##

listen-on-v6 port 53 { ::1; };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     { localhost; 172.16.10.0/24; }; ## IP Range ##

recursion yes;dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";

};logging {        channel default_debug {                file "data/named.run";

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah 

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

                severity dynamic;        };};zone "." IN {

type hint;file "named.ca";

};zone "ensak.ma" IN {

type slave;file "slaves/ensak.ma.fwd";masters { 172.16.10.1; };

};zone "10.16.172.in-addr.arpa" IN {

type slave;file "slaves/ensak.ma.rev";masters { 172.16.10.1; };

};include "/etc/named.rfc1912.zones";include "/etc/named.root.key";

2. Start the DNS Service

[root@slavedns ~]# service named startGenerating /etc/rndc.key:                                  [  OK  ]Starting named:                                            [  OK  ][root@slavedns ~]# chkconfig named on

Maintenant les fichiers de zone direct et reverse sont copier directement du serveur Primaire vers le secondaire.Pour verifier, il suffit de verifier dans le dossier (i.e ‘/var/named/chroot/var/named/slaves’) et taper ‘ls’.[root@slavedns ~]# cd /var/named/slaves/[root@slavedns slaves]# lsensak.fwd  ensak.rev

[A] vérifier les zones:

[root@slavedns slaves]# cat ensak.ma $ORIGIN .$TTL 86400 ; 1 dayensak.ma IN SOA masterdns.ensak.ma. root.ensak.ma. (

2013120401 ; serial3600       ; refresh (1 hour)1800       ; retry (30 minutes)604800     ; expire (1 week)86400      ; minimum (1 day))

NS masterdns.ensak.ma.NS slavedns.ensak.ma.

$ORIGIN ensak.ma.masterdns A 172.16.10.1slavedns A 172.16.10.13Client-xp A 172.16.10.2

[B] vérifier la zone reverse :

[root@slavedns slaves]# cat ensak.rev $ORIGIN .$TTL 86400 ; 1 day

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah 

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

10.16.172.in-addr.arpa IN SOA masterdns.ensak.ma. root.ensak.ma. (2013120401 ; serial3600       ; refresh (1 hour)1800       ; retry (30 minutes)604800     ; expire (1 week)86400      ; minimum (1 day))

NS masterdns.ensak.ma.NS slavedns.ensak.ma.

$ORIGIN 10.16.172.in-addr.arpa.1 PTR masterdns.ensak.ma.13 PTR slavedns.ensak.ma.2 PTR client-xp.ensak.ma.

3. ajouter les détails du serveur au diffèrent client.

[root@slavedns ~]# vi /etc/resolv.conf # Generated by NetworkManagersearch ensak.manameserver 172.16.10.1nameserver 172.16.10.13nameserver 8.8.8.8

4. Teste du serveur DNS

[root@slavedns ~]# nslookup masterdns.ensak.ma.Server: 172.16.10.1Address: 172.16.10.13#53Name: slavedns.ensak.maAddress: 172.16.10.13

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah 

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

Comment configurer une zone dnssec sur serveur dédié ?

[A] DéfinitionsZSK : composées d'une clef publique et d'une clef privée, elles sont utilisées pour signer les champs de la zone. Ces clefs sont inconnues du registre.KSK : composées d'une clef publique et d'une clef privée, elles ne sont utilisées que pour signer les clefs ZSK. Ces clefs sont signé par un champ DS dans la zone mère (auprès du registre)DNSKEY : champs contenant une clef publiqueDS : C'est un condensât d'une DNSKEY, elle est transmise à la zone mère

[B] Génerer ses clefs

Nous utilisons l'outil dnssec-keygen. Cet outil utilise l'entropie, qui est générée lors de l'utilisation de la machine. Une machine peu sollicitée peut être longue à générer. Dans ce cas, vous pouvez utiliser l'argument "-r /dev/urandom" pour gagner du temps, mais OVH ne le préconise pas.

1. Générer sa clef KSK

Nous générons la clef avec la commande "dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE mondomaine.ma" :[root@masterdns ~]# dnssec-keygen -f KSK -r /dev/urandom -a RSASHA256 -b 2048 -n ZONE ensak.ma

Nous remarquons que ma clef KSK se nomme Kensak.ma.+008+04789, nous allons la renommer pour qu'elle soit plus intelligible :[root@masterdns ~]# mv Kensak.ma.+008+10954.key KensaK.ma.ksk.key[root@masterdns ~]# mv Kensak.ma.+008+10954.private KensaK.ma.ksk.private

2. Générer sa clef ZSK

Nous générons la clef avec la commande "dnssec-keygen -a RSASHA256 -b 2048 -n ZONE ensak.ma" :[root@masterdns ~]# dnssec-keygen -r /dev/urandom -a RSASHA256 -b 2048 -n ZONE ensak.ma

Nous remarquons que ma clef ZSk se nomme Kensak.ma+008+43119, une fois encore nous la renommons :[root@masterdns ~]# mv Kensak.ma.+008+43119.key KensaK.ma.zsk.key[root@masterdns ~]# mv Kensak.ma.+008+43119.private KensaK.ma.zsk.private

Les fichiers *.Key contiennent maintenant nos clefs publiques, il nous faut les insérer dans notre zone DNS. Vous pouvez soit en ajouter le contenu, soit ajouter des champs d'inclusion dans votre zone. Je choisis d'ajouter des inclusions :

$include /etc/named/Kensak.ma.zsk.key ; ZSK$include /etc/named/Kebsak.ma.ksk.key ; KSK

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah 

UH1 / ENSA Khouribga  TP : services d’accès   Pr. Y.I.Khamlichi

[C] Créer et appliquer sa zone DNSSEC

1. signer la zone.

Nous signons la zone avec la commande "dnssec-signzone -eYYYYMMDDHHMMSS -p -t -g -k Kmondomaine.ma.ksk.key -o mondomaine.ma le-fichier-de-ma-zone-dnsKmondomaine.ma.zsk.key".

La valeur YYYYMMDDHHMMSS représente la date d'expiration. Si je souhaite que ma zone expire le 17 décembre 2014 à 4h20, j'écris : 20141217042000

[root@masterdns ~]# dnssec-signzone -e20141217042000 -p -t -g -k Kensak.ma.ksk.key -o ensak.ma fwd.ensak.ma Kensak.ma.zsk.key

Nous obtenons un fichier nommé : fwd.ensak.ma.signed

2. Configurer named

Nous vérifions que named est configuré pour prendre en charge le DNSSEC. Vous devriez trouver dans le fichier de configuration de named, la variable dnssec-enable égale à yes.[root@masterdns ~]# cat /etc/bind/named.conf|grep dnssec-enable

dnssec-enable yes;

Maintenant nous devons indiquer de ne plus utiliser notre fichier de zone originel, mais son équivalent signé.

Dans mon fichier /etc/bind/named.conf, nous avons remplacé :zone "ensak.ma" IN {

type master;file "fwd.ensak.ma";allow-update { none; };

};

par :zone "ensak.ma" IN {

type master;file "fwd.ensak.ma.signed";allow-update { none; };

};

[root@masterdns ~]# service named restart

Réalisé par : A.Boukhira – L.Ghamrane – A.Hadji – M.Louah