Autres logiciels serveurs

Ici vous trouverez plusieurs façons de partager votre machine avec le reste du monde ou avec votre réseau local. Avant d'installer tout package dans ce chapitre, vous aurez besoin de vous assurer de bien comprendre ce que fait le package et comment le configurer correctement. Il pourrait aussi être utile pour apprendre les conséquences d'une configuration incorrecte de façon à analyser les risques.

BIND-9.2.3

Introduction à BIND

Le package BIND fournit un serveur et un client DNS. Si vous n'êtes intéressé que par les outils, référez-vous à BIND Utilities-9.2.3.

Informations sur le package

Dépendances de BIND

Installation de BIND

Installez BIND en lançant les commandes suivantes:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install

Configurer BIND

Fichiers de configuration

named.conf, root.hints, 127.0.0, rndc.conf

Informations de configuration

Nous configurons BIND pour qu'il soit lancé dans une prison chroot en tant qu'utilisateur non privilégié (named). Cette configuration est plus sécurisée car une compromission DNS peut seulement affecter quelques fichiers dans le répertoire HOME de l'utilisateur named.

Tout d'abord, nous créons l'utilisateur et le groupe non privilégiés named:

groupadd named &&
useradd -m -g named -s /bin/false named

Ensuite nous configurons quelques fichiers, répertoires et périphériques nécessaires à BIND:

cd /home/named &&
mkdir -p dev etc/namedb/slave var/run &&
mknod /home/named/dev/null c 1 3 &&
mknod /home/named/dev/random c 1 8 &&
chmod 666 /home/named/dev/{null,random} &&
mkdir /home/named/etc/namedb/pz &&
cp /etc/localtime /home/named/etc

Créez le fichier named.conf à partir duquel named lira l'emplacement des fichiers de zone, les serveurs de nom racines et les clés DNS sécurisés:

cat > /home/named/etc/named.conf << "EOF"
 options {
     directory "/etc/namedb";
    pid-file "/var/run/named.pid";
    statistics-file "/var/run/named.stats";
       
 };
 controls {
     inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
 };
 key "rndc_key" {
     algorithm hmac-md5;
     secret "[c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K]";
 };
 zone "." {
     type hint;
     file "root.hints";
 };
 zone "0.0.127.in-addr.arpa" {
     type master;
     file "pz/127.0.0";
 };
EOF

Créez un fichier zone avec le contenu suivant:

cat > /home/named/etc/namedb/pz/127.0.0 << "EOF"
$TTL 3D
@      IN      SOA     ns.local.domain. hostmaster.local.domain. (
                        1       ; Serial
                        8H      ; Refresh
                        2H      ; Retry
                        4W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.local.domain.
1               PTR     localhost.
EOF

Créez le fichier root.hints avec les commandes suivantes:

[Note]

Note

Faites attention et assurez-vous qu'il n'existe aucun espace final dans ce fichier.

cat > /home/named/etc/namedb/root.hints << "EOF"
.                       6D  IN      NS      A.ROOT-SERVERS.NET.
.                       6D  IN      NS      B.ROOT-SERVERS.NET.
.                       6D  IN      NS      C.ROOT-SERVERS.NET.
.                       6D  IN      NS      D.ROOT-SERVERS.NET.
.                       6D  IN      NS      E.ROOT-SERVERS.NET.
.                       6D  IN      NS      F.ROOT-SERVERS.NET.
.                       6D  IN      NS      G.ROOT-SERVERS.NET.
.                       6D  IN      NS      H.ROOT-SERVERS.NET.
.                       6D  IN      NS      I.ROOT-SERVERS.NET.
.                       6D  IN      NS      J.ROOT-SERVERS.NET.
.                       6D  IN      NS      K.ROOT-SERVERS.NET.
.                       6D  IN      NS      L.ROOT-SERVERS.NET.
.                       6D  IN      NS      M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.     6D  IN      A       198.41.0.4
B.ROOT-SERVERS.NET.     6D  IN      A       128.9.0.107
C.ROOT-SERVERS.NET.     6D  IN      A       192.33.4.12
D.ROOT-SERVERS.NET.     6D  IN      A       128.8.10.90
E.ROOT-SERVERS.NET.     6D  IN      A       192.203.230.10
F.ROOT-SERVERS.NET.     6D  IN      A       192.5.5.241
G.ROOT-SERVERS.NET.     6D  IN      A       192.112.36.4
H.ROOT-SERVERS.NET.     6D  IN      A       128.63.2.53
I.ROOT-SERVERS.NET.     6D  IN      A       192.36.148.17
J.ROOT-SERVERS.NET.     6D  IN      A       192.58.128.30
K.ROOT-SERVERS.NET.     6D  IN      A       193.0.14.129
L.ROOT-SERVERS.NET.     6D  IN      A       198.32.64.12
M.ROOT-SERVERS.NET.     6D  IN      A       202.12.27.33
EOF

Le fichier root.hints est une liste des serveurs de nom racines. Ce fichier doit être mis à jour périodiquement avec l'outil dig. Consultez le manuel de référence de l'administrateur BIND 9 pour plus de détails.

Créez rndc.conf avec les commandes suivantes:

cat > /etc/rndc.conf << "EOF"
key rndc_key {
algorithm "hmac-md5";
    secret
    "[c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K]";
    };
options {
    default-server localhost;
    default-key    rndc_key;
};
EOF

Le fichier rndc.conf contient des informations pour contrôler les opérations de named avec l'outil rndc.

[Note]

Note

Remplacez yourdomain.com avec votre propre nom de domaine valide.

cp /etc/resolv.conf /etc/resolv.conf.bak &&
cat > /etc/resolv.conf << "EOF"
search [yourdomain.com]
nameserver 127.0.0.1
EOF

Indiquez les droits sur la prison chroot avec la commande suivante:

chown -R named.named /home/named

Pour lancer le serveur DNS au démarrage, installez le script d'initialisation /etc/rc.d/init.d/bind inclus dans le paquetage blfs-bootscripts-5.1.

make install-bind

Maintenant, lancez BIND avec le nouveau script de démarrage:

/etc/rc.d/init.d/bind start

Tester BIND

Testez la nouvelle installation de BIND 9. Tout d'abord, recherchez l'adresse locale de l'hôte avec dig:

dig -x 127.0.0.1

Maintenant, essayez la recherche de noms externes, en prenant note de la différence de vitesse dans des recherches répétées grace au cache. Lancez la commande dig deux fois sur la même adresse :

dig beyond.linuxfromscratch.org &&
dig beyond.linuxfromscratch.org

Vous pouvez voir des résultats pratiquement instantanés avec des recherches cachées de named. Consultez bind-9.2.3/doc/arm/Bv9ARM.html, le manuel de référence de l'administrateur de BIND pour plus d'options de configurations.

Contenu

Le package BIND contient dig, host, isc-config.sh, nslookup, rndc, rndc-confgen, named-checkconf, named-checkzone, lwresd, named, dnssec-signzone, dnssec-signkey, dnssec-keygen, dnssec-makekeyset et nsupdate.

Description

dig

dig interroge les serveurs DNS.

host

host est un utilitaire pour des recherches DNS.

nslookup

nslookup est un programme utilisé pour lancer des requêtes vers les serveurs de noms Internet.

rndc

rndc contrôle l'opération de BIND.

rndc-confgen

rndc-confgen génère les fichiers rndc.conf.

named-checkconf

named-checkconf vérifie la syntaxe des fichiers named.conf.

named-checkzone

named-checkzone vérifie la validité du fichier zone.

lwresd

lwresd est un serveur de noms réalisant un cache seul pour être utilisé par des processus locaux.

named

named est le démon du serveur de noms.

dnssec-signzone

dnssec-signzone génère des versions signées des fichiers zone.

dnssec-signkey

dnssec-signkey signe des ensembles de clés des fichiers zone.

dnssec-keygen

dnssec-keygen est un générateur de clés pour le DNS sécurisé.

dnssec-makekeyset

dnssec-makekeyset génère un ensemble de clés de un à plusieurs clés créées par dnssec-keygen.

nsupdate

nsupdate est utilisé pour soumettre des requêtes de mises à jour DNS.