Crear nuestro propio servidor de DNS para mejorar tu navegación

por Javier Rodríguez 17/02/2015 3

BIND es un servidor de DNS gratuito que da vida a casi todos los servidores de DNS de Internet que podemos encontrar pero lo que no es muy habitual es verlo montado en máquinas Windows. Es un servidor muy estable, eficiente y funciona también de maravilla en este entorno. Esto nos permitirá correrlo en una de nuestras máquinas Windows sin tener que entrar en sistemas virtualizados, que tampoco es mala idea, o máquinas dedicadas Linux.

Lo primero que necesitaremos es bajar la versión BIND de Windows que se ajuste a las capacidades de nuestro sistema, si es de 64-Bit, es recomendable que bajemos dicha versión en su última versión estable. En cualquier caso aquí encontrareis todas las versiones disponibles. Descargamos el archivo, lo descomprimimos y ejecutamos el instalador en modo administrador pulsando botón derecho sobre el archivo “BINDinstall.exe” y usando el modo “ejecutar como administrador”.

El instalador es sencillo pero tiene cosas importantes a configurar. Yo siempre soy partidario de dejar las rutas por defecto pero podéis elegir la que queráis y no deberías tener problemas de ejecución salvo tener en cuenta la ruta en los archivos de configuración que vamos a generar y en la ruta de ejecución de los comandos que necesitamos usar. Deberemos introducir una clave para el usuario del servicio, es indispensable, y también usaremos las opciones “Automatic Startup” y “Keep Config Files After Uninstall”. Ambas están por defecto señaladas pero son importantes para poder mover nuestras configuraciones a otras máquinas y para que el servicio se inicie solo cada vez que arrancamos Windows aunque, como veremos en un próximo truco, esto es modificable a posteriori. Instalamos y acabado el proceso cerramos el instalador.

Los siguientes pasos los daremos con una consola de comandos en modo administrador. Abierta la ventana de comandos nos dirigiremos a la carpeta donde hemos instalado BIND. Dentro encontraremos dos carpetas, etc y bin, entramos en bin y ejecutamos el comando “rndc-confgen –a”. Esto crea la “key” necesaria para la comunicación encriptada del servidor con otros servidores de cabecera. Se crea en la carpeta “etc” y ahí es donde vamos ahora.

BIND necesita un archivo de configuración para su ejecución. Nosotros usaremos los comandos básicos para tener un log, que el servidor responda a cualquier interfaz de nuestro ordenador y por tanto tenga una salida local que podamos aprovechar en toda la red. También le configuraremos un par de servidores de “reenvío” que habremos seleccionado antes buscando los mejores con “DNS Benchmark. Esto nos sirve para que nuestro servidor, si no conoce una IP de un nombre de dominio, no tenga que irse a los servidores principales de DNS aumentando los tiempos de latencia. Así irá primero a servidores cercanos, potentes y fiables, que nos darán una respuesta mucho más rápida. Hay que tener en cuenta que esto, si cambia una IP de un registro de dominio, también retrasará nuestra actualización de esos cambios puesto que se tienen que propagar también por esos servidores que usamos de lanzaderas. Para generar el archivo de configuración podemos lanzar el comando “notepad named.conf”. Hay que crearlo, os lo recuerdo, dentro de la carpeta “etc”.

No voy a entrar en detalles puesto que en este archivo podemos hacer cosas muy complejas. Os dejo mi archivo de configuración por si lo queréis usar directamente o copiar. Básicamente lo que hacemos es definir las rutas del programa, configurar los servidores de reenvío de consultas (yo he elegido uno de Movistar y otro de Google), habilitar la respuesta en cualquier interfaz de red del PC que hace de servidor y, aunque no es absolutamente necesario, habilitamos el modo recursivo en la red local. Lo demás son configuraciones para generar un log por si tenemos que diagnosticar algún fallo. Grabamos. Si hacemos esto en la misma sesión de administrador no tendremos problemas de permisos para grabar el archivo. Por eso lanzamos “notepad” desde línea de comandos.

Es el momento de iniciar el servicio y de configurar el firewall de nuestro sistema para que nuestro servidor DNS sea accesible a toda la red. Primero iniciaremos el servicio. Podemos hacerlo desde el “administrador de tareas” o desde el “administrador de equipos” en la sección de “servicios y aplicaciones”. Seguramente lo encontraremos con el nombre “ISC BIND”. Lo iniciamos. No debería dar problemas con mi archivo de configuración pero si tenéis dificultades no dudéis en usar nuestro foro e intentaremos echar un cable.

Iniciado el servicio lo adecuado ahora es abrir “named.exe” en el firewall del sistema. Es el método más rápido para poder hacer consultas desde otra máquina aunque también podemos abrir los puertos TCP y UDP 53 y 953. Para abrir el Firewall crearemos una “regla de entrada” enlazada al ejecutable “named.exe” que encontraremos en la carpeta “bin” de instalación. Hecho esto es el momento de introducir la IP de nuestro servidor DNS BIND en “DNS Benchmark” y probar sus capacidades.

 

Si todo va como se espera ahora nuestro servidor debería ser el DNS más rápido al que tenemos acceso. En nuestras pruebas es más rápido incluso que el que generamos en su momento en un NAS Synology DS1815 que es uno de los más potentes de la marca. Nuestro servidor DNS está alojado en un portátil que usamos, de chico para todo, con un procesador Core i5 480M, 6GB de RAM, y conectividad Ethernet Gigabit.

La IP 192.168.1.22 es nuestro nuevo servidor DNS local, la ip 192.168.1.2 es la que usábamos anteriormente también de forma local con un Synology DS1815 como servidor. 


Tags: Software