Linux - PASOS PARA INSTALAR Y CONFIGURAR UN SERVIDOR DNS SOBRE DEBIAN

 
Vista:
Imágen de perfil de xve
Val: 311
Oro
Ha mantenido su posición en Linux (en relación al último mes)
Gráfica de Linux

PASOS PARA INSTALAR Y CONFIGURAR UN SERVIDOR DNS SOBRE DEBIAN

Publicado por xve (837 intervenciones) el 12/08/2014 09:15:02
Aquí os adjunto un pequeño tutorial paso a paso de como montar nuestro propio servidor DNS para que podamos gestionar nuestros propios dominios y todo el mundo pueda acceder a nuestro dominio desde Internet.

Para este servidor vamos a utilizar los nombres de dominio 'dominio.com' y 'segundodominio.com' con la ip que nos ha dado Telefónica en nuestra ADSL. Para nuestro ejemplo vamos a utilizar la IP 217.218.219.220. Para nuestro servidor secundario, vamos a utilizar la IP 217.218.219.221 (Estas dos IP's, son IP's publicas a las que cualquier usuario puede acceder desde Internet).

Estos dominios (dominio.com y segundodominio.com), tienen que tener la DNS primaria y DNS secundaria apuntando al que sera nuestro nuevo servidor DNS: dns1.dominio.com y dns2.dominio.com

Los paquetes a instalar son:
1
2
# apt-get update 
# apt-get install bind9 dnsutils

Vamos a modificar el archivo /etc/bind/named.conf.options
Descomentamos las líneas:
1
2
3
// forwarders {
//   0.0.0.0;
//};
Esta línea especifica una lista de servidores de nombres a los que hay que mandar las peticiones para obtener la resolución de nombres. Colocaremos la DNS primaria y DNS secundaria que utilizamos habitualmente quedando así: (las DNS's son inventadas para este ejemplo)
1
2
3
4
forwarders {
   8.8.8.8;
   8.8.4.4;
};

Para indicarle la ip de nuestro servidor secundario, en el archivo /etc/bind/named.conf.local añadimos:
1
2
3
acl "slaves"{
   217.218.219.221;
};

y indicamos los nombres de los archivos donde estarán nuestros dominios masters y slaves. Al final del archivo añadimos:
1
2
include "/etc/bind/named.master";
include "/etc/bind/named.slave"; //únicamente si somos esclavo de algún dominio...

Añadiremos en el fichero /etc/bind/named.master nuestros dominios.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
zone "dominio.com" {
	type master;
	file "/etc/bind/db.dominio.com";
	allow-query { any; };
	allow-transfer { slaves; };
};
 
zone "0.168.192.in-addr.arpa" {
	type master;
	file "/etc/bind/db.192.168.0";
};
 
zone "segundodominio.com" {
	type master;
	file "/etc/bind/db.segundodominio.com";
	allow-query { any; };
	allow-transfer { slaves; };
};

Tendremos que generar los archivos db.dominio.com, db.217.218.219 y db.segundodominio.com en el directorio /etc/bind/

db.dominio.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$TTL 604800
@       IN      SOA     dominio.com.           root.dominio.com.      (
        2003101701 ; Numero de serie
        28800 ; tasa de refreso en segundos
        3600 ; tasa de reintento en segundos
        3600000 ; Caducidad para el secundario en segundos
        3600 ; Tiempo de validez para clientes en segundos
)
 
@        IN      NS      dns1.dominio.com.
@        IN      NS      dns2.dominio.com.
@        IN      MX      10 mx1.dominio.com.
 
@               IN      A       217.218.219.220
localhost       IN      A       127.0.0.1
www             IN      A       217.218.219.220
dns1            IN      A       217.218.219.220
dns2            IN      A       217.218.219.221
mx1             IN      A       217.218.219.220

db.segundodominio.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$TTL 604800
@       IN      SOA     segundodominio.com.           root.segundodominio.com.      (
        2003101701 ; Numero de serie
        28800 ; tasa de refreso en segundos
        3600 ; tasa de reintento en segundos
        3600000 ; Caducidad para el secundario en segundos
        3600 ; Tiempo de validez para clientes en segundos
)
 
@        IN      NS      dns1.dominio.com.
@        IN      NS      dns2.dominio.com.
@        IN      MX      10 correo.segundodominio.com.
 
@               IN      A       217.218.219.220
localhost       IN      A       127.0.0.1
www             IN      A       217.218.219.220
correo          IN      A       217.218.219.220
db.192.168.0
 
@       IN      SOA     dominio.com.           root.dominio.com.      (
        2003101701 ; Numero de serie
        28800 ; tasa de refreso en segundos
        3600 ; tasa de reintento en segundos
        3600000 ; Caducidad para el secundario en segundos
        3600 ; Tiempo de validez para clientes en segundos
)
	IN	NS	dns1.dominio.com.
	IN	NS	dns2.dominio.com.
 
150		IN	PTR	dns1.dominio.com.


Antes de probar si funciona, comprobaremos el archivo /etc/resolv.conf el cual tiene que tener como primera línea la IP de nuestra maquina:
1
nameserver 217.218.219.220

Vamos a probar si funciona iniciando el demonio del DNS con /etc/init.d/bind9 start y ha realizar un ping a cada uno de los dos dominios que hemos creado con ping dominio.com, ping www.dominio.com, ping segundodominio.com y ping www.segundodominio.com. Nos aparecerá algo como:

1
2
3
4
5
[root@servidor root]# ping www.dominio.com 
PING www.dominio.com (217.218.219.220): 56 data bytes
64 bytes from 217.218.219.220: icmp_seq=0 ttl=64 time=0.4 ms
64 bytes from 217.218.219.220: icmp_seq=1 ttl=64 time=0.3 ms
64 bytes from 217.218.219.220: icmp_seq=2 ttl=64 time=0.3 ms

Si fuéramos un servidor secundario de algún dominio externo, en el archivo /etc/bind/named.slave colocaríamos:

named.slave

1
2
3
4
5
6
zone "dominioexterno.com" {
        type slave;
        file "slave.dominioexterno.com.db";
        allow-query {any;};
        masters {220.221.222.223;}; //esta es la ip del dominio externo
};

Reiniciamos el servidor con /etc/init.d/bind9 restart. Al reiniciar el servidor, actualizara los dominios externos generando el archivo slave.dominioexterno.com.db (siempre y cuando se haya podido conectar con el servidor secundario, y el servidor secundario tenga como servidor esclavo el nuestro).

Por ultimo, lo que hay que hacer es abrir los puertos 53 tanto TCP como UDP de nuestro router y redireccionarlo a la IP privada de nuestro servidor.


Espero que este tutorial os sirva de ayuda!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder