Bind 10

De bricosoft
(Redirigé depuis Bind10)
Aller à la navigation Aller à la recherche
<google uid="C06" position="left"></google>
Erreur dans le widget Twitter Search: unable to write file /home/gbp4dt5/zones/bricosoft.com/www/extensions/Widgets/compiled_templates/wrt69386f724c44d1_69787769
Fichier:Crystal Clear app network.png

Bind 10 est le célèbre serveur de noms complètely une re-écriture de la version 9. Car la version se trainait une sale réputation de truc pas-secure. On arrivait même à se demander si c'était pas des black-hats qui développait bind !

Avant de commencer un exemple worky de bind10 en primaire et secondaire il faut commencer par un cours magistral théorique.

Cours magistral théorique

installation

Les paquets utiles :

# apt-get install dnsutils mtr-tiny iproute iputils-tracepath tcpdump dns-flood-detector

Voire zonecheck pour les registres Ayatollah comme .fr et .it :

# apt-get install zonecheck

Et php, ou autre langage de script pour bidouiller vos zones :

# apt-get install php5-cli php-pear

use the source Luke

# apt-get install build-essential libssl-dev python3.1 python3.1-dev sqlite3 libsqlite3-dev libboost-dev libboost-thread1.40-dev libboost-thread1.40.0
....
$ wget http://ftp.isc.org/isc/bind10/devel-20100917/bind10-devel-XXX.tar.gz; tar -zxvf bind10-devel-XXX.tar.gz; cd bind10-devel-XXX/

Pour votre config particulère il y a une aide (on peut zieuter aussi le README qui n'est pas vide)

$ ./configure --help

Mais comme vous avez aveuglément confiance en bricosoft.com :

$ ./configure --with-openssl --with-pythonpath=/usr/bin/python3.1 
...

Si le configure vous engueule parce que vous n'avez pas le header sur les sémaphores austro-hongrois, fait un "apt-file search lefichier" pour retrouver le bon paquetage.

# apt-get install apt-file; apt-file update
$ apt-file search shared_ptr.hpp
libboost...


$ ./configure --with-openssl --with-pythonpath=/usr/bin/python3.1 --disable-setproctitle-check
...
    BIND 10 source configure results:
   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Package:
 Name:          bind10-devel
 Version:       20110120
C++ Compiler:    g++
Flags:
 DEFS:          -DHAVE_CONFIG_H
 CPPFLAGS:       -I$(top_srcdir)/ext/asio -DASIO_DISABLE_THREADS=1
 CXXFLAGS:      -g -O2
 B10_CXXFLAGS:  -Wall -Wextra -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -Werror -fPIC
 Python:        -I/usr/include/python3.1 -I/usr/include/python3.1
                 -L/usr/lib/python3.1/config  -R/usr/lib/python3.1/config
                -lpython3.1
 Boost:         
 SQLite:         
                -lsqlite3  
Features:
  SQLite3
Developer:
 Google Tests:  no
 C++ Code Coverage: no
 Python Code Coverage: no
 Generate Manuals:  no


 Now you can type "make" to build BIND 10
$ make
...
# make install
...
$ ls -lha /usr/local/bin/
...
  • Pour bind10 :
-rwxr-xr-x  1 root root 3.1K Oct  8 13:37 b10-loadzone
-rwxr-xr-x  1 root root 4.9K Oct  8 13:37 bindctl

chroot prison

<CSO_SiteAd>pub_amazon_widget_livres_dns</CSO_SiteAd>

Ce service critique sera isolé dans sa propre (petite)copie de système de fichiers car Bind (standard de facto) traîne une liste d'anciennes vulnaribilités mais depuis la version 9 c'est de l'histoire ancienne. Donc simplement par tradition ;-) on va l'installer dans un chroot jail.

Ici l'arborescence pour Bind sera dans /var/named :

# mkdir -p /var/named/run-root/{dev,etc,var/cache/bind,var/log/bind,var/named,var/run/named}
# chown root:bind /var/named/run-root/var/log/bind/
# chmod 775 /var/named/run-root/var/log/bind/
# cp -p /etc/localtime /var/named/run-root/etc/
#  mknod /var/named/run-root/dev/null c 1 3
#  mknod /var/named/run-root/dev/random c 1 8
#  chmod 666 /var/named/run-root/dev/*
#  chown root:bind /var/named/run-root/
#  chown -R bind:bind /var/named/run-root/var
#  chown -R bind:bind /var/named/run-root/etc/bind
#  usermod -d /var/named/run-root bind
#  chmod 700 /var/named
#  chown bind:bind /var/named/run-root
#  chmod 700 /var/named/run-root

archivage de l'ancienne configuration

# mkdir /var/named/run-root/var/log/bind/old
# cp -rp /etc/bind/ /var/named/run-root/etc/

SyslogD

#  vim /etc/default/syslogd

Primaire

Fichier:Crystal Clear filesystem file important.png

Pour corser l'affaire et vous empêcher de comprendre facilement, dans l'exemple qui va suivre

1.1.1.1 est l'Ip du primaire et 2.2.2.2 l'Ip du secondaire

Créer une zone

Créez dans /var/named/run-root/var/named/primary/ le fichier db.bricosoft.com : <source lang="php"> $TTL 2D @ IN SOA ns1.mon-primaire.net. root.bricosoft.com. (

                      	2009081201      ; Serial
                       24H		; Refresh
                       2H		; Retry
                      	1W		; Expire
                       2D	)       ; Negative Cache TTL

@ IN NS ns1.mon-primaire.net. @ IN NS ns2.mon-secondaire.org. @ IN MX 10 mail.bricosoft.com. ns1 IN A 1.1.1.1 ns2 IN A 2.2.2.2 bricosoft.com. IN A 8.7.6.5 mail IN A 44.44.44.44 www CNAME bricosoft.com. </source> Ajoutez dans /var/named/run-root/etc/bind/primary.conf : <source lang="c"> zone "bricosoft.com" {

       type master;
       notify yes;
       allow-transfer{ 2.2.2.2; };
       file "/var/named/primary/db.bricosoft.com";

}; </source>

Secondaire

Ajouter une zone

Dans /var/named/run-root/etc/bind/secondary.conf : <source lang="c"> zone "bricosoft.com" {

       type slave;
       masters { 1.1.1.1; };
       file "/var/named/secondary/db.bricosoft.com";

}; </source>

Run

<google uid="C08" position="left"></google>

Pour tester sur le port 5300 avec la version dev :

# bind -v
...

Ou en forçant sur le port 53 (ici dans un screen nommé bindix):

# screen -dmS bindix /usr/local/sbin/bind10 --address=2.2.2.2 --port=53 --verbose
...
# bindctl
[TEMP MESSAGE]: username :root  password :bind10
Username:root
Password: 
["login success "]

Xfrin

Transférer la zone depuis le primaire :

Image logo indiquant une information importante Ne pas avoir oublié d'autoriser le transfert de zones du primaire vers ce nouveau secondaire dans /var/named/run-root/etc/bind/primary.conf ou /etc/bind/primary.conf :

allow-transfer{ 2.2.2.2; };

> Xfrin retransfer zone_name="bricosoft.com" master=1.1.1.1
send the command to cmd-ctrld
received reply: "zone xfrin is started"

Dans la sortie standard du bind -v :

[b10-cmdctl] Finish send command 'retransfer' to module 'Xfrin'
[b10-xfrin] transfer of 'bricosoft.com': AXFR succeeded

Pour ne saisir que les zones à transférer, mettez dans bindctl :

> config set Xfrin/master_addr 1.1.1.1
> config commit
...
> Xfrin retransfer zone_name="bricosoft.eu"
...

Version :

$ dig @ns1.toto.uk -c ch -t txt version.bind 
...
;; ANSWER SECTION:
version.bind.		0	CH	TXT	"bind10-devel"
...

Liens