Sunteți pe pagina 1din 10

Instalar un servidor DNS domstico en Debian GNU/Linux

Hoy os quiero contar cmo instalar un servidor DNS domstico en nuestro sistema Debian GNU/Linux. Algunos os preguntaris, para qu diablos quiero un servidor DNS en mi red local? Muy buena pregunta, por cierto ;-) La respuesta es sencilla. Se trata de tener en nuestra red local la facultad de acceder a nuestros equipos mediante su nombre de red en lugar de su direccin IP local, y cuando digo equipos, me refiero a todo aquel dispositivo que pueda conectarse a Internet a travs de nuestra red local, como un ordenador, un mvil, un tablet, una televisin, una consola de videojuegos, una impresora, etc. Cada vez es ms comn entre nosotros tener varios equipos interconectados entre s, ms an si disponemos de un ordenador en el que alojamos todos nuestros datos, y habitualmente conectamos nuestro smartphone, tablet u ordenador porttil a este ordenador para enviar o recibir datos de cualquier tipo, como por ejemplo msica o vdeos. Bueno, pero qu es un servidor DNS? En muy pocas palabras, es un servidor que traduce o resuelve direcciones IP, muy difciles de aprender para las personas, en nombres de red fciles de recordar. Bien, qu ventajas puede aportarnos tener un servidor DNS en nuestra red local? De entre todas las que hay, mi favorita es la comodidad de no tener que aprenderme las direcciones IP de todos mis dispositivos conectados, que a da de hoy no son pocos. Adems, nuestro servidor DNS podr resolver direcciones IP que no pertenezcan a nuestra red local, pudiendo resolver tambin las direcciones IP de Internet, por tanto podremos utilizar este servidor DNS como DNS principal en todos nuestros equipos. Cuando un cliente haga una consulta de DNS, este la resolver por s solo si conoce el nombre por el que se le ha preguntado, y si no lo conoce entonces redirigir la consulta a otro servidor que s lo conozca. El servidor DNS que vamos a montar est fuertemente enfocado a ser utilizado en un entorno domstico, pero su configuracin es perfectamente extrapolable a cualquier entorno de ms envergadura. No obstante debemos de tener en cuenta algo importante para la implementacin del servidor DNS. Debe quedar claro que el servidor DNS no asigna direcciones IP a los dispositivos que se conectan, de eso se encarga un servidor DHCP como el que incorporan los routers de las ADSL o el propio servidor DHCP del sistema operativo, en caso de que tengamos uno. Nuestro servidor DNS no ser ms que una base de datos a la que nuestros equipos le preguntarn de forma transparente al usuario la direccin IP que corresponde a un equipo en concreto.

Por tanto, y dado que lo habitual es que tengamos un servidor DHCP activado en nuestra red local, creo que el problema se ve por s solo. Si el servidor DHCP asigna a un dispositivo una direccin IP distinta a la que tenemos registrada, algo muy frencuente si tenemos ms de un equipo conectado, nuestro servidor DNS no conocer la nueva direccin IP, y cada vez que le pregunten por esa direccin, l ofrecer la anterior, y por tanto, la incorrecta. As pues, queda patente que cada dispositivo conectado siempre debe tener la misma IP. De qu forma se consigue esto? Bien, que yo conozca hay dos. La primera de ellas es configurar nuestro servidor DHCP para que asigne siempre las mismas direcciones IP a los mismos dispositivos. Todo servidor DHCP incorpora la funcin de hacer reservas de direcciones IP. Esto es posible gracias a la direccin fsica de la tarjeta de red del dispositivo que se conecta, o la direccin MAC como se le llama oficialmente. Esto es, configuramos el servidor DHCP de forma que a cada direccin fsica se le asigne siempre la misma direccin IP. Por tanto, si es tu forma elegida, no tienes ms que acceder a la configuracin de tu router y configurar el servidor DHCP para que haga reservas de direcciones IP asociadas a las direcciones fsicas de tus dispositivos. Sin duda alguna, esta es la forma recomendada para cualquier usuario. Sin embargo, y dado que debo tener inclinaciones masoquistas (xD) yo he escogido la segunda opcin. Ni ms ni menos, esta opcin consta de prescindir totalmente de un servidor DHCP. Cmo nos conectamos entonces a nuestra red? Sencillo, estableciendo manualmente las direcciones IP en cada uno de los dispositivos que se conectan. Antes de que me acribillis, dejad que me explique ;-) Es cierto que puede ser tedioso establecer manualmente las direcciones IP, pero pensad que esto nos ofrece un elemento de seguridad adicional si tenemos una red inalmbrica. Si por alguna de aquellas alguien consiguiera colarse en nuestra red inalmbrica, nuestro servidor DHCP le ofrecera en bandeja la llave de acceso a nuestra red, ya que le estara proporcionando una direccin IP para conectarse. Al no haber servidor DHCP, digamos que se lo ponemos un poquto ms difcil. A todo esto, es evidente que para que esto funcionara, el rango de direcciones de nuestra red local tendra que ser distinto al que proporciona el router por defecto, pero eso es otra historia ;-) No obstante, reconozco que soy un poco paranoico en lo que a seguridad y control se refiere. Sin la menor duda, yo os recomiendo usar el primer mtodo, que es de lejos el ms cmodo. Una vez claros los trminos, nos ponemos manos a la obra.

En GNU/Linux tenemos disponible el ms famoso y utilizado de todos los servidores DNS, Bind. En nuestro sistema Debian GNU/Linux y derivados, lo instalaremos as: $ sudo aptitude install bind9

Una vez instalado, procederemos a configurar las zonas de autoridad que va a

gestionar $

nuestro sudo

servidor.

Para

ello

modificamos

el

siguiente

fichero:

nano

/etc/bind/named.conf.local

En este fichero vamos a aadir dos zonas, una para la resolucin directa y otra para la resolucin inversa. La zona de resolucin directa vendr determinada por el nombre de zona, que puede ser uno de nuestra invencin, en mi caso es casita.com. La zona de resolucin inversa ser la que nos permitir traducir direcciones IP en nombres de red, algo muy til en determinadas ocasiones. Esta zona vendr determinada por el rango de direcciones IP de nuestra red local. As pues, aadimos ambas zonas al fichero de la forma en que os muestro aqu: zone "casita.com" { type master; file "/etc/bind/zones/db.casita.com"; }; zone "10.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/rev.10.168.192.in-addr.arpa"; }; He marcado en negrita lo que debemos modificar personalmente con nuestros propios datos, concretamente el nombre de la zona (casita.com), el rango de direcciones IP y los ficheros asociados. En mi caso el rango es 192.168.10.x, pero como podis ver debe ponerse de forma inversa y omitiendo el ltimo dgito. La cosa debera quedar como esto:

Bien, ahora debemos crear los dos archivos a los que hacemos referencia en el fichero anterior. $ $ $ $ Ahora $ $ cd sudo sudo sudo vamos cp cp a sudo db.127 modificar cd nano /etc/bind/ mkdir zones db.local zones/db.casita.com zones/rev.10.168.192.in-addr.arpa el primer fichero creado:

zones/ db.casita.com

En este fichero aadiremos la lista de todos nuestros dispositivos con sus respectivas direcciones IP, haciendo las modificaciones pertinentes. Primero modificaremos el campo SOA (Start of Authority) que hace referencia al servidor de nombres con autoridad en la zona y a la cuenta de correo del administrador encargado de administrarla, donde la arroba es reemplazada por un punto. As pues nosotros dejaremos la lnea relativa al campo SOA como sigue, prestando especial atencin a no borrar los puntos finales:

IN

SOA

casita.com.

root.casita.com. (

Despus modificaremos el campo NS que hace referencia al servidor de nombres de la zona. Por tanto dejaremos la lnea as, sin olvidar tambin el punto del final: @ IN NS ekipotonety.casita.com.

Y despus ya podremos aadir los registros A (de direccin) que se correspondern con los dispositivos conectados a nuestra red, como primer ejemplo el mismo ordenador que hace de servidor DNS: ekipotonety IN A 192.168.10.2

Al aadirlos todos, el fichero debera quedar similar a este:

Ahora vamos a modificar el fichero de resolucin inversa: $ sudo nano rev.10.168.192.in-addr.arpa Este fichero tiene la misma estructura que el anterior, por tanto debemos modificar prcticamente las mismas cosas, empezando por el registro SOA y el registro NS, dejndolos exactamente igual que en el fichero anterior.

Lo que cambia en este fichero es que en vez de utilizar registros A utilizaremos registros PTR para resolver las direcciones IP en nombres de dominio. As pues, para el primer registro PTR, que coincidir tambin con el propio servidor DNS, aadiremos la siguiente lnea: 2 IN PTR ekipotonety.

Ntese que en la primera columna hemos puesto el ltimo dgito de la direccin IP de ese equipo. En este caso, puesto que el ordenador llamado ekipotonety tiene la direccin IP 192.168.10.2, pondremos el nmero 2 por ser el ltimo dgito. Y adems no debemos olvidarnos de los puntos que hay al final de cada nombre de host. Cuando terminemos, nuestro fichero quedara ms o menos as:

Bien, con esto ya tenemos definidas las dos zonas. Ahora vamos a modificar nuestro servidor DNS para que redirija las peticiones a otro servidor DNS cuando no pueda resolver una peticin. Para ello modificamos el siguiente archivo:

$ sudo nano /etc/bind/named.conf.options Aadiremos pues los servidores DNS que nos interesen, ya sea los que nos proporciona nuestro ISP u otros cualesquiera, como por ejemplo los de Google o los de OpenDNS. En mi caso prefiero los de OpenDNS: forwarders { 208.67.222.222; 208.67.220.220; }; Y el fichero, una vez completado, quedara as:

Por ltimo, reiniciaremos el servicio bind9 para hacer efectivas las modificaciones que hemos hecho: $ sudo /etc/init.d/bind9 restart

Con esto habremos terminado de configurar el servidor DNS propiamente dicho. Ahora nos queda configurar los equipos que se conectan a nuestra red para que hagan uso de este servidor DNS. Empecemos por configurar el ordenador que hace de servidor DNS. Es evidente que su configuracin depender del modo en que est gestionada la conexin de red, pero en esencia ser similar para todos. Si usamos un gestor de redes grfico como por ejemplo Network Manager o Wicd, lo nico que tendremos que cambiar es el servidor DNS de la conexin que estemos usando, sustituyendo la direccin del DNS por la de nuestro servidor:

En este caso, como el ordenador que estamos configurando es a la vez el propio servidor DNS, se establece que para consultas DNS se pregunte a s mismo. Por tanto redirigimos las consultas DNS a la direccin 127.0.0.1. Y para el resto de equipos que se conecten a nuestra red haremos lo mismo pero cambiando la direccin del DNS por la que tendr nuestro servidor en la red, en este caso 192.168.10.2. Si por el contrario no usamos un gestor de redes grfico, tendremos que modificar el fichero /etc/resolv.conf aadiendo la lnea nameserver 192.168.10.2, cambiando la direccin IP del DNS por la que corresponda en nuestro caso. Con esto ya tendremos configurado nuestro servidor DNS domstico. Ahora slo nos queda probar que funciona. Para ello podemos, por ejemplo, consultar la direccin IP de nuestro servidor DNS desde el propio servidor o desde cualquier otro equipo conectado a la red y configurado adecuadamente para que haga uso del servidor DNS: $ host ekipotonety.casita.com ekipotonety.casita.com has address 192.168.10.2 Ntese que para hacer la consulta debemos usar el nombre completo, es decir, el nombre de host seguido del dominio. Podemos por ejemplo solicitar la direccin IP de nuestro smartphone: $ host movil.casita.com movil.casita.com has address 192.168.10.4 Y para probar la resolucin inversa, podemos proceder as: $ host 192.168.10.2 2.10.168.192.in-addr.arpa domain name pointer ekipotonety. $ host 192.168.10.4 4.10.168.192 in-addr.arpa domain name pointer movil. Como vemos, el servidor DNS nos resuelve tanto la consulta directa como la inversa, esto demuestra que funciona perfectamente. Con nuestro servidor DNS funcionando ya podemos hacer uso de l en los dems dispositivos que se conecten a la red, de tal forma que exista resolucin interna de nombres y la navegacin por la web vaya considerablemente ms fluida. Adems, cada vez que queramos acceder a un dispositivo de nuestra red podremos hacerlo a travs de su nombre completo, por ejemplo cuando queramos montar un recurso Samba o NFS, o conectarnos a un servidor SSH, por ejemplo.

As que, sin ms que aadir, me despido con un saludo.

S-ar putea să vă placă și