Académique Documents
Professionnel Documents
Culture Documents
org/fr/Bind9
Sommaire
1. Présentation
2. Définitions
3. Disposition réseau
4. Gestion du serveur
1. Installation
2. Configuration
1. Signature TSIG
2. Fichier named.conf
3. Fichier named.conf.options
4. Fichier named.conf.local
5. Fichier named.conf.log
1. Les fichiers
2. Quelques explications :
4. Fichier /etc/resolv.conf
5. Chroot de bind
8. Liens et Ressources
Présentation
La mise en place d'un serveur DNS sur un réseau permet de remplacer
les adresses IP des machines par un nom. Ainsi, il est même possible
d'associer plusieurs noms à la même machine pour mettre en évidence
les différents services possibles. Du coup, www.example.com et
pop.example.com, peuvent pointer sur le serveur principal où sont
présents le serveur de mail et l'intranet de l'entreprise dont le domaine
serait example.com. C'est tout de même plus facile que de se rappeler
que ces deux services tournent sur la machine dont l'adresse IP est
192.168.0.1.
d'aller modifier le fichier hosts de tous les utilisateurs, mais cela risque
de prendre du temps et d'embêter certaines personnes.
Définitions
DNS : signifie soit Domain Name System ou Domain Name Server
Serveur primaire :
Serveur secondaire :
Serveur cache :
Disposition réseau
Nous disposons d'un accès Internet via une xxxbox (192.168.1.1), de
deux serveurs DNS fournis par notre FAI (80.10.249.2, 80.10.246.129).
En fait, ces deux derniers ne seront jamais mentionnés dans la
configuration car la xxxbox va se charger de faire la résolution de noms
si elle ne connaît pas l'adresse de destination des paquets. Par
conséquent, je considère la xxxbox comme le serveur primaire hors de
notre domaine. Le serveur "sid" (192.168.1.10) est connecté à la xxxbox
via sa première carte réseau. Il est aussi connecté au lan
(192.168.0.0/24) via sa seconde interface réseau (192.168.0.1). C'est sur
celui-ci que nous allons installer le serveur DNS primaire pour notre
domaine example.com ( RFC 2606) Tous les ordinateurs du LAN se
voient attribuer une adresse IP automatiquement via le service DHCP. Ce
dernier fournira aussi l'adresse du serveur DNS primaire situé sur notre
domaine, et mettra à jour les noms d'hôtes pour la zone example.com
auxquels il aura attribué une adresse IP.
Gestion du serveur
Installation
On va utiliser le paquet bind9 pour faire tout ça.
Configuration
Après l'installation, on va voir un peu du coté des fichiers de
configuration. Ils sont placés dans le répertoire /etc/bind/
Signature TSIG
# cd /etc/bind/
# cat rndc.key
key "rndc-key" {
algorithm hmac-md5;
secret "QJc08cnP1xkoF4a/eSZZbw==";
};
# cp rndc.key ns-example-com_rndc-key
Kns-example-com_rndc-key.+157+53334
# cat Kns-example-com_rndc-key.+157+53334.private
Private-key-format: v1.2
Key: LZ5m+L/HAmtc9rs9OU2RGstsg+Ud0TMXOT+C4rK7+YNUo3vNxKx/197o2Z80t6gA34AEaAf
Bits: AAA=
# cat ns-example-com_rndc-key
key "ns-example-com_rndc-key" {
algorithm hmac-md5;
secret "LZ5m+L/HAmtc9rs9OU2RGstsg+Ud0TMXOT+C4rK7+YNUo3vNxKx/197o2Z80
};
Fichier named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/ns-example-com_rndc-key";
// Par défaut, la clef est située dans le fichier rndc.key et utilisée par
};
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
include "/etc/bind/named.conf.local";
Fichier named.conf.options
options {
directory "/var/cache/bind";
forward only;
forwarders { 192.168.1.1; };
listen-on-v6 { none; };
allow-transfer { none; };
allow-query { internals; };
allow-recursion { internals; };
version none;
};
net.netfilter.nf_conntrack_udp_timeout
# sysctl -w net.netfilter.nf_conntrack_udp_timeout=10
Fichier named.conf.local
include "/etc/bind/named.conf.log";
// ------------------------------
zone "example.com" {
type master;
file "/var/cache/bind/db.example.com";
forwarders {};
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/db.example.com.inv";
forwarders {};
};
// Consider adding the 1918 zones here, if they are not used in your
// organization
include "/etc/bind/zones.rfc1918";
Fichier named.conf.log
logging {
channel update_debug {
severity debug;
print-severity yes;
print-time yes;
};
channel security_info {
severity info;
print-severity yes;
print-time yes;
};
channel bind_log {
print-category yes;
print-severity yes;
print-time yes;
};
};
Les fichiers
$TTL 3600
2007010401 ; Serial
3600 ; Refresh [1h]
@ IN NS sid.example.com.
@ IN MX 10 sid.example.com.
sid IN A 192.168.0.1
etch IN A 192.168.0.2
2007010401 ; Serial
3600 ; Refresh [1h]
;
@ IN NS sid.example.com.
1 IN PTR sid.example.com.
2 IN PTR etch.example.com.
Quelques explications :
CNAME : identifie le nom canonique d'un alias (un nom pointant sur
un autre nom)
PTR : c'est simplement la résolution inverse (le contraire du type A).
Fichier /etc/resolv.conf
search example.com
Chroot de bind
Par défaut, la configuration de bind emploie l'utilisateur bind pour
exécuter le démon named. Ainsi, on retrouve cette option dans
/etc/default/bind9:
OPTIONS="-u bind"
...
if start-stop-daemon --start --quiet --exec /usr/sbin/named \
C'est déjà une bonne chose. Mais à cela, il faut ajouter l'utilisation d'une
racine autre que / pour emprisonner le démon named dans sa prison. Il
s'agit tout simplement d'employer l'option-ten précisant le répertoire de
chroot. La variable OPTIONS dans le fichier /etc/default/bind9 devient :
/var/lib/named/
|__ /etc
|__ /dev
|__ /var
|__ /cache
| |__ /bind
|__ /log
# mkdir -p /var/lib/named/etc
# mkdir /var/lib/named/dev
# mkdir -p /var/lib/named/var/cache/bind
# mkdir /var/lib/named/var/log
# mv /etc/bind /var/lib/named/etc
# ln -s /var/lib/named/etc/bind /etc/bind
# mknod /var/lib/named/dev/null c 1 3
# mknod /var/lib/named/dev/random c 1 8
SYSLOGD="-a /var/lib/named/dev/log"
# mv /var/cache/bind/* /var/lib/named/var/cache/bind/
L'arborescence est complète et tous les fichiers sont présents, mais les
droits ne sont pas encore aux points, donc :
sid.example.com
$ dig nomade-frjo.stones.lan
; <<>> DiG 9.4.2 <<>> nomade-frjo.stones.lan
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15760
;; QUESTION SECTION:
;nomade-frjo.stones.lan. IN A
;; ANSWER SECTION:
;; AUTHORITY SECTION:
;; ADDITIONAL SECTION:
$ dig -x 192.168.0.242
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37702
;; QUESTION SECTION:
;242.0.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
;; AUTHORITY SECTION:
;; ADDITIONAL SECTION:
$ nslookup etch
Server: 192.168.0.1
Address: 192.168.0.1#53
Name: etch.example.com
Address: 192.168.0.2
$ nslookup 192.168.0.2
Server: 192.168.0.1
Address: 192.168.0.1#53
# named-checkconf -z
OK
OK
Liens et Ressources
RFC: rfc1035 - Implementation ans specifications
RFC: rfc1591 - Domain Name System Structure and Delegation
RFC: rfc2606 - Reserved Top Level DNS Names
http://www.bind9.net/manual/bind/9.3.2/Bv9ARM - Bind 9
Administrator Manual
Services Whois :
Gandhi
AFNIC
ToDos