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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/etc-network-interfaces.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/ifconfig1.png)
Para cambiar el dns, cada máquina tiene que tener 1 distinto.
A continuación hay que entrar en /etc/resolv.conf
ejemplo:
![dns](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/dns.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/nombre-del-host-servidor1-usuario1.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/forwarders.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2018/06/screenshot_201.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/named-checkconf-sin-fallo.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/resolucic3b3n-directa1.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_6.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_4.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_5.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_21.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_12.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_3-e1529596215368.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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/resolucic3b3n-directa1.png)
Todo junto quedaría así:
![resolucion inversa](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/resolucion-inversa.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_81.png)
Es hora de crear el archivo de la zona inversa (/etc/bind/db.10.0.8).
![Screenshot_7](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_7.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2018/06/screenshot_151.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2018/06/screenshot_161-e1529945105258.png?w=615)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/ip-fija-usuario2.png)
nombre del host
/etc/hostname
![nombre del host usuario2](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/nombre-del-host-usuario2.png)
cambiar servidor dns
Hay que entrar en /etc/resolv.conf
Ejemplo:
![cambio servidor dns](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/cambio-servidor-dns.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/zona-directa-e-inversa-usuario2.png)
En la zona directa de «db.usuario1.ejemplo» solo hay que modificar lo que está en rojo.
![Screenshot_11](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_111.png)
En la zona inversa de «db.10.0.8» solo hay que modificar lo que está en rojo.
![Screenshot_17](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2018/06/screenshot_172.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2018/06/screenshot_181.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2018/06/screenshot_191.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_121.png)
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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_14-e1529597198545.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](https://elrincondemuchascosas.wordpress.com/wp-content/uploads/2017/10/screenshot_13.png)
Espero que os guste, un saludo a todo el mundo y si os ha gustado comentarlo.