Vous êtes sur la page 1sur 9

Le Coin Des Docs

Blog d'un autodidacte passionné par l'open source

Mon dépot Git


Installation et con guration
d’un serveur DNS (Bind)
To search, type
(CentOS 7.2) 
Posted on 21 juillet 2016 by elie

Un serveur DNS (Domain Name Server) permet en autre de ÉTIQUETTES


faire la relation entre un nom de domaine et son adresse IP.
Il en existe plusieurs sur Linux. amavis apache apticron
bind centos 6
Installation de Bind centos 7 clamav
debian 6 debian 7
Bind (Berkeley Internet Name Daemon, parfois Berkeley debian 8 dovecot epel
Internet Name Domain) étant disponible dans les dépots fail2ban rewalld git
gitHub gogs iptables let's
CentOS, nous allons donc l’installer via la commande
suivante :
encrypt linux logcheck
logrotate logwatch mailx

# yum install bind bind-utils


mariadb mysql
nextcloud nginx openssh
openssl owncloud
packagekit-cron php php-
Con guration de Bind fpm phpmyadmin
Avant de modi er le chier de con guration de Bind nous
post x rkhunter
roundcube selinux
allons le sauvegarder via la commande suivante :
serveur sieve
spamassassin vmware-tools
# cp /etc/named.conf{,.ori}
vsftpd waf

On édite le chier via la commande suivante :

# vi /etc/named.conf

On modi e le chier comme ci-dessous :

//
// named.conf
//
// Provided by Red Hat bind package to configure th
// server as a caching only nameserver (as a localh
//
// See /usr/share/doc/bind*/sample/ for example nam
//

options {
// On indique à bind d’écouter sur l’adress
// de loopbak
listen-on port 53 { 127.0.0.1; 192.168.0.1
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump
statistics-file "/var/named/data/named_stat
memstatistics-file "/var/named/data/named_m
// On indique à Bind de répondre aux requêt
// du réseau local
allow-query { localhost; 192.168.0.0/24
// On indique à Bind d’envoyer la demande a
// pas l’information demandée
forwarders { 8.8.8.8; 8.8.4.4; };

/*
- If you are building an AUTHORITATIVE DNS
- If you are building a RECURSIVE (caching
- If your recursive DNS server has a public
control to limit queries to your legitima
cause your server to become part of large
attacks. Implementing BCP38 within your n
reduce such attack surface
*/
recursion yes;

dnssec-enable yes;
dnssec-validation yes;

/* Path to ISC DLV key */


bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic

pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
// On indique que le version de Bind ne soi
// risques d’attaques
version none;
;

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

zone "mon-domaine.fr" IN {
type master;
file "/var/named/mon-domaine.fr.zone";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "/var/named/mon-domaine.fr.reverse";
allow-update { none; };
;

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

Création du chier de zone pour le


domaine « mon-domaine.fr »
Un chier de zone contient l’ensemble des services lié au
domaine « mon-domaine.fr ». Nous allons créer un chier «
mon-domaine.fr.zone » via la commande suivante :

# vi /var/named/mon-domaine.fr.zone

On y inscrit les lignes suivantes (les points après le domaine


sont obligatoires) :

$TTL 3600
@ IN SOA srv1.mon-domaine.fr. root.m
2016071901 ; Serial
3600 ; Refresh
600 ; Retry
86400 ; Expire
600 ) ; Negative
;
@ IN NS srv1.mon-domaine.fr.
@ IN MX 10 srv1.mon-domaine.fr.

srv1 IN A 192.168.0.1
srv2 IN A 192.168.0.2

mail IN CNAME srv1


pop IN CNAME srv1
www IN CNAME srv2
A n de trouver le nom de domaine correspondant à une
adresse IP, nous devons créer un chier de zone inverse via
la commande suivante :

# vi /var/named/mon-domaine.fr.reverse

On y inscrit les lignes suivantes (les points après le domaine


sont obligatoires) :

$TTL 3600
@ IN SOA srv1.mon-domaine.fr. root.m
2016071901 ; Seri
3600 ; Ref
600 ; Ret
86400 ; Expi
600 ) ; Nega
;
@ IN NS srv1.mon-domaine.f
@ IN PTR mon-domaine.fr.

centos IN A 192.168.0.1
1 IN PTR srv1.mon-domaine.f
2 IN PTR srv2.mon-domaine.f

Maintenant que nous avons créer nos chiers de zone et de


zone inverse, je vais vous expliquer à quoi correspondent les
di érents champs :

$TTL : (Time To Live) exprime la durée (en secondes) de


validité, pendant laquelle sont conservées en cache les
réponses. Une fois ce délai expiré, il est nécessaire de véri er
à nouveau les données. Les di érents types :

SOA : permet de dé nir les informations relatives à la zone.


En l’occurrence le nom du serveur DNS primaire « srv1.mon-
domaine.fr. » et l’adresse mail du contact technique
(root.mon-domaine.fr. ; le @ est remplace par un point). Il est
compose de plusieurs champs :

1. Serial : est un entier non signé 32 bits. C’est le numéro de


série à incrémenter à chaque modi cation du chier. Il
permet au serveur secondaire de recharger les informations
qu’ils ont. L’usage général vient à le formater de cette
manière YYYYMMDDXX, soit pour la première modi cation
du 01/04/2007 -> 2016071901, pour la seconde
2016071902.
2. Refresh : dé nit la période de rafraîchissement des
données (s’exprime en secondes)

3. Retry : dé ni le délai que doivent attendre les ou les


serveurs secondaires pour réessayer si une erreur survient au
cours du dernier rafraîchissement (s’exprime en secondes)

4. Expire : dé ni le délai au bout duquel la zone sera


considéré comme non disponible si le ou les serveurs
secondaires ne peuvent pas joindre le serveur primaire
(s’exprime en secondes)

5. Negative cache TTL : dé nit la durée de conservation des


réponses pour des enregistrements inexistants (s’exprime en
secondes)

NS (Name Server) : renseigne le nom des serveurs de noms


pour le domaine

MX (Mail eXchanger): renseigne sur le serveur de


messagerie. Plusieurs peuvent être dé nis. Ainsi, il est
possible de leur donner une priorité en leur a ectant un
numéro. Plus bas est le numéro, plus haute est la priorité

A (Address) : associe une nom d’hôte à une adresse ipv4 (32


bits)

AAAA (Address IPv6): associe une nom d’hôte à une adresse


ipv6 (128 bits)

CNAME (Canonical NAME) : identi e le nom canonique


d’un alias (un nom pointant sur un autre nom)

PTR (Pointer Record) : c’est simplement la résolution inverse


(le contraire du type A)
Maintenant que nous avons con guré et créé les di érents
chiers de zone, nous allons véri er que nous n’avons pas
oublié un caractère ou fait d’erreur de frappe a n de pouvoir
démarrer Bind.

Pour véri er la con guration de Bind proprement dite, nous


allons taper la commande suivante :

# named-checkconf -z

Voici ce que devrait retourner la commande si tout est bon :


zone mon-domaine.fr/IN: loaded serial 2016071901
zone 0.168.192.in-addr.arpa/IN: loaded serial 20160
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0

Pour véri er les chiers de zone, nous allons taper les


commandes suivantes :

# named-checkzone mon-domaine.fr /var/named/mon-d


# named-checkzone 0.168.192.in-addr.arpa /var/named

Voici ce que devrait respectivement retourner les


commandes si tout est bon :

zone mon-domaine.fr/IN: loaded serial 2016071901


OK

et

zone 0.168.192.in-addr.arpa/IN: loaded serial 201


OK

Si tout est bon, nous pouvons lancer le service Bind via les
commandes suivantes :

# systemctl enable named.service


# systemctl start named.service

Nous devons con gurer notre nouveau serveur DNS sur


notre machine. Pour cela, nous tapons la commande suivante
:

# vi /etc/sysconfig/network-scripts/ifcfg-XXXX

On modi e le chier comme ci-dessous :

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="d3f499e2-8908-4464-ba1b-4243c8c011c1"
DEVICE="eno16777736"
ONBOOT="yes"
IPADDR="192.168.0.1"
PREFIX="16"
GATEWAY="192.168.0.254"
DNS1="192.168.0.1"
SEARCH="mon-domaine.fr"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"

On doit redémarrer le service réseau pour prendre en


compte les modi cations. Pour cela on tape la commande
suivante :

# systemctl restart network.service

A n d’autoriser les requêtes DNS sur notre serveur, nous


devons ouvrir les ports correspondant sur le rewall. Pour
cela nous tapons les commandes suivantes :

# firewall-cmd --permanent --zone=public --add-se


# firewall-cmd --reload

Nous pouvons maintenant véri er que notre serveur DNS


répond bien aux requêtes.

Véri ons le fonctionnement du MX :

# host -t MX mon-domaine.fr

Résultat :

mon-domaine.fr mail is handled by 10 srv1.mon-dom

Véri ons le fonctionnement des résolutions inverse :

# dig -x 192.168.0.1

Résultat :

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x

;; global options: +cmd


;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id


;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORI

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:
;1.0.168.192.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 600 IN SOA srv1.mon-domaine

;; Query time: 1 msec


;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: mar. juil. 19 18:38:56 CEST 2016
;; MSG SIZE rcvd: 113

Véri ons la résolution de nom via NSLOOKUP :

# nslookup srv1.mon-domaine.fr

Résultat :

Server: 192.168.0.1
address: 192.168.0.1#53

Name: srv1.mon-domaine.fr
Address: 192.168.0.1

 CentOS, CentOS 7.x  bind, centos 7, rewalld, 0


linux, serveur

« Installation et con guration d’ownCloud (CentOS 7.2)


Installation et con guration d’un serveur DNS (Bind) (Debian
8.5) »

AJOUTER UN COMMENTAIRE

Votre adresse de messagerie ne sera pas publiée. Les champs


obligatoires sont indiqués avec *

Commentaire

Nom *
Adresse de messagerie *

Site web

Laisser un commentaire

Propulsé par WordPress et Momentous.

Vous aimerez peut-être aussi