Título: Instalación de un Servidor DNS en GNU/Linux en modo Consola Publicado por: madpitbull_99 en 23 Octubre 2010, 22:36 pm Este post tambien esta publicado en la wik (http://wiki.elhacker.net)i del foro : Instalación de un Servidor DNS en GNU/Linux en modo Consola (http://wiki.elhacker.net/redes/administracion-de-redes-gnu-linux/instalacion-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 (http://es.wikipedia.org/wiki/DNS) más comúnmente usado en Internet, especialmente en sistemas Unix (http://es.wikipedia.org/wiki/Unix), en los cuales es un Estándar de facto (http://es.wikipedia.org/wiki/Est%C3%A1ndar_de_facto). Es patrocinado por la Internet Systems Consortium (http://es.wikipedia.org/wiki/Internet_Systems_Consortium). BIND fue creado originalmente por cuatro estudiantes de grado en la University of California, Berkeley (http://es.wikipedia.org/wiki/University_of_California,_Berkeley) y liberado por primera vez en el 4.3BSD (http://es.wikipedia.org/wiki/Berkeley_Software_Distribution). Paul Vixie (http://es.wikipedia.org/wiki/Paul_Vixie) comenzó a mantenerlo en 1988 (http://es.wikipedia.org/wiki/1988) mientras trabajaba para la DEC (http://es.wikipedia.org/wiki/Digital_Equipment_Corporation). 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 (http://es.wikipedia.org/w/index.php?title=DNSSEC&action=edit&redlink=1) (DNS Security Extensions). BIND 9 incluye entre otras características importantes: TSIG (http://es.wikipedia.org/w/index.php?title=TSIG&action=edit&redlink=1), notificación DNS, nsupdate (http://es.wikipedia.org/w/index.php?title=Nsupdate&action=edit&redlink=1), IPv6 (http://es.wikipedia.org/wiki/IPv6), rndc flush, vistas, procesamiento en paralelo, y una arquitectura mejorada en cuanto a portabilidad. Es comúnmente usado en sistemas GNU/Linux (http://es.wikipedia.org/wiki/GNU/Linux). [sacado de la wikipedia (http://es.wikipedia.org/wiki/BIND)] [web oficial de bind9 (http://www.bind9.net/) ] 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:
Código: mad@server:~$ ls /etc/bind
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 _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 Empezare explicando el primer registro (SOA) :
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 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 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 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 { Esos son los servidores públicos de Google. Cuando nuestro servidor local no encuentre un dominio se lo preguntara al servidor DNS de Google.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; }; }; 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 Podemos probar también el alias (CNAME): Código: mad@server:/etc/bind$ ping portatil_jefe 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 Código: $ cp db.127 db.192.168.1 Seguimos con la edición del fichero de resolución inversa, lo abrimos con algun editor (nano por ejemplo) y ponemos: Código: ; Código: mad@server:/etc/bind$ sudo named-checkzone 1.168.192.in-addr.arpa. /etc/bind/db.192.168.1 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 t4EvB7U2_l8 |