lunes, 17 de mayo de 2010

Servidor DNS en Ubuntu

1.- Instalación del servidor de DNS

Los Servidores de DNS nos facilitan la adiminstración de los nombres de los equipos de un sitio, sin ellos tendríamos que asignar en cada equipo los nombres e ip en el fichero /etc/hosts. Los servidores de DNS se pueden clasificar en:

  • Primarios o maestros: cuando obtiene la información de sus zonas de sus archivos locales que es en los que se realizan todas las modificaciones de la zona.

  • Secundarios o esclavos: obtienen la información de su zona de otro servidor -generalmente primario-, es decir, contienen “una copia” de sólo lectura de la zona.

  • Caché: sólo atienden consultas de los clientes y no contienen ningún tipo de información de la zona, se emplean sólo para acelerar las consultas.

Se define un servidor de nombres de dominio DNS autoritario para una zona como aquel que contiene los registros de recursos para dicha zona (SOA y NS). Cada zona puede tener uno o más servidores autoritarios y al menos, uno de ellos debe ser primario.

Existen varios paquetes de servicios de servidores de dominio. La mas conocida y usada es BIND, para instalarlo:

# apt-get install bind9 bind9-doc dnsutils


1.1 Configuración del servidor DNS Bind

El servicio de DNS está compuesto, básicamente por dos programas: el demonio named -el servidor de nombres de dominio y el resolver -cliente que genera las peticiones-. El archivo de configuración del demonio named se encuentra en /etc/bind/named.conf, aunque desde aquí se cargará el fichero /etc/bind/named.conf.local que es -en la versión que he instalado- en el que introduciremos las zonas de búsqueda directa e inversa y el nombre de los ficheros dónde configuraremos dichas zonas, en mi caso /etc/bind/db.mczones.es y /etc/bind/db.192.168.2. Si queremos que el servidor haga uso del servidor instalado tendremos que añadir su dirección ip en el fichero /etc/resolv.conf también.

Los siguientes son los ficheros para configurar la zona “mczones.es” y los servidores -maestro- y clientes incluidos en dicha zona tanto para búsqueda directa como inversa.

Fichero: /etc/bind/named.conf.local

zone "mczones.es" {

type master; Maestro o servidor principal

allow-query {127.0.0.1; 192.168.2.3/24;}; dejamos activas las consultas internas y a la máquina local

allow-transfer {127.0.0.1; 192.168.2.3/24;}; restringir las transferencias de zona a estas ip

allow-update {127.0.0.1; 192.168.2.3/24;}; permitir actualizaciones desde estas ip -el propio servidor-

file "/etc/bind/db.mczones.es"; fichero dónde configuraremos los equipos de la zona

};

//Resolución Inversa

zone "2.168.192.in-addr.arpa" {

type master;

allow-query { 127.0.0.1; 192.168.2.3/24; };

allow-transfer { 127.0.0.1; 192.168.2.3/24;};

allow-update {127.0.0.1; 192.168.2.3/24;};

file "/etc/bind/db.192.168.2";

};

Fichero de configuración /etc/bind/db.mczones.es

$ttl 604800

mczones.es. IN SOA servidorubuntu.mczones.es. root.mczones.es. ( ;Servidor autoritario y email

3 ; Serial

604800 ; Actualizar cada en segundos

86400 ; Reintentar en segundos

2419200 ; Tiempo en que expira en segundos

604800 ) ; Cache TTL Negativa

; en caso de no añadir la dirección de email en el SOA, la versión que he instalado, no interpreta bien el fichero

@ IN A 192.168.2.3 ;asocia nombre de dominio a una dirección ip

@ IN NS servidorubuntu.mczones.es. ; Servidor de nombres autorizado para esta zona

; Servidores

servidorubuntu IN A 192.168.2.3 ; asocia una ip a un nombre de equipo

servidor IN CNAME servidorubuntu ;alias para el servidor ; asocia otro nombre/alias a un nombre existente

; Estaciones de trabajo

juan-cliente IN A 192.168.2.2

clienteubuntu IN CNAME juan-cliente

anfitrion IN A 192.168.2.1

Fichero /etc/bind/db.192.168.2

$ttl 604800 ; Fichero para resolución inversa

2.168.192.in-addr.arpa. IN SOA mczones.es. root.mczones.es. (

3

604800

86400

2419200

604800 )

;

@ IN A 192.168.2.3

@ IN NS servidorubuntu.mczones.es.

;servidores internos

3 IN PTR servidorubuntu.mczones.es.

;estaciones

2 IN PTR juan-cliente.mczones.es.

1.2.168.192.in-addr.arpa. IN PTR anfitrion.

1.2 Otras comprobaciones de Configuración

Podemos reiniciar el servicio tras modificar los ficheros y comprobar el log del sistema para verificar que no hay errores en el arranque de named en el fichero /var/log/syslog:

# /etc/init.d/bind9 restart

# tail -15 /var/log/syslog

También podremos emplear los comandos dig – por ejemplo dig any servidorubuntu.mczones.es o dig @192.168.2.3 mczones.es-, host - host clienteubuntu.mczones.es-, nslookup -nslookup anfitrion.mczones.es- o directamente con ping -ping juan-cliente.mczones.es-.

Para asegurarnos de que se crean los enlaces simbólicos para que al arrancar el equipo se inicie el servicio de DHCP podemos teclear # update-rc.d bind9 defaults. Si necesitamos parar el servicio: sudo /etc/init.d/bind9 stop (con start o restart para iniciarlo o reiniciarlo respectivamente o force-reload para cargar las opciones que hemos cambiado en la configuración). image

2.- Archivos de zona y archivos de resolución inversa de la zona.

Para resolver los nombres los servidores DNS consultan las zonas, los cuales contienen registros de recursos (RR) que describen la información relativa al dominio DNS.

El formato de cada regsitro de recursos es:

Propietario TTL Clase Tipo RDATA

Dónde:

  • Propietario: nombre de máquina o dominio DNS al que pertenece el recurso. Puede ser un nombre de una máquina, @ -zona que se está describiendo- o cadena vacía representando al propietario del registro anterior.

  • TTL: Tiempo de vida o número de segundos que puede estar el registro en caché. Es opcional y puede expresarse en segundos, dáis, horas y/o minutos.

  • Clase: define la familia de protocolos en uso. Por defecto IN (Internet), indicando red TCP/IP.

  • RDATA: Información específica del tipo de recurso. Por ejemplo para un registro IN de tipo A, especificará una dirección IP.

  • Tipo: identifica el tipo de registro. Para la clase IN:

    • SOA: Inicio de autoridad. Identifica el servidor autoritario de una zona y sus parámetros de configuración.

    • NS: Servidor de Nombres. Identifica servidores de nombres autorizados para una zona.

    • A: Dirección: asocia un nombre de dominio FQDN con una dirección IP.

    • PTR: Puntero: asigna una dirección IP a un nombre de dominio completamente cualificado para las búsquedas inversas.

    • MX. Registro de correo: indica equipos encargados de la entrega del correo en el dominio.

    • CNAME: Nombre canónico. Permite asignar uno o más nombres a una máquina.

    • TXT. Text: almacena cualquier información.

    • SRV. Servicios: ubicación de los servidores para un servicio o protocolo determinado. El formato de un registro SRV es el siguiente:

      tabla

      Ejemplos:

    • juan-cliente IN A 192.168.2.2

    • clienteubuntu IN CNAME juan-cliente

    • http.tcp.mczones.es. IN SRV 0 0 80 www.mczones.es

    • ftp.tcp.mczones.es IN SRV 0 0 21 ftp.mczones.es

 

3.- Ficheros que intervienen en las configuraciones.

Ficheros de configuración del servidor DNS:

  • /etc/bind/named.conf: fichero de configuración del demonio named. En las versiones actuales, desde este fichero se llama al fichero -mediante un include- named.conf.local que es el que debemos modificar.

  • /etc/bind/named.conf.local: fichero en el que configuramos las zonas de búsqueda directa e inversa y especificamos el nombre de dichos ficheros en mi caso db.mczones.es y db.192.168.2.

  • /etc/init.d/bind9: ejecutable al que se le pasa el parámetro: stop, start, restart o force-reload para parar, iniciar, reiniciarlo o para cargar las opciones que hemos cambiado en la configuración respectivamente.

4.- Configuración mediante webmin

Webmin es una aplicación web que nos permitirá configurar numerosas características de nuestro servidor como ip, paquetes,.... En nuestro caso se puede emplear para instalar/configurar también los servicios de DNS y DHCP.

Para instalarla nos bajamos la última versión disponible en la página web del proyecto - http://www.webmin.com/ - , dónde podremos encontrar los fuentes para compilar, o bajarnos directamente el paquete deb para Ubuntu o Debian . Yo he empleado este último y lo he instalado con gdebi (apt-get install gdebi). Para ello simplemente teclearemos en la consola:

# gdebi webmin_1.500_all.deb

Una vez lo hayamos instalado, tan sólo debemos abrir un navegador web e introducir la ip de nuestro servidor, en mi caso localhost, y conectarnos con el puerto 10000, dónde nos pedirá que introduzcamos un nombre de usuario (root o alguno con privilegios de administrador) y su contraseña. Tras esto entraremos en la interfaz de la aplicación que nos permitirá realizar múltiples consultas y modificaciones tal y cómo se puede ver en la siguiente imagen:

image

para continuar viendo el resto de manuales Linux siga el enlace:administración de servidores con Linux

 

Bibliografía y enlaces:

BIND para mortales - Mexico Extremo RC3

1 comentario:

Anónimo dijo...

en el archivo de configuracion de la zona según la versión de bind es posible que haya que introducir un parámetro más dentro del SOA
basta con añadir un número antes de cerrar el parentesis.