BIND/Guide
Ce guide explique l'installation et la configuration de BIND pour un domaine et un réseau local
Introduction
BIND est le serveur DNS le plus utilisé sur Internet. Ce guide expliquera comment configurer BIND pour un domaine à l'aide de différentes configurations, une pour un réseau local et une pour le reste du monde. Deux vues seront utilisées :
- Vue de la zone interne (le réseau local).
- Vue de la zone externe (reste du monde).
Données utilisées dans les exemples
Mot clé | Explication | Exemple |
---|---|---|
VOTRE_DOMAINE | Votre nom de domaine | gentoo.org |
VOTRE_AD_IP_PUBLIQUE | L'adresse IP que vous attribue votre ISP | 204.74.99.100 |
VOTRE_AD_IP_LOCALE | L'adresse IP locale | 192.168.1.5 |
VOTRE_RESEAU_LOCAL | Le réseau local | 192.168.1.0/24 |
SERVEUR_DNS_ESCLAVE | L'adresse IP de votre serveur DNS esclave pour votre domaine | 209.177.148.228 |
ADMIN | Le nom de l'administrateur du serveur DNS. | root |
MODIFICATION | La date de modification du fichier zone, avec un nombre ajouté | 2009062901 |
Configurer BIND
Installation
Tout d'abord, installez net-dns/bind
.
root #
emerge --ask net-dns/bind
Configurer /etc/bind/named.conf
La première chose à configurer est /etc/bind/named.conf . La première partie de cette étape est de spécifier le répertoire racine de bind, le port d'écoute avec les adresses IP, le fichier pid, et une ligne pour le protocole ipv6.
options {
directory "/var/bind";
listen-on-v6 { none; };
listen-on port 53 { 127.0.0.1; YOUR_LOCAL_IP; };
pid-file "/var/run/named/named.pid";
};
La deuxième partie de named.conf est la vue interne utilisée pou notre réseau local.
view "internal" {
match-clients { VOTRE_RESEAU_LOCAL; localhost; };
recursion yes;
zone "VOTRE_DOMAINE" {
type master;
file "pri/VOTRE_DOMAINE.internal";
allow-transfer { any; };
};
};
La troisième partie de named.conf est la vue externe pour résoudre votre nom de domaine pour le reste du monde et pour résoudre tous les autres noms de domaine pour vous (et pour tous ceux qui veulent utiliser votre serveur DNS).
view "external" {
match-clients { any; };
recursion no;
zone "." IN {
type hint;
file "named.ca";
};
zone "127.in-addr.arpa" IN {
type master;
file "pri/127.zone";
allow-update { none; };
notify no;
};
zone "VOTRE_DOMAINE" {
type master;
file "pri/VOTRE_DOMAINE.external";
allow-query { any; };
allow-transfer { SERVEUR_DNS_ESCLAVE; };
};
};
La dernière partie de named.conf est la politique de connexion.
logging {
channel default_syslog {
file "/var/log/named/named.log" versions 3 size 5m;
severity debug;
print-time yes;
print-severity yes;
print-category yes;
};
category default { default_syslog; };
};
Le répertoire /var/log/named/ doit exister et apparteni à named
:
root #
mkdir -p /var/log/named/
root #
chmod 770 /var/log/named/
root #
touch /var/log/named/named.log
root #
chmod 660 /var/log/named/named.log
root #
chown -R named /var/log/named/
root #
chgrp -R named /var/log/named/
Créer le fichier de zone interne
Nous utilisons les noms d'hôtes et les adresses IP de l'image exemple de réseau. Notez que presque tous (pas tous) les noms de domaines se terminent par un "." (point).
$TTL 2d
@ IN SOA ns.VOTRE_DOMAINE. ADMIN.VOTRE_DOMAINE. (
MODIFICATION ; serial
3h ; refresh
1h ; retry
1w ; expiry
1d ) ; minimum
VOTRE_DOMAINE. IN MX 0 mail.VOTRE_DOMAINE.
VOTRE_DOMAINE. IN TXT "v=spf1 ip4:OTRE_AD_IP_PUBLIQUE/32 mx ptr mx:mail.VOTRE_DOMAINE ~all"
VOTRE_DOMAINE. IN NS ns.VOTRE_DOMAINE.
VOTRE_DOMAINE. IN NS SERVEUR_DNS_ESCLAVE
www.VOTRE_DOMAINE. IN A 192.168.1.3
ns.VOTRE_DOMAINE. IN A 192.168.1.5
mail.VOTRE_DOMAINE. IN A 192.168.1.3
router.VOTRE_DOMAINE. IN A 192.168.1.1
hell.VOTRE_DOMAINE. IN A 192.168.1.3
heaven.VOTRE_DOMAINE. IN A 192.168.1.5
desktop.VOTRE_DOMAINE. IN A 192.168.1.4
Créer le fichier de zone externe
Ici nous avons les sous-domaines que nous voulons pour les clients externes (www, mail et ns).
$TTL 2d
@ IN SOA ns.VOTRE_DOMAINE. ADMIN.VOTRE_DOMAINE. (
MODIFICATION ;serial
3h ;refresh
1h ;retry
1w ;expiry
1d ) ;minimum
VOTRE_DOMAINE. IN MX 0 mail.VOTRE_DOMAINE.
VOTRE_DOMAINE. IN TXT "v=spf1 ip4:VOTRE_AD_IP_PUBLIQUE/32 mx ptr mx:mail.VOTRE_DOMAINE ~all"
VOTRE_DOMAINE. IN NS ns.VOTRE_DOMAINE.
VOTRE_DOMAINE. IN NS SERVEUR_DNS_ESCLAVE
www.VOTRE_DOMAINE. IN A VOTRE_AD_IP_PUBLIQUE
ns.VOTRE_DOMAINE. IN A VOTRE_AD_IP_PUBLIQUE
mail.VOTRE_DOMAINE. IN A VOTRE_AD_IP_PUBLIQUE
Terminer la configuration
Vous devez ajouter named
au niveau d'exécution par défaut :
root #
rc-update add named default
Configurer les clients
Maintenant vous pouvez utiliser votre propre serveur DNS dans toutes les machines de votre réseau local pour résoudre les noms de domaine. Modifiez le fichier /etc/resolv.conf de toutes les machines de votre réseau local.
search VOTRE_DOMAINE
nameserver AD_IP_DE_VOTRE_SERVEUR_DNS
Notez que l'AD_IP_DE_VOTRE_SERVEUR_DNS est la même que VOTRE_AD_IP_LOCALE utilisée dans ce document. Dans l'exemple donné c'est 192.168.1.5.
Tester
Vous pouvez tester votre nouveau serveur DNS. Tout d'abord il faut lancer le service.
root #
/etc/init.d/named start
Nous allons maintenant faire quelques commandes host
vers quelques domaines. Nous pouvons utiliser n'importe quel ordinateur de notre réseau local pour effectuer ce test. Si vous n'avez pas net-dns/host
installé, vous pouvez utiliser ping
à la place. Sinon, installez d'abord host en exécutant emerge host
.
user $
host www.gentoo.org
www.gentoo.org has address 209.177.148.228 www.gentoo.org has address 209.177.148.229
user $
host hell
hell.VOTRE_DOMAINE has address 192.168.1.3
user $
host router
router.VOTRE_DOMAINE has address 192.168.1.1
Protéger le serveur avec des iptables
Lors de l'exécution du service DNS, iptables peut être configuré avec ces règles pour plus de sécurité:
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Vicente Olivert Riera, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.