Bien le bonjour jeunes gens ! Dans ce tip, nous allons tous apprendre à installer, configurer, et surtout faire tourner un bind sécurisé et avec le support de l'IPV6 dans le cadre d'un réseau local (tout un programme).

La zone que nous configurerons dans cet example est “diantre.net” (zone sélectionnée tout à fait au hazard parmi une cinquantaine de candidates).

La plage réseau utilisée en IPV4 sera des plus classiques, une 192.168.0.0 en classe C. La /64 utilisée pour l'IPV6 sera 3ffe:8271:8200:23 (c'est la mienne, ba oui, j'aurais jamais pu en inventer une avec ma petite tête :) )

1) Installons bind9 si vous le voulez bien:

debian → # apt-get install bind9 FreeBSD → # cd /usr/ports/net/bind9 && make install clean NetBSD → # cd /usr/pkgsrc/net/bind9 && make install clean

Voila notre bind installé (il est préférable d'avoir updater ses sources de packages au préalable).

2) Mise en place de la structure sécurisée de le ton infrastructure (oui, je suis bilingue, je parle le francais et le E-business):

Nous allons “chrooter” notre bind dans le répertoire “/var/bind”, qui me semble convenable au niveau sécurité:

Création des répertoires afin de simuler un environnement normal:

# mkdir /var/bind # mkdir /var/bind/etc → Là où les fichiers de configuration seront stockés # mkdir /var/bind/var # mkdir /var/bind/var/log → Là où les logs de bind seront stockés # mkdir /var/bind/var/run → Là où le fichier name.pid sera créer # mkdir /var/bind/zone → Là où nos fichiers de zone seront stockés

3) Une fois l'arborescence créée, nous allons commencer l'édition de nos fichiers:

Avant tout, définissons les fichiers qui seront créés.

“/var/bind/etc/named.conf” : c'est lui qui définira quelles zones seront gérées ainsi que quelques options ma fois sympathiques

“/var/bind/zone/127.0.0.rev”: Le fichier contenant les reverses de votre localhost.

“/var/bind/zone/localhost.dns”: Le fichier contenant les informations ainsi que les hosts de la zone localhost (normalement un seul host, si des personnes en vont plusieurs dans cette zone, qu'elle contactent Mulder d'urgence).

“/var/bind/zone/192.168.0.rev”: Ce fichier contiendra les adresses reverses IPV4 de la zone “diantre.net”.

“/var/bind/zone/diantre.net.dns”: Ze fichier de conf contenant les infos sur les hosts de votre petit LAN :)

“/var/bind/zone/3ffe.8271.rev”: Le fichier contenant les reverses IPV6 de notre zone.

Utilisez votre éditeur préféré pour l'édition, dans cet exemple, nous utiliserons vi (un ami pour la vi ;) ) :

# vi /var/bind/etc/named.conf

Voici ce qui devrait s'afficher à la fin de l'édition :


options {

              //Spécifie le repertoire dans lequel les fichiers se trouveront
               directory "/zone";

};

logging Spécifie les options de création des fichiers de log { channel log-file {file “/var/log/named.log”; severity debug; print-time yes; }; category default {log-file;}; category panic {log-file;}; category packet {log-file;}; category eventlib {log-file;}; }; Notre zone localhost zone “localhost” { type master; file “localhost.dns”; };

Son reverse zone “127.in-addr.arpa” { type master; file “127.0.0.rev”; }; Notre zone diantre.net, celle qui nous interesse le plus zone “diantre.net” { type master; file “diantre.net.dns”; };

Son reverse IPV4 zone “0.168.192.in-addr.arpa” { type master; file “192.168.0.rev”; }; Son reverse IPV6 petite explication, il s'agit, pour trouver le nom de cette zone, de noter chaque chiffre de sa /64 en commençant par le dernier chiffre et en ajoutant “0” lorsqu'il n'y a pas quatre chiffres contenus entre les “:” et finit par “.ip6.int” exemple rapide: 3ffe:15 donnera ceci → 5.1.0.0.e.f.f.3.ip6.int c'est pas tres clair, mais en y passant un petit bout de temps à loucher dessus ca devient naturel :) zone “3.2.0.0.0.0.2.8.1.7.2.8.e.f.f.3.ip6.int” { type master; file “3ffe.8271.rev”; };


Voila notre fichier finit.

A présent, attaquons nous aux autres :

#vi /var/bind/zone/localhost.dns


$TTL 3600 @ IN SOA diantre.net. root.diantre.net. (

                              1999012100      ; Serial
                              3600            ; Refresh
                              300             ; Retry
                              3600000         ; Expire
                              3600 )          ; Minimum
      IN      NS      localhost.

localhost. IN A 127.0.0.1 ; déclaration de l'IPV4

              IN      AAAA    ::1             ; déclaration de l'IPV6

——————————

# vi /var/bind/zone/127.0.0.rev


$TTL 3600 @ IN SOA diantre.net. root.diantre.net. (

                      2001031213      ;
                      28800           ;
                      7200            ;
                      604800          ;
                      86400)          ;
      IN      NS      localhost.

1 PTR localhost. ;définition du reverse


# vi /var/bind/zone/diantre.net.dns


$ORIGIN net. $TTL 3600 diantre IN SOA diantre.net. root.diantre.net. (

                      2001031212
                      28800
                      7200
                      604800
                      86400 )
              NS      ftp.diantre.net.        ;déclaration du serveur de nom (ici, la machine FTP)
              MX      10 mail.diantre.net.    ;déclaration du MX (mail exchangeur)
              TXT     "diantre (DTC) network" ;le truc débile pour mettre sa touche

$ORIGIN diantre.net. mail A 192.168.0.1 ;IPV4 de la machine mail

                      AAAA    3ffe:8271:8200:23:260:8ff:feb6:76a0     ;son IPV6

ftp A 192.168.0.5 ;IPV4 de la machine ftp

                      AAAA    3ffe:8271:8200:23:210:5aff:fe64:935e    ;son IPV6

www A 192.168.0.4 ;IPV4 de la machine www

                      AAAA    3ffe:8271:8200:23:248:54ff:fe66:9d52    ;son IPV6

——————————

# vi /var/bind/zone/192.168.0.rev


@ IN SOA diantre.net. root.diantre.net. (

                      2001072903
                      28800
                      7200
                      604800
                      86400 )
              NS      ftp.diantre.net.

5 PTR ftp.diantre.net. 4 PTR www.diantre.net.


# vi /var/bind/zone/3ffe.8271.rev


$ORIGIN . $TTL 3600 ; 1 hour 3.2.0.0.0.0.2.8.1.7.2.8.e.f.f.3.ip6.int IN SOA diantre.net. root.diantre.net. (

                                      2001072904 ; serial
                                      28800      ; refresh (8 hours)
                                      7200       ; retry (2 hours)
                                      604800     ; expire (1 week)
                                      86400      ; minimum (1 day)
                                      )
                                      NS      ftp.diantre.net.

$ORIGIN 3.2.0.0.0.0.2.8.1.7.2.8.e.f.f.3.ip6.int. Une IPV6 est composé de deux parties: Le /64 qui définit le réseau (3ffe:8271:8200:23) et la suite qui définit le hosts à partir de son adresse MAC (210:5aff:fe64:935e pour ftp) Pour trouver le reverse d'un host, il suffit de faire la meme reflection que pour la zone, mais avec la deuxieme partie de l'adresse et sans le “.ip6.int” à la fin ce qui nous donne : 0.a.6.7.6.b.e.f.f.f.8.0.0.6.2.0 PTR mail.diantre.net. e.5.3.9.4.6.e.f.f.f.a.5.0.1.2.0 PTR ftp.diantre.net. 2.5.d.9.6.6.e.f.f.f.4.5.8.4.2.0 PTR www.diantre.net.


Voila nos fichiers de configurations terminés (ouf) Passons à la dernière étape.

4) Finalistaion de la sécurité et lancement du daemon (mais pas trop fort hein ;) ): S'il n'en existe pas, veuillez en créer un avec un groupe correspondant :

# groupadd bind # useradd -g bind -s /bin/false bind

Vala :)

A présent, nous allons “setter” les droits sur le répertoire /var/bind

# chown -R bind:bind /var/bind # chmod -R 700 /var/bind

Et voila :)

Seul les users bind et root auront le droit d'y acceder.

Il ne reste plus qu'à démarrer le daemon :)

Localisez le binaire “named” (sous debian → /usr/sbin, NetBSD → /usr/pkg/sbin, FreeBSD → /usr/local/sbin) et lancez le comme suit :

# named -u bind -t /var/bind -c /etc/named.conf

explications :

-u → lance le daemon avec le user désiré (ici bind) -t → le repertoire où est chrooté bind -c → le fichier de configuration à appeler

5) Testage :

Bin vi, on va quand meme pas partir sans tester. Sur la machine serveur NS (soit ftp pour notre exemple), rajouter la ligne “nameserver 127.0.0.1” dans le fichier “/etc/resolv.conf” et faites qu'elle soit la première. Lancez la commande “nslookup” # nslookup Default Server: localhost Address: 127.0.0.1

ici taper un host, comme par exemple mail:

mail.diantre.net

Server: localhost Address: 127.0.0.1

Name: mail.diantre.net Address: 192.168.0.1

Ca fonctionne :)

à présent taper son adresse IP afin de voir si le reverse fonctionne bien :

192.168.0.1

Server: localhost Address: 127.0.0.1

Name: mail.diantre.net Address: 192.168.0.1

*joie*

Pour tester l'IPV6, il n'y a pas encore beaucoup d'outil, on peut voir l'ip V6 en spécifiant le nom d'une machine avec nslookup et le type de selection AAAA :

set q=AAAA
www.diantre.net

Server: localhost Address: 127.0.0.1

www.diantre.net IPv6 address = 3ffe:8271:8200:23:248:54ff:fe66:9d52 diantre.net nameserver = ftp.diantre.net www.diantre.net internet address = 192.168.0.4

quant aux reverse, je n'ai rien trouver que de créer une conection sur un service en V6 (ssh par exemple) et de faire :

# netstat | grep ESTABLISHED

et de voir si le nom du client est résolut.

Voila :)

J'espere que vous avez pas trop le crane defoncez, mais si vous avez tout bien suivit vou devriez.

Quelque liens (obligé):

HOWTO CHROOT-BIND → http://www.tldp.org/HOWTO/Chroot-BIND-HOWTO.html HOWTO Reverse IPV6 → http://www.freenet6.net/reverse-dns.shtml

Pour obtenir une passerelle IPV6 gratuitement et en France → http://www.ipv6-fr.org (pas encore dispo) Ecrivez à ipmaster@ipv6-fr.org pour plus d'info, ils sont vraiment très sympa et plein de bons conseils.

jtbjid

unix/bind_ipv6.txt · Last modified: 2010/01/12 13:29 (external edit)