DOMAIN NAME SYSTEM--DNS

Anuncio
INSTITUTO TECNOLOGICO SUPERIOR DE LIBRES
INGENIERIA EN SISTEMAS COMPUTACIONALES
DOMAIN NAME
SYSTEM--DNS
INSTALACION Y CONFIGURACION DE UN
SERVIDOR DNS EN PLATAFORMA LINUX
(DEBIAN)
IZQUIERDO GONZALEZ ARTURO.
PEREZ GUTIERREZ DIDIER.
SANCHEZ TORRES FERNANDO.
LOPEZ LOPEZ ARTURO
20/07/2008
Índice
1
DOMAIN NAME SISTEM.
3
1.1
COMPONENTES.
4
1.1.1 ENTENDIENDO LAS PARTES DE UN DOMINIO.
4
1.2
SERVIDORES DNS.
5
1.3
TIPOS DE REGISTRO DNS.
6
2
BIND
8
2.1
EJEMPLO DE CONFIGURACION.
9
2.1.1 INSTALACION DE BIND.
9
2.1.2 CONFIGURACION DE LOS ARCHIVOS DE BIND.
9
2.1.3 COMPROBANDO EL SERVIDOR DE NOMBRES DNS.
12
2.1.4 COMPROBANDO EL SERVIDOR WEB.
14
2
1. - DNS Domain Name System
El Domain Name System (DNS) es una base de datos distribuida y
jerárquica que almacena información asociada a nombres de dominio en redes
como Internet. Aunque como base de datos el DNS es capaz de asociar
diferentes tipos de información a cada nombre, los usos más comunes son la
asignación de nombres de dominio a direcciones IP y la localización de los
servidores de correo electrónico de cada dominio.
La asignación de nombres a direcciones IP es ciertamente la función
más conocida de los protocolos DNS. Por ejemplo, si la dirección IP del sitio
FTP de prox.ve es 200.64.128.4, la mayoría de la gente llega a este equipo
especificando ftp.prox.ve y no la dirección IP. Además de ser más fácil de
recordar, el nombre es más fiable. La dirección numérica podría cambiar por
muchas razones, sin que tenga que cambiar el nombre.
Inicialmente, el DNS nació de la necesidad de recordar fácilmente los
nombres de todos los servidores conectados a Internet. En un inicio, SRI
(ahora SRI International) alojaba un archivo llamado HOSTS que contenía
todos los nombres de dominio conocidos (técnicamente, este archivo aún
existe - la mayoría de los sistemas operativos actuales todavía pueden ser
configurados para revisar su archivo hosts). El crecimiento explosivo de la red
causó que el sistema de nombres centralizado en el archivo HOSTS no
resultara práctico y en 1983, Paul Mockapetris publicó los RFCs 882 y 883
definiendo lo que hoy en día ha evolucionado el DNS moderno.
3
1.1.- Componentes
Para la operación práctica del sistema DNS se utilizan tres componentes
principales:
Los Clientes DNS: Un programa cliente DNS que se ejecuta en la
computadora del usuario y que genera peticiones DNS de resolución de
nombres a un servidor DNS (Por ejemplo: ¿Qué dirección IP corresponde a
nombre.dominio?);
Los Servidores DNS: Que contestan las peticiones de los clientes. Los
servidores recursivos tienen la capacidad de reenviar la petición a otro servidor
si no disponen de la dirección solicitada;
Y las Zonas de autoridad, porciones del espacio de nombres de
dominio que almacenan los datos. Cada zona de autoridad abarca al menos un
dominio y posiblemente sus subdominios, si estos últimos no son delegados a
otras zonas de autoridad.
El Domain Name System (DNS) es una base de datos distribuida y
jerárquica que almacena información asociada a nombres de dominio en redes
como Internet.
1.1.1.- Entendiendo las partes de un nombre de dominio
Un nombre de dominio usualmente consiste en dos o más partes
(técnicamente etiquetas), separadas por puntos cuando se las escribe en forma
de texto. Por ejemplo, www.mahomedalid.org o es.Wikipedia.org
A la etiqueta ubicada más a la derecha se le llama dominio de nivel
superior (inglés < Top Level Domain). Como org en www.mahomedalid.org ó
es.Wikipedia.org
Cada etiqueta a la izquierda especifica una subdivisión o subdominio.
Nótese que "subdominio" expresa dependencia relativa, no dependencia
absoluta. En teoría, esta subdivisión puede tener hasta 127 niveles, y cada
etiqueta contener hasta 63 caracteres, pero restringido a que la longitud total
del nombre del dominio no exceda los 255 caracteres, aunque en la práctica los
dominios son casi siempre mucho más cortos.
4
Finalmente, la parte más a la izquierda del dominio suele expresar el
nombre de la máquina (en inglés hostname). El resto del nombre de dominio
simplemente especifica la manera de crear una ruta lógica a la información
requerida. Por ejemplo, el dominio es.Wikipedia.org tendría el nombre de la
máquina "es", aunque en este caso no se refiere a una máquina física en
particular.
El DNS consiste en un conjunto jerárquico de servidores DNS. Cada
dominio o subdominio tiene una o más zonas de autoridad que publican la
información acerca del dominio y los nombres de servicios de cualquier dominio
incluido. La jerarquía de las zonas de autoridad coincide con la jerarquía de los
dominios. Al inicio de esa jerarquía se encuentra los servidores raíz: los
servidores que responden cuando se busca resolver un dominio de primer y
segundo nivel...
1.2.- Tipos de servidores DNS
Bind • PowerDNS • MaraDNS • djbdns • pdnsd • MyDNS • DNS (Windows
2000/2003)
Tipos de resolución de nombres de dominio
Existen dos tipos de consultas que un cliente puede hacer a un servidor DNS:
Iterativa
Recursiva
En las consultas recursivas el servidor repite el mismo proceso básico
(consultar a un servidor remoto y seguir cualquier referencia) hasta que obtiene
la respuesta a la pregunta.
Las consultas iterativas, o resolución iterativa, consisten en la mejor
respuesta que el servidor de nombres pueda dar. El servidor de nombres
consulta sus datos locales (incluyendo su caché) buscando los datos
solicitados.
Cuando existe más de un servidor autoritario para una zona, BIND utiliza
el menor valor en la métrica RTT (round-trip time) para seleccionar el servidor.
El RTT es una medida para determinar cuánto tarda un servidor en responder
una consulta.
El proceso de resolución normal se da de la siguiente manera:
5
1. El servidor A recibe una consulta recursiva desde el cliente DNS.
2. El servidor A envía una consulta iterativa a B.
3. El servidor B refiere a A otro servidor de nombres, incluyendo a C.
4.
5.
6.
7.
8.
9.
El servidor A envía una consulta iterativa a C.
El servidor C refiere a A otro servidor de nombres, incluyendo a D.
El servidor A envía una consulta iterativa a D.
El servidor D responde.
El servidor A regresa la respuesta al resolver.
El resolver entrega lta al programa que solicitó la información.
1.3.- Tipos de registros DNS
A = Address – (Dirección) Este registro se usa para traducir nombres de hosts
a direcciones IP.
CNAME = Canonical Name – (Nombre Canónico) Se usa para crear nombres
de hosts adicionales, o alias, para los hosts de un dominio. Es usado cuando
se estan corriendo multiples servicios (como ftp y web server) en un servidor
con una sola direccion ip. Cada servicio tiene su propia entrada de DNS (como
ftp.ejemplo.com. y www.ejemplo.com.). esto también es usado cuando corres
múltiples servidores http, con diferente nombres, sobre el mismo host.
NS = Name Server – (Servidor de Nombres) Define la asociación que existe
entre un nombre de dominio y los servidores de nombres que almacenan la
información de dicho dominio. Cada dominio se puede asociar a una cantidad
cualquiera de servidores de nombres.
MX (registro) = Mail Exchange – (Registro de Intercambio de Correo) Asocia
un nombre de dominio a una lista de servidores de intercambio de correo para
ese dominio.
PTR = Pointer – (Indicador) También conocido como 'registro inverso', funciona
a la inversa del registro A, traduciendo IPs en nombres de dominio.
SOA = Start of authority – (Autoridad de la zona) Proporciona información
sobre la zona.
6
HINFO = Host INFOrmation – (Información del sistema informático) Descripción
del host, permite que la gente conozca el tipo de máquina y sistema operativo
al que corresponde un dominio.
TXT = TeXT - ( Información textual) Permite a los dominios identificarse de
modos arbitrarios.
LOC = LOCalización - Permite indicar las coordenadas del dominio.
WKS - Generalización del registro MX para indicar los servicios que ofrece el
dominio. Obsoleto en favor de SRV.
SRV = SeRVicios - Permite indicar los servicios que ofrece el dominio. RFC
2782
SPF = Sender Policy Framework - Ayuda a combatir el Spam. En este record
se especifica cual o cuales hosts están autorizados a enviar correo desde el
dominio dado. El servidor que recibe consulta el SPF para comparar la IP
desde la cual le llega, con los datos de este registro.
7
2.- 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 standard 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, notificacíon DNS, nsupdate, IPv6, rndc flush, vistas,
procesamiento en paralelo, y una arquitectura mejorada en cuanto a
portabilidad. Es comúnmente usado en sistemas Linux.
8
2.1.- Ejemplo de configuración
2.1.1.- Instalación de BIND
Para
instalar
BIND
simplemente
abrimos
la
consola
(Aplicaciones/Accessorios/Terminal) y escribimos el siguiente comando:
sudo apt-get install bind9
2.1.2.- Configuración de los archivos de BIND
Los archivos de configuración que tendremos que modificar en el servidor DNS
son los siguientes:
/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.local
/etc/bind/db.aulaESI.com
/etc/bind/db.192.168.1
En el resto de ordenadores de la red, sólo habrá que modificar el archivo
/etc/resolv.conf.
El archivo named.conf en realidad no es necesario que lo modifiquemos. Este
archivo almacena la configuración de las diferentes zonas generadas por
defecto en el momento de la instalación.
Para modificar el archivo /etc/bind/named.conf.local podemos utilizar cualquier
editor de textos, como gedit o vi. Para crear este fichero con gedit abriremos el
terminal y escribiremos:
sudo gedit /etc/bind/named.conf.local
Una vez abierto tendremos que poner lo siguiente (lo que hay tras el carácter #
son comentarios).
#Esta es la definición de la zona. Cambia aulaESI.com por tu nombre de
dominio
zone “aulaESI.com” {
9
type master;
file “/etc/bind/db.aulaESI.com”;
};
#Aquí definimos la zona de resolución inversa. Cambia 1.168.192 por la
dirección de tu red
zone “1.168.192.in-addr.arpa” {
type master;
file “/etc/bind/db.192.168.1″;
};
A continuación modificamos el fichero /etc/bind/named.conf.options. En este
fichero especificaremos aquellos servidores DNS de Internet que resolverán los
nombres de dominio que nuestro servidor DNS local no pueda resolver. Será
necesario especificarlos para que los ordenadores de nuestra red salgan a
Internet.
Options {
directory “/var/cache/bind”;
forwarders {
80.58.0.33;
62.42.230.24;
};
};
Tendremos que cambiar las IP 80.58.0.33 y 62.42.230.24 por los servidores
DNS de nuestro ISP. Los servidores DNS de ONO son: 62.42.230.24 y
62.42.63.52. Los servidores DNS de telefónica son: 80.58.61.250 y
80.58.61.254, aunque también tienen muchos más (80.58.0.33, 80.58.32.97,
etc.)
Después tendremos que crear el fichero de definición de zona
/etc/bind/db.aulaESI.com. En este fichero es donde pondremos todos los
nombres de máquinas y direcciones IP que conocerá nuestro servidor DNS.
$TTL 604800
//Cambia aulaESI.com por el nombre de tu dominio
//Cambia servidor por el nombre de tu servidor de nombres
aulaESI.com. IN SOA aulaESI.com. servidor.aulaESI.com. (
//Las siguientes líneas no es necesario que las modifiquemos
2006081401
28800
3600
604800
38400)
//Cambia las siguientes líneas si es necesario
//aulaESI.com por el nombre de tu dominio
//servidor por el nombre de tu servidor de nombres
10
aulaESI.com. IN NS servidor.aulaESI.com.
//Cambia los nombres máquinas y direcciones IP por las de tu red
servidor IN A 192.168.1.1
servidor2 IN A 192.168.1.2
pc03 IN A 192.168.1.3
pc04 IN A 192.168.1.4
pc05 IN A 192.168.1.5
pc05 IN A 192.168.1.6
//Así para el resto de equipos de la red
//Lo siguiente es un alias. Para que desde el navegador podamos poner
//www.aulaESI.com en lugar de servidor.aulaESI.com
www IN CNAME servidor
ftp in CNAME servidor2
A continuación creamos el archivo de zona
/etc/bind/1.168.192 con el siguiente contenido:
de
resolución
inversa
//Cambia aulaESI.com por el nombre de tu dominio
//Cambia servidor por el nombre de tu servidor de nombres.
@ IN SOA servidor.aulaESI.com.
(2006081401;
28800;
3600;
604800;
38400)
//Cambia aulaESI.com por el nombre de tu dominio
//Cambia servidor por el nombre de tu servidor de nombres de dominio
//El número que aparece delante de IN PTR es el último octeto de la
dirección IP //de la máquina
//192.168.1.1 para servidor, 192.168.1.2 para servidor2, 192.168.1.3 para
pc03….
//Cambia las direcciones IP y nombres por los de tu red
IN NS servidor.aulaESI.com.
1 IN PTR servidor.aulaESI.com.
2 IN PTR servidor2.aulaESI.com.
3 IN PTR pc03.aulaESI.com.
4 IN PTR pc04.aulaESI.com.
5 IN PTR pc05.aulaESI.com.
6 IN PTR pc06.aulaESI.com.
Cuando hayamos creado cada uno de los archivos tendremos que reiniciar
BIND con el siguiente comando:
sudo /etc/init.d/bind9 restart
En cada uno de los ordenadores de la red habrá que modificar el fichero
/etc/resolv.conf. Este fichero tendŕa el siguiente contenido:
11
//Cambia 192.168.1.1 por la IP de tu servidor de nombres
//Cambia aulaESI.com por el nombre de tu dominio
nameserver 192.168.1.1
search aulaESI.com
A partir de la versión 9 de BIND se incluyen dos herramientas software para
chequear la sintaxis y semántica de los archivos que describen las zonas y el
archivo de configuración principal named.conf. Dichas herramientas son:
named-checkzone y named-checkconf.
Una vez configurado el servidor DNS, si se quiere hacer una comprobación
sintáctica del archivo de configuración named.conf hay que ejecutar:
named-checkconf
La salida muestra los errores que genera. Si no genera salida, está todo
correcto.
En el caso de los archivos de zona hay que ejecutar:
named-checkzone aulaESI.com /etc/bind/db.aulaESI.com
(cambiando aulaESI.com por el nombre de tu dominio)
Este comando genera la siguiente salida si todo está correcto:
zone aulaESI.com/IN: loaded serial 1 OK
2.1.3.- Comprobando el servidor de nombres DNS
Una vez hayamos reiniciado el servidor DNS (sudo /etc/init.d/bind9 restart)
debemos comprobar que éste funciona correctamente. Para comprobar que el
servidor de nombres resuelve nombres de dominio correctamente podemos
utilizar la orden host. La orden host permite hacer búsquedas en el DNS. Se
utiliza para convertir nombres en direcciones IP y viceversa.
Algunas de sus opciones son las siguientes:
-t <tipo>: indica el tipo de registro a devolver. Puede ser A, ANY, PTR,
NS, etcétera.
-R <n>: permite modificar el número de intentos que se hacen para
obtener la respuesta, ya que por defecto es uno.
-l: lista toda la información del dominio.
Para comprobar que nuestro servidor funciona correctamente, ejecutamos la
siguiente
orden
desde
cualquier
servidor
del
dominio:
host
servidor.aulaESI.com (tendrás que cambiar servidor por el nombre de tu
servidor y aulaESI.com por el nombre de tu dominio).
12
Otra de las herramientas de las que disponemos para hacer consultas sobre un
servidor DNS es dig (domain information groper). Se utiliza para detectar
problemas de configuración en el servidor DNS. Su sintaxis es la siguiente:
dig <@servidor> [opciones] [nombre] [tipo]
Donde:
@servidor es el nombre o la dirección IP del servidor a consultar.
nombre es el nombre de dominio donde se hace la consulta
tipo es el tipo de registro por el que se consulta (ANY, NS, SOA…). Si
no se indica, se asume A
Un ejemplo del uso de esta orden sería la siguiente:
dig aulaESI.com
13
2.1.4.- Comprobando el servidor web
Ya he comentado que en este dominio (aulaESI.com) el servidor DNS también
hace también de servidor web. Para que el servidor haga las funciones de
servidor web, tendremos que instalar apache. Para ello abrimos el terminal y
escribimos:
sudo apt-get install apache2
Una vez instalado, creamos un fichero HTML de prueba en el directorio
/var/www. Podemos crear, por ejemplo, un fichero llamado prueba.htm que
muestre el texto “Página web de prueba almacenada en el servidor”. Cuando lo
hayamos creado, desde cualquier ordenador del dominio abrimos el navegador
y escribimos www.aulaESI.com/prueba.htm. De esta manera comprobaremos
si el servidor DNS funciona correctamente y es capaz de resolver nombres de
dominio y además está haciendo las funciones de servidor web.
14
Descargar