Instalación y configuración de un servidor DNS esclavo
El servidor DNS actual funciona como DNS maestro. Vamos a instalar un nuevo servidor DNS que va a estar configurado como DNS esclavo del anterior, donde se van a ir copiando periódicamente las zonas del DNS maestro. Suponemos que el nombre del servidor DNS esclavo se va llamar tusapellidos.iesgn.org
.
- Realiza la instalación del servidor DNS esclavo.
- Comprueba si las zonas definidas en el maestro tienen algún error con el comando adecuado.
- Comprueba si la configuración de named.conf tiene algún error con el comando adecuado.
- Reinicia los servidores y comprueba en los logs si hay algún error. No olvides incrementar el número de serie en el registro SOA si has modificado la zona en el maestro.
- Configura un cliente para que utilice los dos servidores como servidores DNS.
En primer lugar tenemos que cambiar el nombre a nuestro servidor dns esclavo. Para ello tenemos que modificar los ficheros /etc/hosts
y /etc/hostname
. Tras esto, si ejecutamos el comando hostname -f
, debería mostrarnos lo siguiente:
A continuación, instalamos el servidor dns con el siguiente comando:
apt install bind9
Una vez instalado vamos a tener que configurar los dos servidores, tanto el maestro como el esclavo, para que funcionen como tales:
- En el servidor maestro:
Vamos a modificar primero la configuración global para dotar de más seguridad a nuestro servidor dns:
nano /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
allow-query { 192.168.121.0/24; };
allow-transfer { none; };
auth-nxdomain no; # conform to RFC1035
recursion no;
dnssec-validation auto;
listen-on-v6 { any; };
};
acl slaves {
192.168.121.35; // parralesgarcia
};
Las directivas más importantes del fichero anterior son las siguientes:
allow-query { 192.168.121.0/24; };
: Red desde donde podemos realizar consultas al DNS.allow-transfer { none; };
: Con este parámetro restringimos la transferencia de zonas a Servidores DNS esclavos que no estén autorizados. Esta es una buena medida de seguridad, ya que evitamos que personas ajenas se enteren de las direcciones IP que están dentro de la zona de DNS de un dominio.acl slaves { 192.168.121.35; };
: Listado de acceso (access list) de los servidores de DNS esclavos.
Ahora modificamos la configuración del fichero /etc/bind/named.conf.local
, para añadir el rol de maestro:
nano /etc/bind/named.conf.local
include "/etc/bind/zones.rfc1918";
zone "iesgn.org" {
type master;
file "db.iesgn.org";
allow-transfer { slaves; };
notify yes;
};
zone "121.168.192.in-addr.arpa" {
type master;
file "db.121.168.192";
allow-transfer { slaves; };
notify yes;
};
Después modificamos las zonas de resolución directa y de resolución inversa:
nano /var/cache/bind/db.iesgn.org
$TTL 86400
@ IN SOA dparrales.iesgn.org. root.iesgn. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dparrales.iesgn.org.
@ IN NS parralesgarcia.iesgn.org.
@ IN MX 10 correo.iesgn.org.
$ORIGIN iesgn.org.
dparrales IN A 192.168.121.176
parralesgarcia IN A 192.168.121.35
correo IN A 192.168.121.200
ftp IN A 192.168.121.201
cliente1 IN A 192.168.121.35
www IN CNAME dparrales
departamentos IN CNAME dparrales
nano /var/cache/bind/db.121.168.192
$TTL 86400
@ IN SOA dparrales.iesgn.org. root.iesgn. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dparrales.iesgn.org.
@ IN NS parralesgarcia.iesgn.org.
$ORIGIN 121.168.192.in-addr.arpa.
176 IN PTR dparrales.iesgn.org.
35 IN PTR parralesgarcia.iesgn.org.
200 IN PTR correo.iesgn.org.
201 IN PTR ftp.iesgn.org.
- En el servidor esclavo:
En el servidor esclavo solo debemos modificar el fichero /etc/bind/named.conf.local
:
nano /etc/bind/named.conf.local
include "/etc/bind/zones.rfc1918";
zone "iesgn.org" {
type slave;
file "db.iesgn.org";
masters { 192.168.121.176; };
};
zone "121.168.192.in-addr.arpa" {
type slave;
file "db.121.168.192";
masters { 192.168.121.176; };
};
En último lugar, debemos reiniciar el servicio de bind9
primero en el servidor maestro y después en el esclavo:
systemctl restart bind9
Si todo ha ido bien podemos comprobar que la transferencia de ha realizado si examinamos el fichero /var/log/syslog
:
Como podemos ver, la transferencia se ha realizado correctamente.
Ahora vamos a mostrar diferentes comandos y comprobaciones para demostrar que el servidor dns funciona correctamente:
Los dos comandos son los siguientes:
- named-checkconf: Revisa la configuración de bind y nos informa si hay algún error.
- named-checkzone: Revisa la configuración para la zona que has indicado en el fichero de su zona, y nos indica si hay algún error.
Como vemos, en la parte de los servidores no parece haber ningún problema. Revisemos ahora en los clientes:
En los clientes debemos cambiar el fichero /etc/resolv.conf
para añadir los servidores dns que acabamos de configurar:
Una vez terminado eso, podemos empezar a hacer consultas a los servidores.
En primer lugar vamos a consultar tanto a maestro como esclavo si tienen autoridad para la zona iesgn.org
:
- Al maestro:
- Al esclavo:
Ahora procederemos a pedir una copia completa de la zona desde el cliente y desde el servidor esclavo:
- Desde el cliente:
- Desde el servidor esclavo:
Como podemos ver, ya que no estamos autorizados a ello, no podemos conseguir la copia que hemos pedido desde el cliente, pero sí desde el servidor esclavo, ya que en la configuración hemos dado permiso al servidor a ello.
Por último vamos a comprobar que el servidor maestro y esclavo funcionan bien, haciendo primero una consulta al maestro, y después apagándolo para ver si el esclavo es capaz de responder con la misma información:
- Consulta al maestro:
- Consulta al esclavo (con el maestro apagado):
Como vemos, el cuando hemos apagado el servidor maestro, el esclavo ha sido capaz de responder nuestra petición, por lo que podemos considerar la configuración realizada como un éxito.