En este capítulo empezamos a crear un servidor DNS en Linux (empezamos con la instalación) para que veas de primera mano el funcionamiento del mismo, conocer esto te ayudará a saber mejor como defenderlo y como los atacantes preparan los ataques.
Crear un servidor DNS en Linux – Instalación – Introducción al hacking con Kali Linux – Capítulo 16
Tipos de servidores DNS
Contamos con tres tipos de servidores DNS, servidores DNS primarios, secundarios y caché.
El servidor DNS primario es el que va a contener los archivos de configuración del dominio y responde a las consultas DNS.
El servidor DNS secundario es una copia del servidor primario. Está de respaldo. El servidor primario, a medida que cambie, irá enviando las actualizaciones al servidor secundario.
El almacenamiento en caché sirve para guardar respuestas DNS que ya se han preguntado, de esa forma, podemos tener resuelta una consulta sin preguntar al servidor principal o secundario.
Descargar e instalar bind en Linux
Lo primero que vamos a hacer es realizar la instalación de bind. Te puedes poner como usuario root.
Antes de empezar, debes tener una IP estática configurada. Esto lo expliqué en el capítulo 9.
Vamos a actualizar:
apt-get update
apt-get install bind9
Te pedirá confirmación. Introduce una «s».
Te preguntará si puede detener algunos servicios. Deberás darle a <yes>.
Iniciar el servicio DNS
Una vez completada la instalación puedes iniciar el servicio.
systemctl start named
Inicio automático para el servicio DNS
Si quieres que el servicio se inicie automáticamente con el sistema, introduce lo siguiente:
systemctl enable named
Comprobar servicios en ejecución en Linux
systemctl | grep running
Con esto te aparecerán un montón de servicios en ejecución. El que te interesa ver en este momento, es BIND Domain Name Server.
Configurar el servidor DNS
En la carpeta bind tienes los archivos necesarios para configurar el servidor DNS.
Con el comando ls y la opción -l puedes listar todos los archivos con algunos detalles. Fíjate que algunos archivos pertenecen a un usuario llamado bind que se ha creado con la instalación de bind.
ls -l /etc/bind
La configuración primaria del servicio DNS está en el archivo /etc/bind/named.conf.
Puedes editarlo con diversas herramientas. Yo voy a utilizar nano. Para editar este archivo, hazlo así:
nano /etc/bind/named.conf
Se abrirá el archivo. Los comentarios que empiezan por «//» son ignorados, son solo informativos. El único contenido que hay aquí es la inclusión (lo hace con include) de tres archivos de configuración del servidor. Cada archivo se escribe con su ruta entre comillas y termina con un punto y coma.
Pronto veremos para que sirve cada archivo. Antes de seguir, vamos a configurar una IP estática para que todo funcione como es debido.
Archivo de configuración TCP/IP en Linux
Te mostré de forma básica como podías hacerlo en el capítulo 12 . Esta vez lo vamos a hacer de otra forma y con alguna cosa extra.
Abre y edita el archivo interfaces.
nano /etc/network/interfaces
Añade las siguientes líneas. La dirección IP 192.168.1.10 es la que va a tener la máquina servidor DNS (es en la que estoy realizando todo esto). Puedes ponerle la que quieras, pero respeta la puerta de enlace (gateway) y ten en cuenta que si la cambias, cámbiala también en dns-nameservers, que sea la misma que address.
En dns-search pondremos el nombre de dominio que queramos. Este no se tiene porqué corresponder con ninguno de internet.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.10
dns-search pcmasterpf.com
Recuerda que para guardar cualquier cambio en nano, tienes que pulsar CTRL + O y pulsar la tecla enter. Si pone x líneas escritas es que se ha guardado correctamente. Para cerrar el archivo y volver a la Terminal, CTRL + X.
Reinicia el servicio de red para que los cambios tomen efecto.
service networking restart
En mi caso, la interfaz de red se llama eth0, puede que la tuya sea diferente. Puedes comprobarlo con el comando ifconfig.
ifconfig
En la parte marcada en verde saldrá el nombre de tu interfaz de red. Ignora la que pone «lo», esa es tu dirección local.
Si tienes problemas con el networking restart, puede ser porque tienes modificada la configuración TCP/IP desde la interfaz gráfica. Dirígete a ella y en la pestaña IPv4 elimina la IP que tengas, déjalo limpio.
Si aún así tienes problemas para que se te cambie la IP, reinicia la máquina o pon el siguiente comando:
service NetworkManager restart
Ahora, comprobemos si el archivo «resolv.conf» se ha generado correctamente. No hay que tocar nada aquí, por lo tanto, utilizaremos «cat» para ver el contenido en el Terminal.
cat /etc/resolv.conf
Dejamos aquí la parte de la instalación. Continuamos con la configuración en el siguiente capítulo.
He llegado hasta el final, y a la hora de comprobar el archivo resolv.conf, me devuelve:
# Generated by NetworkManager
nameserver 192.168.157.252