El paquete BIND proporciona un servidor DNS y utilidades de cliente. Si sólo estás interesado en las utilidades, consulta BIND Utilities-9.2.3.
Descarga (HTTP): http://gd.tuwien.ac.at/infosys/servers/isc/bind9/9.2.3/bind-9.2.3.tar.gz
Descarga (FTP): ftp://ftp.isc.org/isc/bind9/9.2.3/bind-9.2.3.tar.gz
Tamaño del paquete: 4.4 MB
Estimación del espacio necesario en disco: 88 MB
Tiempo estimado de construcción: 0.89 SBU
Instala BIND ejecutando los siguientes comandos:
./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install
Configuraremos BIND para que se ejecute en una jaula chroot como usuario sin privilegios (named). Esta configuración es más segura pues un compromiso en el DNS sólo puede afectar a unos pocos ficheros en el directorio HOME del usuario named.
Primero crearemos el usuario y grupo sin privilegios named:
groupadd named &&
useradd -m -g named -s /bin/false named
Ahora crearemos algunos ficheros, directorios y dispositivos que necesita 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
Crea el fichero named.conf, del cual named leerá la localización de los ficheros de zona, servidores raices de nombres y llaves DNS seguras:
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
Crea un fichero de zona con el siguiente contenido:
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
Crea el fichero root.hints con los siguientes comandos:
Debes tener la precaución de asegurarte de que no dejas espacios sobrantes en este fichero.
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
El fichero root.hints es una lista de servidores raices de nombres. Este fichero debe actualizarse periódicamente con la utilidad dig. Consulta el Manual de Referencia del Administrador de BIND 9 para mas detalles.
Crea el fichero rndc.conf con los siguientes comandos:
cat > /etc/rndc.conf << "EOF" key rndc_key { algorithm "hmac-md5"; secret "[c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K]"; }; options { default-server localhost; default-key rndc_key; }; EOF
El fichero rndc.conf contiene información para controlar las operaciones de named con la utilidad rndc.
Crea o modifica resolv.conf para utilizar el nuevo servidor de nombres con los siguientes comandos:
Sustituye yourdomain.com con el nombre válido de tu propio dominio.
cp /etc/resolv.conf /etc/resolv.conf.bak && cat > /etc/resolv.conf << "EOF" search [yourdomain.com] nameserver 127.0.0.1 EOF
Establece los permisos de la jaula chroot con el siguiente comando:
chown -R named.named /home/named
Para iniciar el servidor DNS en el arranque, instala el guión de inicio /etc/rc.d/init.d/bind incluido en el paquete blfs-bootscripts-5.1:
make install-bind
Ahora inicia BIND con el nuevo guión de arranque:
/etc/rc.d/init.d/bind start
Comprueba la nueva instalación de BIND 9. Primero consulta la dirección de la máquina local con dig:
dig -x 127.0.0.1
Ahora prueba la búsqueda de un nombre externo, tomando nota de la diferencia de velocidad en repetidas consultas debido al caché. Lanza el comando dig dos veces sobre la misma dirección:
dig beyond.linuxfromscratch.org &&
dig beyond.linuxfromscratch.org
Verás que el resultado es casi instantáneo cuando named consulta las direcciones almacenadas. Para saber todas las opciones de configuración consulta bind-9.2.3/doc/arm/Bv9ARM.html, el Manual de Referencia del Administrador de BIND.
El paquete BIND contiene dig, host, isc-config.sh, nslookup, rndc, rndc-confgen, named-checkconf, named-checkzone, lwresd, named, dnssec-signzone, dnssec-signkey, dnssec-keygen, dnssec-makekeyset y nsupdate.
lwresd es un servidor de nombres que sólo busca consultas guardadas, para usar con procesos locales.
dnssec-makekeyset genera un grupos de llaves a partir de una o más llaves creadas con dnssec-keygen.