Instalar el Servidor DNS BIND en CentOS 6
Preámbulo
Instalar el Servidor DNS BIND en CentOS 6. Antes de comenzar, se recomienda tener al menos dos servidores en la nube para ejecutar sus servidores de nombres. Se sugieren dos servidores de nombres para garantizar que sus servidores primarios y secundarios sean redundantes en caso de falla. También puede considerar usar dos POP diferentes. Por ejemplo, hemos usado San Francisco 1 y Nueva York 1. A los efectos de esta guía, se supondrá que está configurando un servidor de nombres primario y secundario.
Vale la pena señalar que si administra una gran cantidad de dominios, puede ser una solución no muy viable, ya que deberá agregar dominios manualmente en los servidores de nombres maestro y esclavo. Dicho esto, ejecutar sus propios servidores. Es una gran manera de tener un control más directo sobre su infraestructura de alojamiento y ejercer un control total sobre sus registros DNS.
Al igual que con cualquier servidor nuevo, siempre es importante asegurarse de que su sistema esté actualizado. Puede verificar esto al buscar actualizaciones usando yum de la siguiente manera:
yum update -y
(Nota: Para este tutorial, hemos llamamos a nuestros servidores en la nube como "fututel").
Instalación BIND Inicial
Para comenzar, necesitaremos instalar los paquetes BIND y BIND Utilities usando yum .
yum install bind bind-utils -y
A continuación, abriremos el archivo de configuración BIND (named) y haremos varias modificaciones.
nano -w /etc/named.conf
Su sección de "opciones" debería aparecer de la siguiente manera, reemplazando 2.2.2.2 con la IP de su segundo fututel.
options {
#listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-transfer { localhost; 2.2.2.2; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
Arriba, se debe comentar listen-on para escuchar en todas las interfaces disponibles. La recursividad debe desactivarse para evitar que se abuse de su servidor en ataques DDoS "reflejos". La directiva allow-transfer incluye transferencias a la IP de su fututel secundario. Además, hemos cambiado la directiva allow-query a "any" para permitir a los usuarios un acceso adecuado a las zonas alojadas.
A continuación, querremos agregar una nueva zona para nuestro primer dominio, debe agregar lo siguiente a su named.conf debajo de las zonas existentes.
zone "mydomain.com" IN {
type master;
file "mydomain.com.zone";
allow-update { none; };
};
Después de guardar named.conf con los cambios anteriores, estamos listos para crear nuestro primer archivo de zona.
Configurar Zonas BIND
En primer lugar, necesitaremos abrir el archivo de zona, usando el nombre que especificó en la configuración anterior. (Ex: mydomain.com.zone)
nano -w /var/named/mydomain.com.zone
Agregaremos los siguientes contenidos a nuestro archivo recién creado. Debe reemplazar la información aplicable por la suya, donde 1.1.1.1 es la IP de su primer fututel, 2.2.2.2 es la IP de su segundo fututel y 3.3.3.3 es el IP al que desea apuntar el dominio, como una gota que ejecuta un servidor web. Usted es libre de agregar entradas adicionales en el mismo formato.
$TTL 86400
@ IN SOA ns1.mydomain.com. root.mydomain.com. (
2013042201 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
; Specify our two nameservers
IN NS ns1.mydomain.com.
IN NS ns2.mydomain.com.
; Resolve nameserver hostnames to IP, replace with your two fututel IP addresses.
ns1 IN A 1.1.1.1
ns2 IN A 2.2.2.2
; Define hostname -> IP pairs which you wish to resolve
@ IN A 3.3.3.3
www IN A 3.3.3.3
Ahora podemos comenzar a nombrarnos por primera vez. Esto puede tardar varios minutos mientras named genera el archivo rndc.key , que solo se produce en la primera ejecución.
service named restart
Una vez que el nombre se haya iniciado correctamente, querremos asegurarnos de que esté habilitado como un servicio de inicio, ejecutando lo siguiente:
chkconfig named on
Por ahora, deberíamos tener un servidor de nombres primario completamente operativo. Puede verificar que BIND funciona correctamente ejecutando el siguiente comando, reemplazando 1.1.1.1 con la IP de su primer fututel.
dig @1.1.1.1 mydomain.com
Si recibe una respuesta que incluye una sección de respuestas y autoridad, su servidor de nombres ha sido configurado correctamente.
Configuración del Servidor de Nombres "Slave"
Con nuestro servidor de nombres primario configurado, ahora configuraremos un servidor de nombres esclavo en nuestro segundo servidor en la nube.
Como siempre, asegúrese de que su sistema esté actualizado al buscar actualizaciones con yum de la siguiente manera:
yum update -y
Podemos comenzar por instalar BIND (y utilidades relacionadas) en el segundo fututel, de la misma manera que el primero:
yum install bind bind-utils -y
Continuaremos abriendo named.conf y haciendo los mismos cambios que antes, omitiendo la línea " allow transfer ". Esta directiva es innecesaria ya que solo transferiremos registros desde nuestro servidor de nombres primario.
nano -w /etc/named.conf
options {
#listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
Añadiremos la zona que configuramos en el primer fututel, esta vez cambiando la directiva "type" a slave, en lugar de master. Debería reemplazar "1.1.1.1" con la dirección IP de su primer fututel.
zone "mydomain.com" IN {
type slave;
masters { 1.1.1.1; };
file "mydomain.com.zone";
};
Después de configurar nuestra zona esclava, comenzaremos con un nombre. De nuevo, esto puede demorar varios minutos mientras nuestro archivo rndc.key se genera inicialmente.
service named start
Al igual que con el primer servidor en la nube, queremos asegurar que named se configure para ejecutarse al inicio con lo siguiente:
chkconfig named on
Su servidor de nombres esclavo debería estar ahora en funcionamiento. Puede verificar que sea completamente operativo usando dig nuevamente, reemplazando 2.2.2.2 con la IP de su segundo fututel.
dig @2.2.2.2 mydomain.com
Después de realizar cualquier cambio en los archivos de la zona maestra, deberá indicar a BIND que vuelva a cargar. Recuerde, también debe incrementar la directiva "serial" para asegurar la sincronicidad entre el maestro y el esclavo.
Para volver a cargar los archivos de zona, debemos ejecutar el siguiente comando en el servidor de nombres maestro, seguido del esclavo:
rndc reload
BIND en un Entorno Chroot
En general, se recomienda instalar el paquete adicional " bind-chroot ", que eliminará los privilegios de BIND en un entorno chroot.
Afortunadamente, el paquete CentOS lo hace extremadamente simple. El único aspecto digno de mención es que las rutas activas para BIND cambiarán a sus equivalentes chroot, por ejemplo / var / named se convierte en / var / named / chroot / var / named Con CentOS 6, no será necesario mover ningún archivo como paquete crea automáticamente enlaces duros a los directorios no chroot.
Si desea habilitar esta característica para la seguridad adicional que proporciona, puede hacer lo siguiente:
yum install bind-chroot -y
service named restart
Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-the-bind-dns-server-on-centos-6