elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Píldoras formativas en seguridad de la información


+  Foro de elhacker.net
|-+  Comunicaciones
| |-+  Redes (Moderador: HdM)
| | |-+  Instalación de un Servidor DNS en GNU/Linux en modo Consola
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Instalación de un Servidor DNS en GNU/Linux en modo Consola  (Leído 3,064 veces)
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.912



Ver Perfil WWW
Instalación de un Servidor DNS en GNU/Linux en modo Consola
« en: 23 Octubre 2010, 22:36 »

Este post tambien esta publicado en la wiki del foro : Instalación de un Servidor DNS en GNU/Linux en modo Consola



Instalación de un Servidor DNS en GNU/Linux en modo Consola



Sobre Bind


 (Berkeley Internet Name Domain, anteriormente : Berkeley Internet Name Daemon) es el servidor de DNS más comúnmente usado en Internet, especialmente en sistemas Unix, en los cuales es un Estándar de facto. Es patrocinado por la Internet Systems Consortium. BIND fue creado originalmente por cuatro estudiantes de grado en la University of California, Berkeley y liberado por primera vez en el 4.3BSD. Paul Vixie comenzó a mantenerlo en 1988 mientras trabajaba para la DEC.

 Una nueva versión de BIND (BIND 9) fue escrita desde cero en parte para superar las dificultades arquitectónicas presentes anteriormente para auditar el código en las primeras versiones de BIND, y también para incorporar DNSSEC (DNS Security Extensions). BIND 9 incluye entre otras características importantes: TSIG, notificación DNS, nsupdate, IPv6, rndc flush, vistas, procesamiento en paralelo, y una arquitectura mejorada en cuanto a portabilidad. Es comúnmente usado en sistemas GNU/Linux.

 [sacado de la wikipedia]

 [web oficial de bind9 ]



 Empezando con la Instalación


 Instalar los siguientes paquetes : apt-get install bind9 bind9-doc dnsutils .Esto creara un nuevo daemon llamado named.

 En algunos casos el servicio DNS no arranca solo y tenemos que inicializarlo nosotros, hay que resaltar que debemos reiniciar el servidor después de cada configuración que hagamos.

 Dependiendo de la distribución Linux usada y la versión de Bind el servicio DNS se puede inicializar/reiniciar de dos modos:

 
  • sudo /etc/bind/start o restart
  • sudo /etc/init.d/bind9 start o restart
Si hacemos un ls (para listar el directorio) nos devolverá los siguientes ficheros:

Código:
mad@server:~$ ls /etc/bind

 bind.keys db.127 db.empty db.root named.conf.default-zones named.conf.options zones.rfc1918

 db.0 db.255 db.local named.conf named.conf.local rndc.key

Los siguientes ficheros son con los que trabajaremos:

 
  • /etc/bind/named.conf.local – aquí se almacenan los nombres de los archivos de zona y de zona inversa y el archivo de de configuración de la zona y de la zona inversa.
  • /etc/bind/named.conf.options – Almacena sentencias para permitir la transferencia de zona (allow-transfer). Esto también puede hacerse en el fichero anterior.


 Creando Zonas

 Primero vamos a crear la zona, la zona que crearemos sera local-elhacker.net . Para eso editaremos el fichero /etc/bind/named.conf.local

Código:
$nano /etc/bind/named.conf.local

 y añadimos lo siguiente:

 zone “local-elhacker.net“ {

 type master;

 file “/etc/bind/db.elhacker.net”;

 };

 zone “1.168.192.in-addr.arpa” {
 type master;
 file “/etc/bind/db.192.168.1″;
 };

_zone indica la creación de una nueva zona.

 _type es el tipo de zona (master o slave)

 _file indica la ruta donde se encuentra ubicado el fichero que contendrá los registros de la zona.

 Es obligatorio acabar todas las lineas con punto y coma ;

 En mi caso llamare a la zona local-elhacker.net como si se tratara de los nodos que componenen la red.

 La primera zona es la de resolución directa y la segunda es la de resolución inversa. Substituid el nombre de la zona y las IP’s de este tutorial por las vuestras, En la zona de resolución inversa tenemos que poner la IP de nuestra red (por ejemplo, si nuestra red es 192.168.1.1 entonces tenemos que escribir la IP al revés de esta forma: 1.168.192.in-addr.arpa )

 Después de hacer esto, podemos comprobar si hay algún error en el fichero que acabamos de editar usando el siguiente comando: named-checkconf /etc/bind/named.conf.local si no devuelve ningún error entonces es que esta todo bien.



 Añadiendo Registros de Resolucion Directa

 A continuacion vamos a crear el fichero donde guardaremos los registros: touch /etc/bind/db.elhacker.net y lo editamos para agregar los registros : nano /etc/bind/db.elhacker.net y agregamos lo siguiente:

Código:
$ttl 38400

 local-elhacker.net. IN SOA ns.local-elhacker.net. madpitbull@elhacker.net. (

 20101022; Número de serie
 3600 ; Tiempo de refresco (1 hora)
 300 ; Tiempo entre reintentos de consulta (5 min)
 17200 ; Tiempo de expiración de zona (2 dias)
 43200 ; Tiempo total de vida (TTL) (12 horas) )

 ;

 local-elhacker.net. IN NS ns.local-elhacker.net.

 ns.local-elhacker.net IN A 192.168.1.100

 ordenador01.local-elhacker.net. IN A 192.168.1.125

 ordenador02.local-elhacker.net. IN A 192.168.1.126

 ordenador03.local-elhacker.net. IN A 192.168.1.127

 ordenador04.local-elhacker.net. IN A 192.168.1.128

 ordenador05.local-elhacker.net. IN A 192.168.1.129

 ordenador06.local-elhacker.net. IN A 192.168.1.130

 miguel_sanchez IN CNAME ordenador01.local-elhacker.net.

 alejandra_primo IN CNAME ordenador02.local-elhacker.net.

 alex_morales IN CNAME ordenador03.local-elhacker.net.

 sobremesa_jefe IN CNAME ordenador04.local-elhacker.net.

 belen_ortega IN CNAME ordenador05.local-elhacker.net.

 portatil_jefe IN CNAME ordenador06.local-elhacker.net.

Nota: también se puede crear el archivo de zona a partir de /etc/bind/db.empty Algunos recomiendan mas esta opcion asi que en caso de querer usarla poned: cp /etc/bind/db.empty /etc/bind/db.elhacker.net

 Empezare explicando el primer registro (SOA) :

 
  • Primero definimos el nombre de la zona (elhacker,net,)
  • IN hace referencia al tipo de protocolo usado (IN = Internet)
  • SOA es el tipo de registro (State of Authority), indica el servidor que tiene autoridad en la zona
  • ns.elhacker.net es el nombre que yo le he dado al servidor DNS de esta red (NS viene de Name Server)
  • madpitbull@elhacker.net. Es la dirección de correo electrónica del encargado de mantener la zona.
  • Parámetros que están dentro de los paréntesis:
    • Numero de Serie: es el numero de revisión del archivo de zona. En mi caso yo he puesto la fecha de la ultima modificación, es importante actualizar ese campo siempre que vayamos ha editar el archivo de la zona.
    • Tiempo de refresco: es el tiempo que tarda el servidor secundario en pedirle al servidor Maestro la copia de la zona. El servidor DNS secundario compara el número de serie del registro SOA del archivo de zona del servidor DNS principal y el número de serie de su propio registro SOA. Si son diferentes, el servidor DNS secundario solicitará una transferencia de zona desde el servidor DNS principal. El valor predeterminado es 3.600 (que es 1 hora).
    • Tiempo entre reintentos de consulta: Esto es el tiempo que un servidor secundario espera para recuperar una transferencia de zona fallida. Este tiempo suele ser menor al intervalo de actualización
    • Tiempo de expiración de zona: es el tiempo antes que un servidor secundario deje de responder a las búsquedas una vez se haya producido un intervalo de actualización de la zona.
    • Tiempo Total de Vida: Tiempo en el que el servidor de nombres mantiene la caché cualquier registro del recurso de este archivo en base de datos.
Ahora explicare los registros :

 
  • elhacker.net. IN NS ns.elhacker.net. – Indica servidores con autoridad en la zona. NS(Name Server) es el tipo de registro.
  • ns.elhacker.net. IN A 192.168.1.100 – Indica el nombre del servidor DNS de la zona. Asigna a esa IP el dominio ns.elhacker.net
  • Todos los registros de tipo A asocian un dominio (que en este caso son ordenadores) a una IP
  • Los registros de tipo CNAME asignan un alias por el que también se les conoces a esos dominios. Se podría decir que es como un mote.
Recordad que siempre podemos probar la configuracion del archivo de zona usando : named-checkconf /etc/bind/db.elhacker.net



 Probando la configuración del Servidor

 Tambien podemos probar si el servidor DNS carga con éxito el archivo que contiene los registros usando el comando: named-checkzone elhacker.net /etc/bind/db.elhacker.net , en mi caso despues de reiniciar el servidor y poner el comando me ha devuelto :

Código:
mad@server:/etc/bind$ sudo /etc/init.d/bind9 restart

 * Stopping domain name service… bind9 [ OK ]

 * Starting domain name service… bind9 [ OK ]

 mad@server:/etc/bind$ sudo named-checkzone local-elhacker.net /etc/bind/db.elhacker.net

 zone local-elhacker.net/IN: loaded serial 1

 OK

 mad@server:/etc/bind$

Creo que no hace falta mencionar que significa el mensaje de salida OK.



 Configurando los clientes DNS

 Antes de añadir los registros de resolución inversa vamos a probar si nuestro servidor DNS funciona.

 Para eso tenemos que editar los siguientes ficheros:

  /etc/host.conf En este fichero nos saldrá lo mismo que abajo:

Código:
# The “order” line is only used by old versions of the C library.

 order hosts,bind

 multi on

Lo que tenemos que hacer es cambiar el ordena de las palabras de la segunda linea por los siguientes:

 order bind,hosts

 Asi al buscar un dominio primero preguntara al servidor DNS Bind si tiene ese dominio o IP en su archivo de registros.

  /etc/resolv.conf En este fichero tenemos que agregar al principio search local-elhacker.net y nameserver 192.168.1.100 que es la IP del servidor DNS. Claramente elhacker.net lo reemplazáis por vuestro dominio.

 /etc/network/interfaces Ahí esta la configuración de la tarjeta de red, si abrimos ese fichero nos aparecera :

Código:
# This file describes the network interfaces available on your system

 # and how to activate them. For more information, see interfaces(5).

 # The loopback network interface

 auto lo

 iface lo inet loopback

 # The primary network interface

 auto eth0

 iface eth0 inet static

 address 192.168.1.100 # Esta sera nuestra IP

 netmask 255.255.255.0 # La mascara de red

 gateway 192.168.1.1 # La puerta de enlace por defecto

 nameserver [b][u]192.168.1.100[/u][/b] # El DNS local

Sustituimos la IP del servidor DNS que teníamos configurado anteriormente por la IP de nuestro servidor DNS local.



 Forwarders

 Pero que pasara por ejemplo si yo quiero acceder a Google.com ? Pues como no tenemos ese registro en nuestra base de datos el servidor DNS que tengamos configurado deberá pasarle la consulta de resolución de nombre a otro servidor DNS. Esos servidores DNS son tambien conocidos como Forwarders y en Bind se configuran el la siguiente ruta:

 /etc/bind/named.conf.options

 Editamos ese fichero y dentro de options agregamos:

Citar
options {

 directory “/var/cache/bind”;

 // If there is a firewall between you and nameservers you want

 // to talk to, you may need to fix the firewall to allow multiple

 // ports to talk. See http://www.kb.cert.org/vuls/id/800113

 // If your ISP provided one or more IP addresses for stable

 // nameservers, you probably want to use them as forwarders.

 // Uncomment the following block, and insert the addresses replacing

 // the all-0′s placeholder.

 forwarders {

 8.8.8.8;

  8.8.4.4;

 };

 auth-nxdomain no; # conform to RFC1035

 listen-on-v6 { any; };

 };

Esos son los servidores públicos de Google. Cuando nuestro servidor local no encuentre un dominio se lo preguntara al servidor DNS de Google.



 Aplicando los cambios y probando la resolución directa

 Reiniciamos la configuración de la Tarjeta de Red para que coja los cambios : /etc/init.d/networking restart

 Y probamos la resolución directa haciendo ping por ejemplo a ordenador04.local-elhacker.net :

Código:
mad@server:/etc/bind$ ping ordenador04.local-elhacker.net

 PING ordenador04.local-elhacker.net (192.168.1.128) 56(84) bytes of data.

 64 bytes from 192.168.1.128: icmp_seq=1 ttl=128 time=8.52 ms

 64 bytes from 192.168.1.128: icmp_seq=2 ttl=128 time=0.044 ms

 64 bytes from 192.168.1.128: icmp_seq=3 ttl=128 time=0.019 ms

 64 bytes from 192.168.1.128: icmp_seq=4 ttl=128 time=1.40 ms

 64 bytes from 192.168.1.128: icmp_seq=5 ttl=128 time=0.156 ms

Vemos que funciona y que hace ping al ordenador que nosotros hemos definido en el archivo de registros de zona.

 Podemos probar también el alias (CNAME):

Código:
mad@server:/etc/bind$ ping portatil_jefe

 PING ordenador04.local-elhacker.net (192.168.1.128) 56(84) bytes of data.

 64 bytes from 192.168.1.128: icmp_seq=1 ttl=128 time=0.352 ms

 64 bytes from 192.168.1.128: icmp_seq=2 ttl=128 time=0.335 ms

 64 bytes from 192.168.1.128: icmp_seq=3 ttl=128 time=0.671 ms

 ^Z

 [2]+ Detenido ping portatil_jefe

Otros comandos que podemos probar son:

  host portatil_jefe

  nslookup portatil_jefe

  dig local-elhacker.net

 Con esos bastaría para probar nuestro servidor DNS local.



Añadiendo Registros de Resolucion Inversa

 Una vez eso hecho es la hora de crear la base de datos de la resolución inversa, con la resolución inversa a partir de una IP podemos saber el nombre de host. Es un registro de tipo PTR(Pointer-Puntero).

 Si os acordais creamos una zona inversa en el fichero de zona del servidor, “1.168.192.in-addr.arpa” En la declaracion de la zona inversa incluimos el fichero db.192.168.1 .Ahora vamos a crear ese fichero, podemos crearlo con touch :

 
Código:
$ touch db.192.168.1
O crearlo a partir de un fichero de prueba que viene con el servidor:

 
Código:
$ cp db.127 db.192.168.1
Para no tener que poner la ruta completa, escribo los comandos desde la carpeta donde esta situado el Bind (/etc/bind)

 Seguimos con la edición del fichero de resolución inversa, lo abrimos con algun editor (nano por ejemplo) y ponemos:

Código:
;

 ; Archivo de Resolucion Inversa

 ;

 $TTL 604800

 1.168.192.in-addr.arpa. IN SOA ns.local-elhacker.net. madpitbull@local-elhacker.net. (

 1 ; Serial

 604800 ; Refresh

 86400 ; Retry

 2419200 ; Expire

 604800 ) ; Negative Cache TTL

 ;

 1.168.192.in-addr.arpa. IN NS ns.local-elhacker.net.

 100.1.168.192.in-addr.arpa. IN PTR ns.local-elhacker.net.

 125.1.168.192.in-addr.arpa. IN PTR ordenador01.local-elhacker.net.

 126.1.168.192.in-addr.arpa. IN PTR ordenador02.local-elhacker.net.

 127.1.168.192.in-addr.arpa. IN PTR ordenador03.local-elhacker.net.

 128.1.168.192.in-addr.arpa. IN PTR ordenador04.local-elhacker.net.

 129.1.168.192.in-addr.arpa. IN PTR ordenador05.local-elhacker.net.

 130.1.168.192.in-addr.arpa. IN PTR ordenador06.local-elhacker.net.

 Guardamos el fichero y probamos la configuracion:

 mad@server:/etc/bind$ sudo named-checkconf db.192.168.1

 OK

Y luego comprobamos si carga la zona corectamente:

Código:
mad@server:/etc/bind$ sudo named-checkzone 1.168.192.in-addr.arpa. /etc/bind/db.192.168.1

 zone 1.168.192.in-addr.arpa/IN: loaded serial 1

 OK




Probando la Resolucion Inversa

 Ya tenemos un Servidor que resuelve resoluciones directas e inversas. Para probar la resolución inversa podemos poner:

Código:
mad@server:/etc/bind$ host 192.168.1.128

 128.1.168.192.in-addr.arpa domain name pointer ordenador04.local-elhacker.net.

También os he dejado un vídeo donde se pueden ver los ficheros de configuración y el correcto funcionamiento del servidor DNS.

 



« Última modificación: 23 Octubre 2010, 22:46 por madpitbull_99 » En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Instalación y Configuración de SSH (OpenSSH) en GNU/Linux (modo consola)
Redes
madpitbull_99 1 6,963 Último mensaje 21 Noviembre 2012, 00:47
por g4t0n3gr0
Error consola instalacion wifiway
Wireless en Linux
usuario999 1 1,587 Último mensaje 10 Febrero 2011, 09:54
por ChimoC
Instalación de un servidor FTP en Linux (vsftpd)
Redes
madpitbull_99 1 4,606 Último mensaje 13 Agosto 2014, 21:44
por Albertolopez1992
Instalación de un servidor Web en Linux
Redes
Derhosck.mx 0 1,440 Último mensaje 4 Noviembre 2011, 01:48
por Derhosck.mx
Entrar al servidor por consola kali linux
Hacking Básico
4lienx 1 525 Último mensaje 15 Agosto 2018, 18:45
por zhyzura
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines