Administración de servicios: DNS

De WikiEducator
Saltar a: navegación, buscar

Introduccion

  1. Sistema distribuido básico de gestión de nombres en internet
  2. A partir del nombre, obtener la IP
  3. También resolución inversa (Apartir de la IP ==> Nombre)


Formas de gestionar la resolución de nombres En Local

  • Gestion local
    • El fichero /etc/hosts
    • En windows …/system32/drivers/etc/hosts
direccion ip  - Nombre de máquina - aliases
 172.16.139.1-  rebecca-  AdminWeb
 172.16.139.2-  ulises-  AdminCorreo
 172.16.139.3-  raul -  AdminDNS
 172.16.139.4-  elena -  Admin
 172.16.139.5-  sergio-  AdminWeb2
 172.16.139.6-  miguel-  AdminCorreo2
 172.16.139.7-  mapi -  AdminDNS2
 172.16.139.8-  cristian -  Admin2
  ....
  • Gestión global
    • Usando el protocolo DNS
      • Sistema distribuido
      • Modelo cliente servidor
  • En una máquina se pueden combinar ambos
    • En ficheros /etc/host.conf o /etcnsswitch.conf
order hosts,bind
multi on


Funcionamiento del dns

  • DNS Es un protocolo de nivel de aplicación de TCP/IP
  • DNS o 'sistema de nombres de dominio se basa en
      • un esquema jerárquizado (dominios y subdominios separados por .)
      • distribuido
      • su función es resolver nombres
        • dado un nombre de máquina dentro de un subdominio de otro/s subdominios de un determinado dominio encontrar su identificador único de IP
      • Se basa en el concepto de dominio, utilizando para su gestión una base de datos (BBDD) distribuida
  • El servidor raíz es el último punto (También conocido como dominio raíz, que no tiene ningún nombre asociado)
  • Después de él viene el TLD (Top Level Domain), o dominio de más alto nivel..es,.com,.org
  • Los dominios y subdominios que preceden en el nombre se van conociendo como dominios de segundo nivel, de tercer nivel,...
  • La administración de los dominios lo realizan las organizaciones responsables.
ICANN (Internet Corporation Assigned Names and Number) organización responsable
posee 13 servidores repartidos por todo el mundo,
ellos se les denomina servidores raiz o Top Name Servers (TNS).
Todos ellos tienen la misma información
Evitamos posibilidad de duplicidad de nombres
  • Los clientes con sus librerías pueden obtener información de los servidores
  • Implementacion del paquete bind
  • Otras implementaciones NSD, unbound, djbdns

Funcionamiento del dns 2

  • Las aplicaciones que funcionan en red (Navegador , ping), ejecutan en el host cliente las librerías para poder obtener la ip de una máquina con la que queremos conectar.
  • DNS funciona por defecto en el puerto 53
  • usa UDP 'TCP para comunicarse los servidores primarios y secundarios
  • El host pregunta a su servidor DNS cual es la ip de una máquina ¿Ip de www.cpilossenlaces.edu.es?
    • Si el servidor lo sabe se lo da
La ip de www.cpilosenlaces.edu.es es 194.143.194.106
    • Si este servidor no lo sabe, pues pregunta a otro que lo puede saber
No lo se pregunta a es.
    • En este caso es. nos dirá
La ip de www.cpilosenlaces.com no la se, pregunta a edu.es.
    • El servidor del dominio edu.es. nos dirá
La ip de www.cpilosenlaces.edu.es no la se, pregunta a cpilosenlaces.edu.es
    • El servidor del dominio cpilosenlaces.edu.es. nos dirá
La ip de www.cpilosenlaces.edu.es es 194.143.194.106
Este servidor seguro que lo sabe, ya que él es el responsable del dominio cpilosenlaces.edu.es


Componentes y configuración

  • Sintaxis de los nombres
    • Nos referimos al nombre completo de una máquina dentro de un dominio
www.daw2.informatica.cpilosenlaces.edu.es
    • Cadena de hasta 255 caracteres
    • formado por etiquetas (recurso,dominio o subdominios), separados por puntos
    • Las etiquetas mantienen una relación de jerárquica, de nivel superior a inferior en orden de derecha a izquierda

Dns nombre2.JPG

  • No es sensible a mayúsculas y minúsculas
  • 'muy importante el punto final'

normalmente no se pone se sobreentiende

  • Para adiministrar
    • Un nombre de dominio absoluto termina en punto
    • Un nombre de dominio relativo no termina en punto
      • Si es relativo quiere decir que le falta algo que hay que añadir

Ejemplo

  • Si estoy administrando el dominio
cpilosenlaces.edu.es.
  • y quiero añadir un subdominio por ejemplo daw2.informatica, añadiré
daw2.informática 
  • y en realidad estoy creando
daw2.informática.cpilosenlaces.edu.es.
  • pero si añado
daw2.informática.cpilosenlaces.edu.es
  • en realidad estoy añadiendo
daw2.informática.cpilosenlaces.edu.es.cpilosenlaces.edu.es.

Dns tipos.JPG

Componentes y configuración 2

  • Paquete 'bind' (Berkeley Internet Name Domain)
    • Demonio 'named'
    • Fichero de configuracion '/etc/bind/named.conf'
    • Responde a peticiones o nombres de máquinas
  • Servidor de nombres
demonio named
  • Instalacion
apt-get install bind9 dnsutils

Fichero de configuración named.conf

Zona

un dominio es el nombre que identifica de forma única un ente (organización, empresa, ...) en internet Una zona es el conjunto de recursos (servicios, dispositivos y subdominios) de un dominio que un servidor gestiona de forma directa es la parte de un dominio que queda.

  • Se dice entonces que el servidor tiene autoridad sobre esa zona

La información de una zona se almacena en un fichero. Ese fichero contiene dos tipos de elementos

  1. directivas
  2. registros de recursos RR

Plantilla:Asignacion

Plantilla:Asignacion

DIRECTIVAS

$TTL $TTL tiempo_por_defecto [unidades]. 1w 1 semanas 1d  1 días 1h  1 horas 1m  1 minutos 1  1 segundos Directiva obligatoria a partir de BIND v.9. Es el tiempo de vida (Time To Live), de la validez de la información que el fichero aporta. Una vez pasado este tiempo, l ainfomración deberá ser validada o refrescada. Si no se especifican unidades se entenderá segundos. Para cada RR se puede especificar de forma explícita su TTL. Si no se hace se tomará el especificado en esta directiva, o el especificado en el RR anterior en el campo minimun. $INCLUDE $INCLUDE nombre_fichero Que hace que named incluya el contenido del fichero nombre_fichero en el lugar donde se use la directiva $ORIGIN $ORIGIN nombre_DE_DOMINIO Establece el dominio por omisión; es decir indica el nombre de dominio que será añadido a los nombres de máquinas que acompañan a los registros de recurso que no acaban en punto . Por ejemplo $ORIGIN informatica.ieslosenlaces.com.

......

ftp IN A 192.168.10.54

Es lo mismo que escribir ftp.informatica.ieslosenlaces.com IN A 192.168.10.54

$GENERATE $GENERATE inicio-parada/[incremento] lhs type rhs [comment] En cada valor del intervalo se genera una línea Cada línea tendrá un valor que irá de forma creciente desde inicio hasta que se alcance el valor de parada, con un incremento en cada línea del valor especificado en incrementeo Lhs y Rhs son las líneas que se formarán y en lugar donde se quiere que se sustituya por los valores se especificarán con $

$GENERATE 1-32 puesto$.taller3.informatica.ieslosenlaces.com A 192.168.1.$

3.4.3.3. Registro de recursos A continuación pasaremos a realizar una breve explicación de estas opciones, para a continuación poner un ejemplo. [nombre][ttl][clase][tipo]  Nombre Aquí va el nombre del dominio (o de host) que el RR describe. Es un campo opción, en caso de que no se incluya, se asume el mismo que se puso para el RR anterior. Es el nombre del dominio que se va a resolver. MRM Si se incluye @ Estamos detallando el actual nombre de dominio

 Ttl Con el fin de forzar al sistema DNS a descartar información después de cierto tiempo, cada RR lleva asociado un tiempo de vida o ttl6. El campo ttl especifica, el tiempo de validez de la información desde que se obtiene del servidor. Es un número decimal de hasta ocho dígitos. Si no se especifica ningún valor, tomará uno por defecto del campo minimum del registro SOA precedente. En el caso de la versión 9, se tomaría el de la directiva $TTL .

 Class Aquí se indica la clase de dirección  IN para direcciones IP,  HS para objetos de la clase Hesiod.  CH Red de tipo Chaos Trabajando con redes TCP/IP debe usarse siempre la clase IN. Si no se especifica ningún valor, se toma el valor del RR anterior.  Type Describe el tipo de RR. A continuación se lista una tabla con la información de los tipos que puede haber  Grupo de RR Tipo NOMBRE FUNCION Zona:

identifican dominios de zona y sus nombres de servidores

SOA Stara Of Autority Define una zona DNS con autoridad NS Name Server Identifica zona de servidores y subdominio con delegaciones Basico Mapean nombres y direccions y retransmiten correos A Dirección IPv4 Traduca un nombre a ip de 32 bits AAAA Dirección IPv6 original Ahora no se usa A6 Dirección IPv6 Traduca un nombre a ip de 128 bits PTR puntero Traduce ip a nombre Dname Redirección MX Mail eXchanger Controla el correo de retransmisión Seguridad Añade autentificación y firmas a los ficheros de zona KEY Clave Publica Clave pública para el nombre del DNS NXT Next Usado con DNSSEC para respuesta negativas SIG Signature Firma para autentificar la zona Opcional Aporta información extra acerca de hosts y dominios CNAME Canonical name Alias para un host LOC Localizacion Localización geográfica RP Persona Responsable Especifica información de contacto para un host SRV servicio Da localizaciones para servicios conocidos MRM TXT Texto Comentarios


 Rdata Contiene los datos asociados al RR. El formato depende del tipo, y se describirán más adelante. A continuación analizaremos los tipos de registros más utilizados SOA NS A PTR MX 3.4.3.3.1. SOA Describe una zona de autoridad (SOA significa «Start of Authority», es decir, «Comienzo de Autoridad»). Señala que los registros siguientes contienen información autorizada para el dominio. Cada fichero incluido en la opción primary MRMdebe tener un registro SOA para esta zona. Los datos asociados contienen los siguientes campos: Sintaxis: SOA servidor responsable (parámetros)

 Servidor Nombre de la máquina que hace de DNS Se suele usar ns (name server) seguido del nombre del dominio. Si se usa el mismo dominio que el definido en el fichero named.conf, se puede usar el comodín @. Si el nombre del dominio no termina en punto, BIND, lo completa con el nombre del dominio  Responsable Cuenta de correo donde se referencia las incidencias  Parámetros Se especificarán los siguientes valores  Numero de serie Se puede especificar la fecha en la que se produjo la última actualización Se suele expresar como número de versión en el día actual, es decir, en el formato AAAAMMDDnn siendo AAAA el año, MM el mes, DD el día y nn el número de revisión de ese día (01 si no hay más de una). Por ejemplo, 2001072201 para el 22 de julio de 2001. El número de versión es utilizado por los servidores secundarios para saber cuándo la información de una zona ha cambiado. Para mantenerse actualizados, los servidores secundarios piden cada cierto tiempo el registro SOA del primario, y comparan el número de versión con el que tienen en la cache. Si ha cambiado, el servidor secundario pedirá de nuevo la información de zona al primario.  Periodo de refresco Periodo a partir del cual un servidor secundario realizará una actualización de datos del servidor maestro No debe ser pequeño ya que un fallo temporal del servidor primario hará que el secundario cargue inútilmente la red. Buenas elecciones son una hora o como poco media hora  Frecuencia de reintentos Tiempo en segundos que debe de esperar un servidor secundario antes de volver a solicitar datos de actualización a un servidor primario .  Tiempo de expiración Tiempo máximo que será mantenida la información sin actualizar.  Normalmente se pondrá un valor grande, de por lo menos una semana (604800 segundos), aunque si se incrementa a un mes o más será incluso más razonable  TTL minimun Tiempo en el que la información de este recurso es válida. Se pueden usar las mismas unidades que en el $TTL Un ejemplo de registro SOA podría ser @ IN SOA ns root.localhost. { 2008310101 ;Número de serie 21600; Periodo de refresco en sg. (6h) 10800; Frecuencia de reintento en sg. (3h) 604800; tiempo de expiración en sg 21600; tiempo de vida de los registros en cache } 3.4.3.3.2. Registro NS Este registro sirve para indicar el nombre de los servidores de nombres de dominio que tienen autoridad. Apunta a un servidor de nombres maestro de una zona subordinada. El campo de datos contiene el nombre del servidor. Para traducir ese nombre debe proporcionarse un registro A adicional, que se conoce como glue, al proporcionar la dirección IP del servidor. Hay que incluir registros NS en dos casos:  Cuando delegamos la autoridad a una zona subordinada.  En la base de datos del servidor principal de cualquier zona. Los servidores NS especificados en el fichero de zona deben coincidir exactamente con los que especifica la zona padre que delega. El registro NS especifica el nombre del servidor de nombres primario y los secundarios para una zona. Estos nombres deben poderse resolver para poderse usar.

A veces los servidores pertenecen al mismo dominio que sirven, lo que ocasiona un problema de el huevo o la gallina: no podemos obtener el servidor de nombres hasta que accedamos al dominio, pero para acceder el dominio hay que conocer la IP del servidor de nombres... Para resolver este problema se crean registros A direectamente en la zona padre, para resolver esas direcciones. Estos son los que ya comentamos antes, los registros glue (podríamos traducirlos como registros-pegamento), puesto que unen o pegan la zona hija a la zona padre.

Sintaxis Propietario ttl IN NS NombreServidorNombreDominio Ejemplo iesenlaces.com IN NS pc10.iesenlaces.com informatica.desenlaces.com IN NS pc11.informatica.iesenlaces.com


3.4.3.3.3. Registro A Asocia direcciones IP con nombres, de modo que los clientes puedan solicitar la dirección IP de un nombre de host dado.

El campo de datos contiene la dirección separando por puntos, como es habitual. Para cada máquina sólo puede haber un registro A, que se considera nombre oficial Cualquier otro nombre será un alias y debe ser incluido con registros CNAME. Ejemplo Pc10.desenlaces.com. IN A 192.10.15.1 Pc11.informatica.iesenlaces.com. IN A 192.10.10.10 3.4.3.3.4. Registro MX Es el registro de recurso de intercambio de correo (MX Mail eXchange), y especifica yn servidor de intercambio de correo para un nombre de dominio. Puesto que un mismo dominio puede contener diferentes servidores de correo, el registro MX puede indicar un valor numérico que permite especificar el orden en que los clientes deben intentar contactar con dichos servidores de correo. sintáxis [domain] [ttl] [class] MX preference host

Ejemplo Desenlaces.com. IN MX 0 pc10.iesenlaces.com. En este caso estamos definiendo el pc10 como servidor de correo del dominio desenlaces.com. 3.4.3.3.5. Registro CNAME El registro de nombre canónico (Canonical NAME) crea un alias o sinónimo para el nombre de domino especificado. Por ejemplo si queremos asignar al pc10 el alias de ServidorDeCorreo ServidorDeCorreo.ieslosenlaces.com. IN CNAME pc10.ieslosenlaces.com.


3.4.3.3.6. PTR Este registro de recurso (PoinTeR) o puntero, realiza la acción contraira al registro de tipo A, es decir asigna un nombre de dominio a una dirección IP Es el registro utilizado en la denominada resolución inversa Ejemplo 192.10.15.1 IN A Pc10.desenlaces.com. 192.10.10.10 IN A Pc11.informatica.iesenlaces.com.


Ese

Tipos de servidores

  • Los servidores DNS pueden ser
  1. Primarios
  2. Secundarios
  3. Cache-only
  • La resolución (dado un nombre obtener una ip o viceversa) puede ser
  1. Directa IP ==> Nombre
  2. Inversa Nombre ==> IP

Servidor Zonal: primario, secundario

  • Responder aquellas consultas que recibe sobre zonas que tiene configuradas localmente

Existen dos tipos distintos de servidores zonales

  1. primarios
  2. secundarios
  • Funcionalmente son idénticos
  • Administrativamente sólo en el servidor primario se debe de realizar los cambios del contenido de una zona
  • El servidor secundario es la réplica que se actualizará automáticamente

Serividor Cache

  • Responde las consultas que recibe de sus clientes
  • Lo hace sin autoridad
  • Para obtener la respuesta
  1. consulta a los servidores zonales adecuados
  2. consulta en su propia caché (si tiene dicha información ya ha consultado anteriormente y dicha información aún no ha expirado).

Resolución Directa / Inversa

Instalar y configurar DNS

Instalación
Paquetes básicos
  1. bind9;
  2. dnsutils.
Utilidades
  1. bind9-host;
  2. dns-browse;
  3. dnscvsutil;
  4. nslin
Docuemtación
  1. bind9-doc.
Paquetes de desarrollo
  1. libbind-dev;
  2. libnet-dns-perl.
Si configuramos DHCP
  1. dhcp-dns.
Configuración
  • Se realiza en el fichero .named.conf Es el fichero de configuración de bind
  • En el realizamos una serie de declaraciones, cada una de las cuales va {}
Declaracion include
Permite incluir otros ficheros.
Sirve para organizar y separar conceptos
Tambien como elementos de seguruidad, puedo incluir ficheros con permisos restringidos
include "file"
Declaracion options
Opciones de configuración y declaraciones globales
options {
      opcion_1,
      opcion_n
};
Ejemplo de opciones
allow_query lista de ip's o redes a los que se permite consultar a este servidor. Por defecto todos
acl red_instituto{
   192.168.0.0/18
};
option {
       allow_query{10.0.0.1;192.168.10.35;red_instituto;};
};
Indica los host o redes a los que se permite acceso
allow_recursion
backlone host que no tienen acceso al servidor de nombres
directorydirectorio por defecto de trabajo a partir del cual se buscaran ficheros especificados
forwadcomportamiento de reenvio de la directiva 'forwarders'
forwardesdirecciones ip donde el servidor puede enviar las consultas para ser resueltas
liste_on
notify
pid-file
root-delegation-only
stadistics-file
consulta en esta dirección para ver todas las opciones


Declaracion zone
Define las caracteristicas de una zona concreta
zone <zone-nombre> <zone-class> {
    <zone-options>;
    [<zone-options>; ...]
};
zone-nombre Es el nombre de la zona
zona-options opciones para la zona
allow-query
allow-transfer
allow-update
Estas directivas pueden resultar peligrosas por seguridad de habilitar. Es mejor actuar sobre los ficheros de las zonas
file
master
notify (yes|no|explicict)
type (master|slave|hit|forward|delegation-only
zone-statistics
Declaracion acl
Sirve para crear una lista de eqipos a la que se da o niega el acceso al servidor de nombres
acl nombre_lista
 { 192.168.10.1/24  ==>ip 1
 }
Existen una serie de lista de acceso que ya creadas que se pueden utilizar
any ==> todas las direcciones ip
localhost ==> ip que use el equipo local
localnet ==> ip que cuya red coincida con la red de la ip del sistema local
none ==> no concuerda ninguna direccion ip
Una vez creada la lista de acceso hay que otorgarle o quitarle el acceso con la opcion option
Declaracion controls
Requerimientos de seguridad
Declaracion key
Declaracion de claves para llevar a cabo actuaciones que queremos que requiran de seguridad
Declaracion loggins


Declaracion servers



Configuración del cliente resolver

  • Configuracion con el fichero /etc/resolv.conf
  • Instalando bind y poniendo el equipo como servidor dns en modo cache
  • Contenido:
    • Definición de los servidores de nombres a los que se les solicita información del DNS.
      • Siempre con dirección IP.
      • en orden de búsqueda,
    • Definición del dominio por defecto que se añade a los nombres de máquinas :
domain informatica.emiliojimeno.edu.es
search informatica.emiliojimeno.edu.es emiliojimneo.edu.es doc.ic.ac.uk

Configuración del servidor

El fichero named.conf ya visto anteriomente

named.conf :
     options {
          Directory "/var/cache/bind"
          query-source address * port 53;
          Forwarders {
                155.210.12.9
                155.210.33.4
          }
     zone "." { // prime the server with knowledge of the root servers
          type hint;
          file "/etc/bind/db.root";
     };
     zone "localhost" {
          type master;
          file "/etc/bind/db.local";
     };
     zone "127.in-addr.arpa" {
          type master;
          file "/etc/bind/db.127";
     };


Servidor solo cache

  • zone . (punto)
  • type hint
  • file Es el fichero que contiene las ip's del los serividores top level
  • Ejemplo
named.conf :
options {
Directory "/var/cache/bind"
query-source address * port 53;
Forwarders {
          4.4.4.4
}
zone "." {               // prime the server with knowledge of the root servers
        type hint;
        file "/etc/bind/db.root";
};
zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};
//Para resolución inversa
zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};
  • Mirar el contenido de los ficheros
  • db.local
@       IN      SOA     localhost.      Root.localhost. (
                             1          ; Serial
                        21600          ; Refresco de 6 horas
                         1800          ; Reintento de 30 minutos
                       1209600         ; Expira en 2 semanas
                        3600 )        ; Cache TTL negativo de 1 hora
@       IN      NS      localhost.
@       IN      A       127.0.0.1
  • db.127
  • todo lo contenido en db.local, salvo la ultima línea que se sustituye con una resolución inversa
1.0.0       IN      PTR       localhost.

Observar que va sde detalla la dirección en orden inverso (peso de bytes)

Servidor primario

  • Se pone también como cache
  • type master
  • zone Creamos la zona en este caso 'emiliojimneo.es.
  • named.conf :
zone "emiliojimeno.es." in {
       type master;
       file "maestro/directo/db.emiliojimeno";
};
zone "172.139.16.in-addr.arpa" in {
       type master;
       file "maestro/inverso/db.172.136.16";
};

Servidor secundario

  • typeslave
  • Masters => poner la ip del maestro para que el secundario le pida información
  • cuidado con los permisos del fichero
  • se crea y actualiza por el sistema y lo hace el usuario de bind

named.conf :

// incluido la configuración del cache-only y añadiendo en options

forwarders  {  155.210.154.131;  };
allow-transfer  {  none;  }; ........
zone "emiliojimeno.es." in {
       type slave;
       file "esclavo/directo/db.losenlaces";
Masters {  ip_equimo_master;  };
};
zone "172.16.139.in-addr.arpa" in {
       type slave;
       file "esclavo/inverso/db.172.16.139";
Masters {  ip_equipo_master_resol_inversa;  };
};

Herramientas de DNS

  • 'dig'
  • 'nslookup