Configurar DNS Server en modo chroot con BIND en CentOS 6/7
(Esta entrada ha sido actualizada el 5 de julio del 2017)
En las versiones 6 en adelante de RedHat y sus distribuciones asociadas, entre ellas CentOS 6, han habido cambios en la forma en cómo se configura y administra el servicio Servidor DNS, el cual está asociado a la versión 9.x del paquete BIND.
Ahora CentOS nos permite descargar una versión mínima, que es ideal para servidores, y que no trae toda la paquetería que a veces resulta inútil.
Vamos a descargar e instalar la última versión de CentOS. Para ello, podemos visitar alguno de los siguientes enlaces:
CentOS 6.x
- 32 bits: http://mirror.centos.org/centos/6/isos/i386/
- 64 bits: http://mirror.centos.org/centos/6/isos/x86_64/
CentOS 7.x
- 64 bits: http://isoredirect.centos.org/centos/7/isos/x86_64/
- Nota: No existe versión de CentOS 7 para 32 bits.
Para una guía de instalación, favor visitar el link: http://landoflinux.com/linux_install_centos_69_server_minimal.html
Para una guía paso a paso de la configuración inicial, favor viisitar el siguiente link: http://evollution.net/?p=363
Una vez instalada la distro, necesitaremos algunos paquetes útiles:
1
2 yum -y install nano
yum -y install bind bind-chroot
I. Editar /etc/hosts
El archivo debe contener una línea que haga referencia a nuestro servidor. La sintaxis es: [Direccion IP] [FQDN] [hostname]. Supongamos que nuestro servidor se va a llamar dns1 (este nombre debió definirse durante el proceso de instalación del sistema operativo)
1 Ej: 192.168.0.8 dns1.evollution.com dns1
II. Configurar Bind chroot
Una vez instalados los paquetes bind y bind-chroot,el sistema crea una estructura a manera de ejemplo en /usr/share/doc/bind-9.x.x/sample/var/named. Debemos copiar estos archivos a nuestro directorio real.
1
2
3
4
5
6
7
8
9 cp -R /usr/share/doc/bind-9.9.4/sample/var/named/* /var/named/chroot/var/named/
touch /var/named/chroot/var/named/data/cache_dump.db
touch /var/named/chroot/var/named/data/named_stats.txt
touch /var/named/chroot/var/named/data/named_mem_stats.txt
touch /var/named/chroot/var/named/data/named.run
mkdir /var/named/chroot/var/named/dynamic
touch /var/named/chroot/var/named/dynamic/managed-keys.bind
chown -R root:named /var/named/chroot/var/named/data
chown -R root:named /var/named/chroot/var/named/dynamic
Si no usamos IPv6, debemos ejecutar la siguiente linea. (no lo hagan si usan IPv6)
1 echo 'OPTIONS="-4"' >> /etc/sysconfig/named
Luego, hay que generar nuestra propia llave RNDC.
1
2 rndc-confgen -a -c /etc/rndc.key
chmod 755 /etc/rndc.key
El proceso de generar la llave RNDC puede tomar hasta 15 minutos, dependiendo del equipo, por lo que es buena idea que el proceso se ejecute en background agregando un “&” al final de la línea
1 rndc-confgen -a -c /etc/rndc.key &
Una vez generada la llave, debemos copiarla en nuestro entorno ‘chrooted’
1
2 cp /etc/rndc.key /var/named/chroot/etc
chmod 755 /var/named/chroot/etc/rndc.key
Los archivos de zona deben crearse en /var/named/chroot/var/named/data. Ejemplo de un archivo de zona para evollution.com:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $TTL 300
@ IN SOA dns1.evollution.com. mr.evollution.net. (
2017050801
7200
7200
1604800
10800 )
@ IN NS dns1.evollution.com.
@ IN MX 10 dns1.evollution.com.
@ IN A 192.168.0.8
dns1 IN A 192.168.0.8
www IN A 192.168.0.8
mail IN A 192.168.0.8
Ejemplo del archivo named.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 include "/etc/rndc.key";
controls {
inet 127.0.0.1
allow { localhost; }
keys { "rndc-key"; };
};
acl "trusted" { 11.22.33.44; 11.22.33.45; };
options {
listen-on port 53 { 127.0.0.1; 11.22.33.44; 11.22.33.45; };
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-recursion { trusted; };
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key"; };
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "evollution.com" {
type master;
file "data/evollution.com.zone";
};
include "/etc/named.rfc1912.zones";
- Y entonces, toca vivir.
- Step by step: Instalacion CentOS 6.9 Minimal
Estiamado soy principiante en gnu con linux y sinceramente no entiendo tu tuto esmuy general y no detallado por fa si pudieras exolicar un poco mas detallado gracias
Hola Wil. Lo que pasa es que yo lo he puesto pensando en aquellos administradores que ya tienen algo de experiencia. Pero si tienes alguna duda en particular, no dudes en preguntarme.
En general, lo que tenés que hacer es instalar el CentOS 6, para entornos de servidor te recomiendo la versión minimal que viene en CD (son menos de 400MB). Esta no tiene interfaz gráfica y tampoco la gran cantidad de utilitarios que vienen en el DVD. Este lo descargás desde el sitio de CentOS (www.centos.org) en formato .iso
Una vez que tengas descargada la imagen, quemala en un CD y la instalás. Durante la instalación vas a definir varios aspectos de configuración del sistema, como la zona horaria, contraseña del root, etc. Una vez que instalés y tengás configurado, podés empezar con la información que está aquí para configurar el servidor DNS.
Pero nuevamente, si tienes preguntas puntuales, tú me las haces para irte aclarando, que para eso estamos .. 😉
Saludos
Hola.
Bueno primero que todo tu explicacion esta buena pero necesito saber un poco mas de la configuracion te agradesco de antemano si puedes decirme donde buscar mas informacion
¿Qué necesitás saber en particular? Con gusto te ayudo.
Si deseas buscar más información, o tips de ayuda para todo el sistema, te recomiendo el sitio de NixCraft (http://www.cyberciti.biz/)
Saludos
Hola Mr. Evo creo que Wil tiene razon en lo de tu explicacion ya que es mas avanzada y para empezar es muy general verdaderamente necesito algo mas detallado ya ojie la pagina que publicastes en tu repuesta y aun no encuentro lo que busco.
Bien te explico…
No tengo el gran conocimiento en servidores y quiero actualizar uno de centos 5 a la distribucion 6 bueno y creo que tu esperas consultas avanzadas.
Saludos.
Qué tal José Luis? Yo nunca he optado por hacer un upgrade de versión de software. La última vez que lo intenté se echó todo a perder y tuve al final que reinstalar nuevamente.
En el sitio de CentOS hay una guia de como hacer la migración, sin embargo la misma empieza con una advertencia que pueden producirse daños al filesystem o al sistema operativo si no se sigue al pie de la letra, por lo que la recomendación sigue siendo hacer un respaldo de las configuraciones y reinstalar todo el sistema.
La versión 6 de CentOS trae muchas diferencias con respecto a la versión 5. Por ejemplo, CentOS 6 utiliza el filesystem ext4 en vez del ext3 que viene con la versión 5. Esto representa un gran avance en cuanto al desempeño del filesystem.
Otros cambios están en la versión de los paquetes, que permiten utilizar las versiones más actualizadas.
Y otro cambio importante y recomendado, es utilizar la versión de 64 bits, por lo que si tienes una versión a 32 bits, lo mejor es reformatear por completo el disco para aprovechar todas las nuevas ventajas que la versión 6 trae.
Voy a tomar en cuenta su consideración y escribir los post más detallados para que sirvan de guía general a una mayor cantidad de personas.
Gracias y nos estamos leyendo 😉
Hola Mr. Evo
Esta vez te te explicare bien lo que deseo hacer ya que tienes toda la razon en lo que comentaste.
Bien…..
Tengo un servidor que es donde actualmente esta instalado el centos 5 de 32 bit y donde esta corriendo todo bien.
Tengo uno donde estoy trabajando con la distribucion nueva de centos ya esta instalado puesto en la red actualizado y con lo necesario, instale bind, pero ahi es donde tengo el problema no he encontrado una configuracion de bind que logre entender ya que hay cosas que estan fuera de mi alcanse.
Estoy utilizando arquitectura de 64 bit aun no he tocado nada en bin o configurado para montar el dns como te decia antes no he entendido muy bien.
Gracias por tus respuestas.
@José Luis. Si ya tenés el sistema operativo instalado y configurado a nivel de red, basta con que sigas paso a paso lo que está aquí. Puedes seguirlo sin problemas que te garantizo que funciona. Empieza donde está la instalación del nano y el bind
yum -y install nano
yum -y install bind bind-chroot
y sigue luego las instrucciones. Paso a paso.
Si tienes un pegón en algún punto en particular me lo hacés saber.
Saludos
pero en que ruta pones el named.conf config?? debes ser especifico
En CentOS en modo chroot, la ruta del named.conf es /var/named/chroot/etc