You are on page 1of 5

Instalar y Configurar un Servidor DNS con BIND9 en Debian Etch con Chroot

Visto 33.436 veces | 62 Comentarios | Imprimir En esta oportunidad veremos como instalar y configurar un servidor DNS con Bind9 en Debian 4.0 Etch. El protocolo de DNS (Domain Name System) es el que bsicamente permite realizar la traduccin entre un nombre de una pgina Web como lo entendemos nosotros (por ejemplo www.vensign.com) a una direccin IP (172.30.30.1) que es lo que realmente entienden los servidores en Internet. Es un servicio fundamental y sin el simplemente no existira Internet como la conocemos hoy en da. BIND9 es un servidor de DNS de cdigo abierto, gratis y que es utilizado por la gran mayora de los servidores DNS que existen en Internet. Voy a suponer que tienes un cierto nivel de conocimientos de Linux (no mucho se requiere realmente) solo que sepas abrir un terminal y escribir comandos eso es todo. Te aconsejo que sigas esta gua paso a paso para que le saques el mayor provecho. Esta instalacin fue probada en servidores Debian Etch 4.0. Funciona bien en servidores basados en Debian y en versiones de Ubuntu previas a 8.04. Vamos a comenzar... En este caso vamos a hacer la configuracin tpica de servidores DNS con un servidor primario o maestro con direccin IP 192.168.249.1 y un servidor secundario con direccin IP 192.168.249.2 en caso de que falle el primero. Se utilizar como dominio ejemplo ejemplo.lan

Instalando BIND 9.5


Esta parte aplica tanto para instalar el servidor maestro como el secundario, para esto ejecutamos los siguientes comandos como root:
apt-get update && apt-get upgrade

Para asegurarnos de tener actualizados nuestros repositorios:


apt-get bind9 dnsutils

Con esto se instala el servidor Bind9 y los dnsutils son varias utilidades de DNS que nos serviran ms adelante para comprobar nuestro servidor.

Chroot Bind
Cuando se habla de realizar un Chroot a un servicio en Linux se refiere que se va a crear una jaula a su alrededor, esto se hace para medidas de seguridad sobre todo en servidores que estn expuestos a Internet como es el caso de nuestros servidores DNS. Esto hace que el servicio se ejecute con su propio usuario dentro de directorios que no tienen privilegios de root para que si llegan a quedar comprometidos el atacante no pueda accesar a otros recursos del sistema. Para hacer el Chroot de Bind ejecutamos los siguientes pasos:
/etc/init.d/bind9 stop

Para detener el bind Luego apuntamos el archivo de configuracin al directorio que vamos a crear para el Chroot:
vim /etc/default/bind9

Puedes utilizar el editor de tu preferencia en cambio de vim (puede ser nano, emacs, etc) Y modificamos la lnea que dice OPTIONS="-u bind" por:
OPTIONS="-u bind -t /var/lib/named"

Luego creamos los directorios necesarios para el Chroot


mkdir mkdir mkdir mkdir -p /var/lib/named/etc /var/lib/named/dev -p /var/lib/named/var/cache/bind -p /var/lib/named/var/run/bind/run

Ahora movemos la configuracin del Bind de /etc a /var/named/etc:


mv /etc/bind /var/lib/named/etc

Creamos un link simblico entre la configuracin vieja y la nueva para no tener problemas cuando se actualice el Bind:
ln -s /var/lib/named/etc/bind /etc/bind

Luego creamos los dispositivos necesarios para la jaula:


mknod /var/lib/named/dev/null c 1 3 mknod /var/lib/named/dev/random c 1 8

Y por ltimo modificamos los permisos necesarios:


chmod 666 /var/lib/named/dev/* chown -R bind:bind /var/lib/named/var/* chown -R bind:bind /var/lib/named/etc/bind

Con esto ya creamos la Jaula y Bind tiene su propio espacio de directorios para sus procesos. Ahora debemos modificar sysklogd para que se registren (log) los eventos del Bind:
vim /etc/default/syslogd

Puedes utilizar el editor de tu preferencia en cambio de vim (puede ser nano, emacs, etc) Y modificamos la lnea que dice SYSLOGD="" por:
SYSLOGD="-a /var/lib/named/dev/log"

Ahora debemos modificar el archivo resolv.conf de nuestro servidor:


vim /etc/resolv.conf

Y agregamos la siguientes lneas (recuerda cambiar ejemplo.lan por tu nombre de dominio):


search ejemplo.lan nameserver 127.0.0.1

Reiniciamos el sysklogd:
/etc/init.d/sysklogd restart

E iniciamos el Bind:
/etc/init.d/bind9 start

Este procedimiento lo tenemos que repetir para el servidor secundario. Ahora vamos a configurar nuestros servidores.

Configurar Servidor Maestro


Ahora que tenemos el Bind9 instalado vamos a proceder a configurarlo, lo primero que vamos a hacer es decirle que envie las peticiones externas hacia el servidor DNS de nuestro ISP o hacia cualquiera que queramos, yo en lo personal utilizo OpenDNS. Para esto modificamos el archivo /etc/bind/named.conf.options:
vim /etc/bind/named.conf.options

Y descomentamos las lneas que dicen forwarders para que quede de la siguiente forma:
forwarders { 208.67.222.222 };

Recuerda utilizar la IP del DNS de tu ISP, tambin puedes utilizar la que est en el ejemplo ya que es la de OpenDNS. Luego vamos a crear nuestra zona que no es ms que lo que va a manejar nuestro dominio de ejemplo.lan para esto seguimos los siguientes puntos:
mkdir /etc/bind/zones/ vim /etc/bind/zones/master_ejemplo.lan

Luego dentro de este archivo colocamos la siguiente configuracin:


$TTL 3D @ serial 8H 2H 4W 1D ) ; TXT NS dominio localhost ns1 ns2 www ns2 10 mail A 127.0.0.1 A 192.168.249.1 A 192.168.249.2 CNAME ns1 NS MX ; Exchanger de Mail primario "Ejemplo.LAN, servicio de DNS" ns1 ; Direccion Inet del servidor de ; ; ; ; refrescamiento, en segundos reentrar, segundos expira, segundos minimo, segundos IN SOA ns1.ejemplo.lan. hostmaster.ejemplo.lan. ( 200808161 ; serial, fecha AAAA-MM-DD +

Este es un archivo de Zona bsico donde declaramos el dominio de ejemplo.lan, los servidores de dominio ns1 y ns2, adems declaramos como servidor www (servidor web) a ns1 pero podra ser cualquier otro servidor donde tengas instalado Apache o algn otro servidor Web. Ahora editamos el archivo /etc/bind/named.conf.local:
vim /etc/bind/named.conf.local

Y escribimos las siguientes lneas:


zone "ejemplo.lan" { type master; file "/etc/bind/zones/master_ejemplo.lan"; };

Ya con esto podemos probar nuestro servidor master a ver si funciona: /etc/init.d/bind9 restart ping ns1.ejemplo.lan Deberia responder nuestro servidor ns1, recuerda que el servidor debe tener una direccin IP fija y que no debe estar corriendo ningn cliente dhcp. Tambien podemos probar ejecutando: host ns1.ejemplo.lan Debera responder con la direccin de nuestro servidor. Por tilmo para configurar nuestro servidor master modificamos el archivo /etc/bind/named.conf.options y agregamos la siguiente lnea:
dnssec-enable yes;

Creamos una llave segura esto es para que la comunicacin entre el servidor master y el secundario sea encriptada.
dnssec-keygen -a hmac-md5 -b 128 -n host ejemplo.lan

Anota el resultado ya que lo utilizaremos tanto en el servidor MASTER como en el SECUNDARIO. Modificamos el archivo /etc/bind/named.conf y agregamos las siguientes lneas:
include "/etc/bind/rndc.key";

key "TRANSFER" { algorithm hmac-md5; secret "---HASHKEY---"; }; server 192.168.249.2 { keys { TRANSFER; }; }; Donde dice HASHKEY colocas la clave que generamos anteriormente. Y luego reiniciamos el servidor Bind: /etc/init.d/bind9 restart

Con esto ya tenemos configurado nuestro servidor master vayamos ahora con nuestro servidor secundario.

Configurar Servidor Secundario o Esclavo DNS


La instalacin del servidor Bind en el Secundario es exactamente igual que la del servidor Maestro, voy a mostrar slo los archivos de configuracin que necesitan modificacin:
mkdir /etc/bind/zones/ vim /etc/bind/zones/slave_ejemplo.lan

Luego dentro de este archivo colocamos la siguiente configuracin:


$TTL 3D @ serial 8H 2H 4W 1D ) ; TXT NS dominio localhost ns1 ns2 www ns2 10 mail A 127.0.0.1 A 192.168.249.1 A 192.168.249.2 CNAME ns1 NS MX ; Exchanger de Mail primario "Ejemplo.LAN, servicio de DNS" ns1 ; Direccion Inet del servidor de ; ; ; ; refrescamiento, en segundos reentrar, segundos expira, segundos minimo, segundos IN SOA ns1.ejemplo.lan. hostmaster.ejemplo.lan. ( 200808161 ; serial, fecha AAAA-MM-DD +

Esto es idntico al master solo que identificamos como slave al archivo. Luego modificamos el archivo: vim /etc/bind/named.conf.local Y escribimos:
zone "ejemplo.lan" { type slave; file "/etc/bind/zones/slave_ejemplo.lan"; masters { 192.168.249.1; }; allow-notify { 192.168.249.1; }; };

Luego modificamos:
vim /etc/bind/named.conf

Y agregamos las siguientes lneas

server 192.168.249.1 { keys { TRANSFER; }; };

Y repetimos lo que hicimos de ltimo con el servidor Maestro. Modificamos el archivo /etc/bind/named.conf y agregamos las siguientes lneas: include "/etc/bind/rndc.key"; key "TRANSFER" { algorithm hmac-md5; secret "---HASHKEY---"; }; server 192.168.249.1 { keys { TRANSFER; }; }; Donde dice HASHKEY colocas la clave que generamos anteriormente. Y luego reiniciamos el servidor Bind:
/etc/init.d/bind9 restart

Ya con esto tenemos configurado el servidor Esclavo o Secundario, ahora debes indicarle a tus PC que que estan son las direcciones de servidores DNS primario y secundario que deben utilizar y si quieres probar que uno funciona cuando el otro se cae puedes detener el bind en cualquiera de los dos. Espero que les haya servido este tutorial, cualquier duda, pregunta o sugerencia puedes dejar tu comentario y lo responder a la brevedad posible. Saludos Olivers Si quieres recibir notificaciones de cuando se publican nuevos artculos y tutoriales en Vensign por favor subscribete a nuestro boletn RSS. Otros artculos que te pueden interesar

You might also like