TuxApuntes
Redes
Cómo configurar BIND | Cómo configurar BIND |
|
|
|
BIND es el servidor de nombres de dominio más popular en Internet, que trabaja en todas las plataformas informáticas principales y se caracteriza por su flexibilidad y seguridad. A continuación se puede encontrar tanto la teoría general de los servicios de DNS, como una explicación detallada de los campos y opciones de la configuración de BIND, ejemplos, opciones de seguridad, herramientas de verificación, ligas de información adicional y otras más. Licencia Por Hugo Madrid Luna (Crowley) Esta dirección de correo electrónico está protegida contra los robots de spam, necesita tener Javascript activado para poder verla http://www.mexicoextremo.com.mx URL: http://www.mexicoextremo.com.mx/content/view/423/62/ Se otorga el permiso para copiar, distribuir y modificar este documento bajo los términos de la Licencia de Documentación Libre del GNU (http://www.gnu.org/copyleft/fdl.html), versión 1.2 o cualquier otra posterior publicada por la Free Software Foundation; este documento no consta de secciones invariantes ni con portadas o contraportadas.
Preliminares.Para un mejor entendimiento de este tema, se recomienda conocer la teoría general del funcionamiento de Internet, además de nociones de administración de redes. Los sistemas operativos para las pruebas de este manual fueron Fedora Core 2 con kernel 2.6.8 y Solaris 9; la versión de BIND fue la 9.2.3 en Linux y la 8.4.2 en Sun. Introducción.Domain Name Service (DNS) es el servicio que resuelve los nombres de dominio asociados a una dirección IP para direccionar las peticiones a un servidor en específico. Se utiliza cuando un nodo (o host) en Internet contacta a otro mediante el nombre de domino de la máquina y no por su dirección IP. A través de este documento se verán las generalidades del servicio de resolución de nombres, la configuración y mantenimiento de un servicio de nombres con BIND, bajo la plataforma Linux, aunque la mayoría de estos conceptos se pueden aplicar a la cualquier servicio de DNS sobre otras plataformas. Regularmente, todos los equipos que están en Internet o una Intranet tienen una dirección IP única que las identifica, generalmente dividido en cuatro segmentos u 'octetos', cuya representación es, por ejemplo, '172.29.183.217', pero el recordar todas las direcciones en este formato sería sumamente difícil, por lo que utilizamos los nombres de dominio para referenciarlos. Existen varios productos que realizan esta función y en todas las plataformas, pero el más usado es BIND (Berkeley Internet Name Domain), que puede ser descargado libremente desde http://www.isc.org/index.pl?/sw/bind/, es distribuido bajo la GNU GPL y que al momento de escribir este documento, se encuentra en la versión 9.3. Teoría sobre servidores de nombres de dominio.Funciones de un servidor de dominio.Estas varían de acuerdo a los nombres se que buscan resolver: Soporte al dominio de Internet. Atiende las peticiones dirigidas a los servicios que se prestan desde adentro de la organización, como WEB, FTP y correo, hacia Internet. Se requiere que se identifiquen estos servidores como autoridades DNS por parte de NIC. Se recomienda tener dos de estos, lo más independiente posible el uno del otropor razones de seguridad. Resolución local de nombres: Resuelve las peticiones de adentro de la LAN, eliminando la necesidad de conocer y actualizar programas y peticiones si se cambian las direcciones IP de los servidores. Aunque es posible, se recomienda mantener separado este servicio del anterior, por razones de seguridad. Resolución de nombres por Internet. Es su forma más básica, que generalmente sólo tranfiere las peticiones a NIC en caso que el DNS principal no funcione. No es necesario que se tengan las tres variaciones al mismo tiempo, sino que depende de las necesidades de la organización. Estructura básica del DNS.Esta es similar a un arbol, donde se tiene una raíz o root, los Dominios de Nivel Principal (Top Level Domains) y los dominios de segundo nivel.
Básicamente, el servidor DNS que tenemos configurado busca dentro de su lista de nodos por el que preguntamos, en caso de desconocerlo refiere la petición a NIC, que a su vez la transfiere al servidor que resuelva los nombres del dominio solicitado. Zonas.Los nombres de dominio completamente calificados o FQDN (fully qualified domain name) se componen por lo general del nombre del host, un nombre de dominio secundario y un nombre de dominio primario o de nivel máximo (top-level domain), que son secciones organizadas jerárquicamente. Por ejemplo: 'www.ejemplo.com'. Leyéndolo de derecha a izquierda tenemos un dominio primario ('COM'), un dominio secundario ('EJEMPLO') y el nombre del host ('WWW'). Algunos dominios primarios son:
Con excepción del nombre del host, cada sección es una 'zona', que controla los subdominios a su izquierda. Las zonas son archivos de texto que se alojan en los servidores de dominio primarios o maestros y que replican a los secundarios o esclavos, mismos que explicaremos más adelante. Es importante diferenciar una 'zona' de un 'dominio'. La zona es un punto de delegación dentro del arbol del dominio (por ejemplo 'ejemplo.com.mx'), mientras que un dominio en si es el nombre dentro de la zona (por ejemplo, '.com'). Este tema es un poco confuso, ya que en realidad los servidores de resolución de nombres en realidad manejan zonas, no dominios. Tipos de servidores.Existen cuatro tipos diferentes de servidores de resolución de nombres:
Tipos de registros.Para ofrecer suficiente flexibilidad en la configuración, se pueden declarar diversos tipos de registros, que hacen referencia a la función del host. A continuación veremos los más importantes. A (Address). Es el registro más usado, que define una dirección IP y el nombre asignado al host. Generalmente existen varios en un dominio. MX (Mail eXchanger). Se usa para identificar servidores de correo, se pueden definir dos o más servidores de correo para un dominio, siendo que el orden implica su prioridad. Debe haber al menos uno para un dominio. CNAME (Canonical Name). Es un alias que se asigna a un host que tiene una dirección IP valida y que responde a diversos nombres. Pueden declararse varios para un host. NS (Name Server). Define los servidores de nombre principales de un dominio. Debe haber al menos uno y pueden declararse varios para un dominio. SOA (Start Of Authority). Este es el primer registro de la zona y sólo puede haber uno en cada archivo de la zona y sólo está presente si el servidor es autoritario del dominio. Especifica el servidor DNS primario del dominio, la cuenta de correo del administrador y tiempo de refresco de los servidores secundarios. Instalación y configuración de BIND.Instalación.Se puede efectuar de diversas formas, dependiendo de nuestro sistema operativo y preferencias. Código fuente.
RPM.
Administradores de instalaciones.
Estructura del archivo de configuración.A partir de la versión 8 de BIND, esta es la estructura principal de named.conf, con muy pequeñas modificaciones en la serie 9. # Comentarios sobre este servidor # Es recomendable indicar el nombre y dominio options { directory "/var/named"; allow-query { any; }; }; # Cache de NIC para inicializar los servicios zone "." { type hint; file "named.ca"; }; # Zona de resolución inversa zone "127.in-addr.arpa" { type master; file "named.inversa"; }; # Zona local, resolución para la interface lo zone "local" { type master; file "named.local"; allow-update { none; }; } # Zona para el dominio principal zone "ejemplo.com" { type master; file "named.dominio"; }; # Zona para una red local zone "red.10" { type master; file "named.red.10"; }; # Zona inversa para un segmento de red zone "192.25.13.in-addr.arpa0" { type master; file "named.red.192"; }; Esta estructura de zonas son muy similares entre si, cambiando de acuerdo a las zonas que queremos resolver. Algunas otras opciones que se pueden declarar son: pid-file "named.pid"; notify yes; # Necesario para notificar a los esclavos allow-query { "any; none; 10.24.23.0/24;" }; # Por defecto, se usa 'any' query-source address * port 53; # Necesario cuando un firewall # bloqueé otros puertos forwarders { 123.12.40.17; }; # Reenvia las peticiones no # resueltas a otro servidor Estructura de los archivos de zona.La primera entrada siempre es el SOA (start of authority), que indica la fuente de información para una zona, tiempos de refresco y otros, como vemos a continuación: ; SOA Start of Authority ;------------------------------ ; ejemplo.com. IN SOA dns.ejemplo.com. master.correo.ejemplo.com. ( 2005072700 ; Serial 10800 ; Refresco de 3 horas 3600 ; Reintentos despues de 1 hora 604800 ; Expira después de 1 semana 86400 ) ; TTL mínimo de un día En este ejemplo vemos primeramente el dominio a resolver, 'ejemplo.com.', se declara como DNS autoritario a 'dns.ejemplo.com.' y el segundo es la cuenta de correo del administrador, 'master.correo.ejemplo.com.' (sustituyéndo el primer punto por arroba, lo que dejaría ' Esta dirección de correo electrónico está protegida contra los robots de spam, necesita tener Javascript activado para poder verla '). Debemos notar que al final de cada dominio viene un punto, que identifica la raíz de este. El resto de los parámetros son:
Una acepción más es el uso del arroba (@) como dominio a resolver, que referencía el nombre de la zona en named.conf, quedando de la siguiente manera. <font size="1">; SOA Start of Authority ;------------------------------ ; @ IN SOA dns.ejemplo.com. master.correo.ejemplo.com. ( 2005072700 ; Serial 10800 ; Refresco de 3 horas 3600 ; Reintentos despues de 1 hora 604800 ; Expira después de 1 semana 86400 ) ; TTL mínimo de un día </font> Otros componentes de los archivos de la zona autoritarios, que se explican por si mismos, son: <font size="1">; NS Name Servers ;------------------------------ ; IN NS dns.ejemplo.com. dns IN A 214.25.82.3 ; MX Mail Exchangers ;------------------------- ; @ IN MX 0 correo.ejemplo.com. sede IN MX 0 correo.ejemplo.com. ; subdominio de correo virtual matriz IN MX 0 matriz.ejemplo.com. ; servidor de correo alterno ; NAP Name-to-Address Mapping ;-------------------------- ; localhost A 127.0.0.1 ; No es obligatorio, pero se recomienda www IN A 192.25.13.8 apps IN A 192.25.13.5 oracle IN A 192.25.13.6 correo IN A 192.25.13.7 portal IN CNAME www ; Este es un alias del host 'www' </font> Un caso más, que se aplica para el loopback, es el registro PTR (Domain Name Pointer), que indica a que dirección IP corresponde un nombre. <font size="1">; A Address-to Name Mapping ;---------------------------- ; 1 IN PTR localhost. ; Reverse lookup del equipo en 'named.inversa' 8 PTR www.ejemplo.com. ; Reverse lookup en 'named.red.192' 5 PTR apps.ejemplo.com. ; Reverse lookup en 'named.red.192' 6 PTR oracle.ejemplo.com. ; Reverse lookup en 'named.red.192' </font> Ejemplos de archivos de zona.En base a las zonas mencionadas en el named.conf que vimos previamente y la estructura descrita, declaramos los siguientes archivos: Zona del localhost.# Nombre del archivo: named.local # Reenvia las llamadas del DNS a la interfase lo # No requiere modificarse en los servidores DNS @ IN SOA localhost. root.localhost. ( 2005072700 ; Serial 10800 ; Refresco de 3 horas 3600 ; Reintentos despues de 1 hora 604800 ; Expira después de 1 semana 86400 ) ; TTL mínimo de un día IN NS localhost. 1 IN PTR localhost. Zona del dominio externo (servidor principal o autoritario).<font size="-1"># Nombre del archivo: named.dominio @ IN SOA localhost. root.localhost. ( 2005072701 ; Serial 10800 ; Refresco de 3 horas 3600 ; Reintentos despues de 1 hora 604800 ; Expira después de 1 semana 86400 ) ; TTL mínimo de un día ; NS Name Servers ;------------------------------ ; IN NS dns.ejemplo.com. dns IN A 214.25.82.3 ; DNS externo ; MX Mail Exchangers ;------------------------- ; @ IN MX 0 correo.ejemplo.com. sede IN MX 0 correo.ejemplo.com. ; subdominio de correo virtual matriz IN MX 0 matriz.ejemplo.com. ; servidor de correo alterno ; NAP Name-to-Address Mapping ;-------------------------- ; localhost A 127.0.0.1 ; No es obligatorio, pero se recomienda www IN A 192.25.13.8 apps IN A 192.25.13.5 oracle IN A 192.25.13.6 correo IN A 192.25.13.7 portal IN CNAME www ; Este es un alias del host 'www' </font> Zona de resolución inversa del dominio.# Nombre del archivo: named.red.192 @ IN SOA localhost. root.localhost. ( 2005072702 ; Serial 10800 ; Refresco de 3 horas 3600 ; Reintentos despues de 1 hora 604800 ; Expira después de 1 semana 86400 ) ; TTL mínimo de un día ; A Address-to Name Mapping ;---------------------------- ; IN NS dns.ejemplo.com. 8 PTR www.ejemplo.com. 5 PTR apps.ejemplo.com. 6 PTR oracle.ejemplo.com. 7 PTR correo.ejemplo.com. Zona de cache distribuida por NIC.# Nombre del archivo: named.ca ; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache . " ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC registration services ; under anonymous FTP as ; file /domain/named.root ; on server FTP.RS.INTERNIC.NET ; -OR- under Gopher at RS.INTERNIC.NET ; under menu InterNIC Registration Services (NSI) ; submenu InterNIC Registration Archives ; file named.root ; ; last update: Feb 28, 1997 ; related version of root zone: 1997022800 ; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly NS.ISC.ORG ; . 3600000 NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 ; ; formerly NS.NIC.DDN.MIL ; . 3600000 NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 ; ; formerly AOS.ARL.ARMY.MIL ; . 3600000 NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 ; ; formerly NIC.NORDU.NET ; . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 ; ; temporarily housed at NSI (InterNIC) ; . 3600000 NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 ; ; temporarily housed at NSI (InterNIC) ; . 3600000 NS K.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. 3600000 A 198.41.0.11 ; ; temporarily housed at ISI (IANA) ; . 3600000 NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 ; ; temporarily housed at ISI (IANA) ; . 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 198.32.65.12 ; End of File En base a estos ejemplos, se pueden crear tantas zonas sean necesarias, vigilando en todo momento que las direcciones IP estén correctas. Creación de servidores esclavo.Se deben seguir los siguientes pasos para que las zonas del escalvo se sincronicen con el principal.
# Zona de resolución inversa zone "127.in-addr.arpa" { type <strong>slave</strong>; file "named.inversa"; <strong>masters { 192.168.196.2; } ;</strong> esta es la IP del DNS principal }; # Zona para el dominio principal zone "ejemplo.com" { type <strong>slave</strong>; file "named.dominio"; <strong>masters { 192.168.196.2; } ;</strong> esta es la IP del DNS principal } # Comentarios sobre este servidor # Es recomendable indicar el nombre y dominio options { directory "/var/named"; <strong>allow-transfer { 10.25.13.12; # IP del DNS esclavo };</strong> <strong>notify yes;</strong> allow-query { any; }; }; IN NS dns.ejemplo.com. ; DNS principal IN NS dnssec.ejemplo.com. ; DNS esclavo dns IN A 214.25.82.3 ; DNS principal dns2 IN A 214.25.82.15 ; DNS esclavo En cuanto se inicie el servicio, deberá comenzar la sincronización de los servidores. En caso de que los mensajes de sistema indiquen que se niega el permiso para escribir en las zonas al momento de sincronizar un esclavo con el principal, se deben de cambiar los permisos de la siguiente manera: chmod 2775 /var/named/* Administración del servicioArranque del servicio./etc/init.d/named start - o - service named start Alto del sistema./etc/init.d/named stop - o - service named stop Verificación del sistema.ps -fea |grep named - o - service named status Automatización al arranque del equipo.chconfig -level 123 named on
Consideraciones al instalar servidores de dominio.
Configuración de seguridadOcultando la versión de BIND.Editar la sección 'options' de named.conf y adicionar la siguiente línea, luego reiniciar el servicio, de manera que no indique la versión en que trabaja: options { directory "/var/named"; allow-query { any; }; version "FOO"; }; Restringuiendo las zonas de transferencia.Esto hace que sólo aquellos servidores esclavos que indiquemos puedan transferir las zonas, como vimos anteriormente. options { directory "/var/named"; allow-transfer { 10.25.13.12; }; notify yes; allow-query { any; }; }; Evitando spoofing.Esto es útil principalmente para permitir que sólo un cierto segmento de red pueda hacer consultas (en los DNS internos), además que reduce el tráfico de peticiones por la red. options { directory "/var/named"; allow-transfer { 10.25.13.12; }; notify yes; allow-query { 10.25.13.0/24; localhost; }; }; zone "red.10" { type master; file "named.red.10"; allow-query { any; }; }; Ejecutar named como un usuario 'enjaulado'.La idea es evitar que el usuario que ejecuta el servicio pueda realizar cualquier otra acción fuera de su carpeta, para lo que se usa el paquete bind-chroot, que configura y ejecuta todo el servicio en /var/named/chroot. Revisado el: 31-08-2007 15:41
|
Ningún comentario guardado
| < Anterior | Siguiente > |
|---|
| Enlaces - Blogroll |









