Publicado en debian

DNS hacer un servidor primario y secundario en Debian paso a paso con bind9

Voy a enseñar a hacer un servidor con Debian paso a paso.

(Si alguien la fastidia, en el virtualbox es recomendable hacer una instantánea para no fastidiarla y así volver atrás donde dejo la instantánea).

(Necesitamos 2 máquinas y para eso las llamaré usuario servidor y usuario cliente y las enseñare a hacer en virtualbox paso a paso).

bind9 incrementa el protocolo dns (para las consultas) y es el servidor de referencia para otras implementaciones.

dig sirve para saber la información que saco de la dns que estoy consultando.

Hay 2 zonas:

zona directa y zona inversa (haré las 2).

(usuario servidor)

1º Entramos con el usuario servidor.

Para tener Internet en virtualbox es necesario activarlo primero y para eso una vez que se ha puesto la ISO (el sistema operativo) hay que darle a:

1º botón derecho en la ISO que se tenga instalada.

2º darle a configuración.

3º después a «red» y dentro de «red» en el adaptador 1 tiene que estar habilitado «adaptar el adaptador de red».

4º A continuación en la pestaña «conectado a:» hay que darle a «NAT» para que tenga Internet la máquina virtual.

 

Estos son algunos comandos bind9:

Para la instalación de bind9: apt-get install bind9

Para iniciar el servicio bind9: systemctl start bind9

Para detener el servicio bind9: systemctl restart bind9

Para reiniciar el servicio bind9: systemctl reload bind9

Para saber si bind9 está funcionando: systemctl status bind9

Solo Ficheros principales de bind9

/etc/bind/named.conf es el fichero de configuración principal.

/etc/bind/named.conf.options especifica las opciones generales para el funcionamiento de la bind.

/etc/bind/named.conf.local es el fichero que tiene las opciones específicas para nuestra instalación.

/etc/bind/named.conf.default-zones contiene la definición de las zonas por defecto para la instalación (tiene las definiciones de localhost y de 127.0.0.1).

/etc/bind/db tiene los ficheros con definiciones de las zonas que ha instalado Debian.

Toda o casi toda la Configuración:

Los comentarios comienzan con doble barra: «//».

Los comentarios empiezan por punto y coma «;».

Las líneas acaban en « (punto y coma).

Las secciones se agrupan usando llaves «{ }».

Los archivos de zona tienen otro formato.

Los registros ocupan una sola línea.

Las variables se indican con el símbolo «$» (dólar).

Ahora empezaré

Para seguir hace falta tener el virtualbox en la red interna (se va como lo puse antes y en vez de elegir NAT se pone «red interna» (sin Internet ya que no quiero salir al exterior para el ejemplo ya que pondré ips privadas).

Obtener e Instalar el bind9

apt-get install bind9

Para poner ip fija en el servidor:

Entrar en: /etc/network/interfaces y poner por ejemplo:

etc.network.interfaces

Se tiene que reiniciar la red, que es la que hemos cambiado anteriormente con la ip fija.

Se pone el comando systemctl restart networking (tarda unos segundos, tened paciencia).

Una vez que hemos cambiado la ip si queremos verificado hay que darle a ifconfig

Para verificar que sale la ip fija que hemos puesto hay que poner en el terminal ifconfig.

ejemplo:

(Está puesta la foto de ejemplo para que se detecte donde está puesta la ip).

ifconfig

Para cambiar el dns, cada máquina tiene que tener 1 distinto.

A continuación hay que entrar en /etc/resolv.conf

ejemplo:

dns

DNS es por ejemplo cuando entramos en una página web (ejemplo http://www.google.es) si nos gusta la página tendríamos que aprendernos su IP, en vez de aprendernos su ip (ejemplo 255.255.255.255) como es más complicado, la dns lo cambia a nombres para que sea más cómodo identificar las páginas web.

Para cambiar el nombre del host

Ejemplo:

nombre del host servidor1 usuario1

Ahora para que se ponga «usuario1» hay que reiniciar. (es opcional cambiar lo que se tenga en /etc/hostname porque si se cambia en este caso saldría en la consola «root@usuario1)

En Fordwarders

Ahora necesitamos entrar en el servidor reenviador (forwarders) (cuando recibe una consulta, si no es capaz de resolverlo, se lo pregunta a otros servidores).

Para ello hay que entrar en /etc/bind/named.conf.options y donde pone forwarders poner 192.168.254.254.

Ejemplo:

forwarders

A continuación con el comando named-checkconf (dirección para comprobar) sirve para ver si está todo bien escrito (ejemplo: si falta un «;» ).

No hay problema si cometemos un fallo, se puede comprobar con named-checkconf (dirección que queremos comprobar)

Screenshot_20

Solemos cometer fallos y para eso está el named-checkconf, para corregirlo diciéndole donde están los fallos (en el ejemplo anterior el fallo era el punto y coma «;»).

Al poner el punto y coma correctamente como se puede comprobar no sale ningún fallo.

named-checkconf sin fallo

Aplicar cambios

Como hemos hecho unos cuantos cambios usamos systemctl restart bind9 para que se reinicie y se apliquen los cambios.

Resolución directa:

(En la zona directa le da el nombre a partir de la ip).

Para cambiar la zona de resolución directa hay que entrar en:

/etc/bind/named.conf.local

Ejemplo:

Resolución directa

zone «usuario1.ejemplo» es el nombre que le queramos poner.

Interfiere el type master se refiere que es el servidor principal.

File «/etc/bind/db.usuario1.ejemplo» es la ruta que crearemos ahora.

allow-transfer se refiere a donde queremos enviar los datos en el caso de que la anterior máquina no tenga la cache dns de algún dato que alguien busque.

10.0.8.237 se refiere a la ip que enviará los datos.

Después de hacer lo anterior tenemos que crear la dirección

/etc/bind/db.usuario1.ejemplo

(Dentro de /etc/bind, copiamos el archivo «db.local«, le damos a pegar, y lo único que ahora hay que hacer es modificar los registros de abajo que están en rojo a la hora de modificar «db.usuario1.ejemplo«).

Screenshot_6

Para verificar que la ruta está bien puesta (me refiero a la ruta «/etc/bind/db.usuario1.ejemplo») sin fallos de sintaxis hay que poner:

named-checkzone localhost (ruta del archivo)

Screenshot_4

Es importante poner donde está, por eso se pone «localhost» (refiriéndose al propio ordenador).

Si todo ha salido bien te tiene que salir un «ok».

Screenshot_5

A continuación esta parte la pondré de ejemplo (en db.usuario1.ejemplo) pero hay que añadir los registros que cada uno necesite (registro A,  MX, CNAME…) es decir que cada uno la modifica como quiera, yo voy a poner un ejemplo solamente.

Ahora que ya la hemos creado entramos y ponemos:

(Donde pone «MX 1» el 1 se refiere que es el servidor que manda)

Screenshot_2

En «ns1.usuario1.ejemplo.» he puesto el «.» porque ahí se acaba (si no pusiera el punto seguiría. Ejemplo: ns1.usuario1.ejemplo.continua.bastante) (se añade el punto para decirle que no siga)

Nos tenemos que fijar en los nombres @ A IN NS MX CNAME

@ Se refiere que se los envía a todos.

A se refiere al host (asocia el nombre de dominio con la ip)

IN se refiere a Internet

NS se refiere al servidor de nombres

MX se refiere al servidor de correo y el 1 se refiere al número de mi servidor

CNAME es el alias que va a llevar mi dirección

Ahora para dar de alta una zona hay que poner:

systemctl restart bind9

o

systemctl reload bind9

Para verificar que todo funciona correctamente es aconsejable poner systemctl status bind9 y te dirá en rojo, los fallos y la dirección.

(cuando está bien te sale (all zones loaded) y abajo sale «running).

Para verificar que todo está correctamente después de reiniciar el bind9 y ver que supuestamente todo está correcto, es aconsejable usar «nslookup» para verificar que todo está bien.

Veremos como se usa nslookup:

Como se puede ver en la imagen de abajo hay que entrar en el terminal y poner nslookup

Screenshot_1

Después hay que poner «set query=ANY» para verificar que todo está correctamente y te tiene que salir algo como esto (si no te sale es que hay algo mal)

screenshot_3.png

Ya se acabó la zona directa

AHORA LA ZONA INVERSA

(Seguimos con usuario1).

Ahora tenemos que activar la zona inversa, para ello vamos a:

/etc/bind/named.conf.local

Y añadimos la segunda fila (recordad que en la primera fila tenía esto).

Resolución directa

Todo junto quedaría así:

resolucion inversa

named-checkconf /etc/bind/named.conf.local para ver si está bien escrito lo de dentro de ese archivo. (si no sale nada es que está bien la sintaxis y si hay algo mal hay que arreglar el fallo).

Screenshot_8

Es hora de crear el archivo de la zona inversa (/etc/bind/db.10.0.8).

Screenshot_7

Se copia un archivo, se pega y se pone algo como esto (similar) (hay que modificar lo que está en rojo).

¿Cómo saber si se tiene bien la parte inversa?

Hay que poner la ip y tiene que salir como en la foto de abajo.

Screenshot_15

Para descubrir la parte inversa hay que poner la ip (en este caso 10.0.8) y el número que se pone en la parte inversa como se puede comprobar en la parte de arriba (la ip 10.0.8.5).

screenshot_161.png

AHORA EL USUARIO2

(Usaré otro Debian como usuario2).

Resolución directa e inversa

(Se sigue usando la red «red interna» para el ejemplo).

Ahora se abre otra máquina en virtualbox que sería el usuario2.

Instalando bind9 (para instalarlo hay que tener Internet)

En la consola poner: apt-get install bind9.

Poniendo ip fija en el cliente

Entrar en /etc/network/interfaces para ponerle la ip fija.

Ejemplo:

ip fija usuario2

nombre del host

/etc/hostname

nombre del host usuario2

cambiar servidor dns

Hay que entrar en /etc/resolv.conf

Ejemplo:

cambio servidor dns

Hay que entrar en el  fichero /etc/bind/named.conf.local para que el usuario1 se comunique con el usuario2.

Ahora hay que añadir las 2 zonas (directa e inversa).

(La ip 10.0.8.5 se refiere que le envía los datos al servidor que tiene esa ip)

Ejemplo:

zona directa e inversa usuario2

En la zona directa de «db.usuario1.ejemplo» solo hay que modificar lo que está en rojo.

Screenshot_11

En la zona inversa de «db.10.0.8» solo hay que modificar lo que está en rojo.

Screenshot_17

Comprobemos la zona directa e inversa con nslookup

zona directa:

Tiene que salir la ip de la zona directa pero con la ip del cliente y los datos del servidor «usuario1.ejemplo«

Screenshot_18

zona inversa

Para saber la zona inversa del cliente hay que poner la ip del servidor (10.0.8.5) y automáticamente sale la ip del cliente y se verifica que está todo correctamente.

Screenshot_19

Si hay algún fallo journalctl -f  te lo dice o systemctl status bind9

Por último, para ver si todo está bien hay que entrar en /var/cache/bind y se tienen que crear solos 2 archivos binarios (db.usuario1.ejemplo y db.10.0.8)   que has creado antes (las transfiere del usuario1 al usuario2). (en la dirección /var/cache/bind).

(Para que funcione tienen que tener las 2 máquinas virtualbox abiertas a la vez para que se comuniquen).

Con el cliente después de poner systemctl restart bind9 se tiene que comprobar que se han copiado correctamente en /var/cache/bind y como se puede comprobar están los 2 archivos copiados en el cliente

Screenshot_12

Si se quiere verificar que todo está correctamente, se puede visualizar lo que hay dentro de cada 1. (se puede visualizar con el comando «cat» pero está encriptado y no se puede abrir).

Veamos el ejemplo con db.usuario1.ejemplo (en el caso de que haya salido correctamente se tiene que poder visualizar usuario1.ejemplo)

screenshot_14.png

Veamos el ejemplo con db.10.0.8 (en el caso de que haya salido correctamente se tiene que poder visualizar usuario1.ejemplo pero con in-add.arpa que se refiere al inverso).

Screenshot_13

Espero que os guste, un saludo a todo el mundo y si os ha gustado comentarlo.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.