Localización de descarga (HTTP): Localización de descarga (FTP): ftp://ftp.isc.org/isc/bind9/9.2.2/bind-9.2.2.tar.gz Versión usada: 9.2.2 Tamaño del paquete: 4.8 MB Estimación del espacio necesario en disco: 38 MB |
El paquete BIND proporciona un servidor DNS y utilidades de cliente.
Instala BIND ejecutando los siguientes comandos:
./configure --prefix=/usr && 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 algunos ficheros y directorios que necesita BIND:
groupadd -g 200 named && useradd -m -g named -u 200 -s /bin/false named && 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 |
named.conf, root.hints, 127.0.0 y rndc.conf
Crea el fichero named.conf con los siguientes comandos:
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:
Nota: 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 |
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 |
Crea o modifica resolv.conf para utilizar el nuevo servidor de nombres con los siguientes comandos:
Nota: 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 |
Crea el guión de arranque de BIND:
cat > /etc/rc.d/init.d/bind << "EOF" #!/bin/bash # Inicio $rc_base/init.d/bind # Basado en el guión sysklogd de LFS-3.1 y anteriores. # Reescrito por Gerard Beekmans - gerard@linuxfromscratch.org source /etc/sysconfig/rc source $rc_functions case "$1" in start) echo "Iniciando named..." loadproc /usr/sbin/named -u named -t /home/named -c \ /etc/named.conf ;; stop) echo "Parando named..." killproc /usr/sbin/named ;; restart) $0 stop sleep 1 $0 start ;; reload) echo "Recargando named..." /usr/sbin/rndc -c /etc/rndc.conf reload ;; status) statusproc /usr/sbin/named ;; *) echo "Uso: $0 {start|stop|restart|status}" exit 1 ;; esac # End $rc_base/init.d/bind EOF |
Añade los enlaces simbólicos en los niveles de arranque:
chmod 754 /etc/rc.d/init.d/bind && ln -s /etc/rc.d/init.d/bind /etc/rc.d/rc0.d/K49bind && ln -s /etc/rc.d/init.d/bind /etc/rc.d/rc1.d/K49bind && ln -s /etc/rc.d/init.d/bind /etc/rc.d/rc2.d/K49bind && ln -s /etc/rc.d/init.d/bind /etc/rc.d/rc3.d/S22bind && ln -s /etc/rc.d/init.d/bind /etc/rc.d/rc4.d/S22bind && ln -s /etc/rc.d/init.d/bind /etc/rc.d/rc5.d/S22bind && ln -s /etc/rc.d/init.d/bind /etc/rc.d/rc6.d/K49bind |
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 |
groupadd -g 200 named useradd -m -g named -u 200 -s /bin/false named 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 |
cat > /home/named/etc/named.conf << "EOF" : Crea el fichero de configuración de BIND, del que named leerá la localización de los ficheros de zona, los servidores de nombres raíz y las llaves DNS seguras.
cat > /home/named/etc/namedb/pz/127.0.0 << "EOF" : Crea un fichero de zona simple.
cat > /home/named/etc/namedb/root.hints << "EOF" : El fichero root.hints es una lista de servidores de nombres raíz. Este fichero debe actualizarse periódicamente con la utilidad dig. Consulta los detalles en el Manual de Referencia del Administrador de BIND 9.
cat > /etc/rndc.conf << "EOF" : El fichero rndc.conf contiene información para controlar las operaciones de named con la utilidad rndc.
cat > /etc/resolv.conf << "EOF" : El fichero resolv.conf especificará la máquina local (127.0.0.1) como servidor de nombres.
cat > /etc/rc.d/init.d/bind << "EOF" : Crea el guión de arranque para BIND 9, usado para iniciar y parar el demonio del servidor de nombres, named.
El paquete BIND contiene dig, host, rndc, rndc-confgen, named-checkconf, named-checkzone, lwresd, named, dnssec-signzone, dnssec-signkey, dnssec-keygen, dnssec-makekeyset y nsupdate.