El archivo named.conf es una colecci�n de declaraciones usando opciones anidadas rodeadas por car�cteres de llaves, { }. Los administradores deben tener mucho cuidado cuando est�n modificando named.conf para evitar errores sint�cticos puesto que hasta el error m�s peque�o puede impedir que el servicio named arranque.
Aviso
No modifique manualmente el archivo /etc/named.conf o cualquier archivo en el directorio /var/named/ si est� usando la Herramienta de configuraci�n del Servicio de Nombres de Dominio. Cualquier cambio manual a esos archivos ser�n sobreescritos la pr�xima vez que se use Herramienta de configuraci�n del Servicio de Nombres de Dominio.
Un archivo t�pico de named.conf est� organizado de forma similar al ejemplo siguiente:
En esta declaraci�n, sustituya <acl-name> con el nombre de la lista de control de acceso y reemplace <match-element> con una lista de direcciones IP separada por puntos y comas. La mayor�a de las veces, una direcci�n IP individual o notaci�n de red IP (tal como 10.0.1.0/24) es usada para identificar las direcciones IP dentro de la declaraci�n acl.
La siguiente lista de control de acceso ya est�n definidas como palabras claves para simplificar la configuraci�n:
any — Hace coincidir todas las direcciones IP.
localhost — Hace coincidir cualquier direcci�n IP que se use el sistema local.
localnets — Hace coincidir cualquier direcci�n IP en cualquier red en la que el sistema local est� conectado.
none — No concuerda ninguna direcci�n IP.
Cuando lo utilice con otras pautas (tales como declaraciones options), las declaraciones acl pueden ser muy �tiles al asegurar el uso correcto de su servidor de nombres BIND.
El ejemplo siguiente define dos listas de control de acceso y utiliza una declaraci�n options para definir c�mo son tratadas en el servidor de nombres:
Este ejemplo contiene dos listas de control de acceso, black-hats y red-hats. Los hosts en la lista black-hats se les niega el acceso al servidor de nombres, mientras que a los hosts en la lista red-hats se les d� acceso normal.
12.2.1.2. Declaraci�n include
La declaraci�n include permite incluir archivos en un named.conf. De esta forma los datos de configuraci�n confidenciales (tales como llaves) se pueden colocar en un archivo separado con permisos restringidos.
Una declaraci�n include tiene la forma siguiente:
include "<file-name>"
En esta declaraci�n, <file-name> es reemplazado con una ruta absoluta a un archivo.
12.2.1.3. Declaraci�n options
La declaracion options define opciones de configuraci�n de servidor globales y configura otras declaraciones por defecto. Puede ser usado para especificar la ubicaci�n del directorio de trabajo named, los tipos de consulta permitidos y mucho m�s.
La declaraci�n options toma la forma siguiente:
options {
<option>;
[<option>; ...]
};
En esta declaraci�n, las directivas <option> son reemplazadas con una opci�n v�lida.
Las siguientes son opciones usadas a menudo:
allow-query — Especifica cu�les hosts tienen permitido consultar este servidor de nombres. Por defecto, todos los hosts tienen derecho a consultar. Una lista de control de acceso, o una colecci�n de direcciones IP o redes se puede usar aqu� para s�lo permitir a hosts particulares hacer consultas al servidor de nombres.
allow-recursion — Parecida a la opci�n allow-query, salvo que se aplica a las peticiones recursivas. Por defecto, todos los hosts est�n autorizados a presentar peticiones recursivas en un servidor de nombres.
blackhole — Especifica cu�les hosts no tienen permitido consultar al servidor de nombres.
directory — Especifica el directorio de trabajo named si es diferente del valor predeterminado /var/named.
forward — Especifica el comportamiento de reenv�o de una directiva forwarders.
Se aceptan las siguientes opciones:
first — Indica que los servidores de nombres especificados en la directiva forwarders sean consultados antes de que named intente resolver el nombre el mismo.
only — Especifica que named no intente la resoluci�n de nombres �l mismo en el evento de que fallen las consultas a los servidores de nombres especificados en la directriz forwarders.
forwarders — Especifica una lista de direcciones IP v�lidas para los servidores de nombres donde las peticiones se pueden reenviar para ser resueltas.
listen-on — Especifica la interfaz de red en la cual named escucha por solicitudes. Por defecto, todas las interfaces son usadas.
Usando esta directiva en un servidor DNS que tambi�n act�a como una gateway, BIND se puede configurar para s�lo contestar solicitudes que se originan desde algunas de las redes.
Una directiva listen-on se parece al ejemplo siguiente:
options {
listen-on { 10.0.1.1; };
};
En este ejemplo, solamente son aceptadas las peticiones que llegan desde la interfaz de red sirviendo a la red privada (10.0.1.1).
notify — Controla si named notifica a los servidores esclavos cuando una zona es actualizada. Acepta las opciones siguientes:
yes — Notifica a los servidores esclavos.
no — No notifica a los servidores esclavos.
explicit — Solamente notifica a los servidores esclavos especificados en una lista de also-notify dentro de la declaraci�n de una zona.
pid-file — Especifica la ubicaci�n del archivo del proceso ID creado por named.
root-delegation-only — Activa la implementaci�n de las propiedades de delegaci�n en dominios de nivel superior (TLDs) y zonas ra�z con una lista opcional de exclusi�n. La delegaci�n es el proceso de separar una zona sencilla en m�ltiples zonas. Para poder crear una zona delegada, se utilizan elementos conocidos como registros NS. Los registros de servidor de nombres (registros de delegaci�n) anuncian los servidores de nombres autorizados para una zona particular.
El siguiente ejemplo de root-delegation-only especifica una lista excluyente de los TDLs desde los que se esperan respuestas no delegadas:
statistics-file — Permite especificar la localizaci�n alternativa de los archivos de estad�sticas. Por defecto, las estad�sticas de named son guardadas al archivo /var/named/named.stats.
Existen numerosas opciones disponibles, muchas de ellas dependen unas de otras para poder funcionar correctamente. Consulte el Manual de referencia para el administrador de BIND 9 en Secci�n 12.7.1 y la p�gina man para bind.conf para m�s detalles.
12.2.1.4. Declaraci�n zone
Una declaraci�n zone define las caracter�sticas de una zona tal como la ubicaci�n de su archivo de configuraci�n y opciones espec�ficas de la zona. Esta declaraci�n puede ser usada para ignorar las declaraciones globales options.
Una declaraci�n zone tiene la forma siguiente:
zone <zone-name><zone-class> {
<zone-options>;
[<zone-options>; ...]
};
En esta declaraci�n, <zone-name> es el nombre de la zona, <zone-class> es la clase opcional de la zona, y <zone-options> es una lista de opciones que caracterizan la zona.
El atributo <zone-name> para la declaraci�n de zona es particularmente importante, pues es el valor por defecto asignado para la directriz $ORIGIN usada dentro del archivo de zona correspondiente localizado en el directorio /var/named/. El demonio named anexa el nombre de la zona a cualquier nombre de dominio que no est� completamente cualificado listado en el archivo de zona.
Por ejemplo, si una declaraci�n zone define el espacio de nombres para example.com, utilice example.com como el <zone-name> para que sea colocado al final de los nombres de hosts dentro del archivo de zona example.com.
Para m�s informaci�n sobre los archivos de zona, consulte Secci�n 12.3.
Las opciones m�s comunes para la declaraci�n zone incluyen lo siguiente:
allow-query — Especifica los clientes que se autorizan para pedir informaci�n sobre una zona. Por defecto, todas las peticiones de informaci�n son autorizadas.
allow-transfer — Especifica los servidores esclavos que est�n autorizados para pedir una transferencia de informaci�n de la zona. Por defecto, todas las peticiones se autorizan.
allow-update — Especifica los hosts que est�n autorizados para actualizar din�micamente la informaci�n en sus zonas. Por defecto, no se autoriza la actualizaci�n de la informaci�n din�micamente.
Tenga cuidado cuando autorice a los hosts para actualizar la informaci�n de su zona. No habilite esta opci�n si no tiene confianza en el host que vaya a usar. Es mejor que el administrador actualice manualmente los registros de zona y que vuelva a cargar el servicio named.
file — Especifica el nombre del archivo en el directorio de trabajo named que contiene los datos de configuraci�n de zona.
masters — Especifica las direcciones IP desde las cuales solicitar informaci�n autorizada. Solamente se usa si la zona est� definida como typeslave.
notify — Controla si named notifica a los servidores esclavos cuando una zona es actualizada. Esta directiva s�lo acepta las opciones siguientes:
yes — Notifica a los servidores esclavos.
no — No notifica a los servidores esclavos.
explicit — Solamente notifica a los servidores esclavos especificados en una lista de also-notify dentro de la declaraci�n de una zona.
type — Define el tipo de zona.
Abajo se muestra una lista de las opciones v�lidas:
delegation-only — Refuerza el estado de delegaci�n de las zonas de infraestructura tales como COM, NET u ORG. Cualquier respuesta recibida sin una delegaci�n expl�cita o impl�cita es tratada como NXDOMAIN. Esta opci�n solamente es aplicable en TLDs o en archivos ra�z de zona en implementaciones recursivas o de cach�.
forward — Dice al servidor de nombres que lleve a cabo todas las peticiones de informaci�n de la zona en cuesti�n hacia otros servidores de nombres.
hint — Tipo especial de zona que se usa para orientar hacia los servidores de nombres root que sirven para resolver peticiones de una zona que no se conoce. No se requiere mayor configuraci�n que la establecida por defecto con una zona hint.
master — Designa el servidor de nombres actual como el que tiene la autoridad para esa zona. Una zona se puede configurar como tipo master si los archivos de configuraci�n de la zona residen en el sistema.
slave — Designa el servidor de nombres como un servidor esclavo para esa zona. Tambi�n especifica la direcci�n IP del servidor de nombres maestro para la zona.
zone-statistics — Configura named para mantener estad�sticas concerniente a esta zona, escribi�ndola a su ubicaci�n por defecto (/var/named/named.stats) o al archivo listado en la opci�n statistics-file en la declaraci�n server. Consulte la Secci�n 12.2.2 para m�s informaci�n sobre la declaraci�n server.
12.2.1.5. Ejemplo de declaraciones de zone
La mayor�a de los cambios al archivo /etc/named.conf de un servidor de nombres maestro o esclavo envuelven agregar, modificar o borrar declaraciones zone. Mientras que estas declaraciones zone pueden contener muchas opciones, la mayor�a de los servidores de nombres requieren s�lo un peque�o subconjunto para funcionar efectivamente. Las siguientes declaraciones zone son ejemplos muy b�sicos que ilustran la relaci�n de servidores de nombres maestro-esclavo.
A continuaci�n se muestra un ejemplo de una declaraci�n de zone para un servidor de nombres primario hospedando example.com (192.168.0.1):
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
En la declaraci�n, la zona es identificada como example.com, el tipo es configurado a master y el servicio named se instruye para leer el archivo /var/named/example.com.zone. Tambi�n le dice a named que no permita a ning�n otro host que realice actualizaciones.
Una declaraci�n zone de servidor esclavo para example.com se ve un poco diferente comparado con el ejemplo anterior. Para un servidor esclavo, el tipo se coloca a slave y en lugar de la l�nea allow-update est� una directiva dici�ndole a named la direcci�n IP del servidor maestro.
A continuaci�n se muestra un ejemplo de una declaraci�n zone para un servidor esclavo para la zona example.com:
zone "example.com" {
type slave;
file "example.com.zone";
masters { 192.168.0.1; };
};
Esta declaraci�n zone configura named en el servidor esclavo a que busque por el servidor maestro en la direcci�n IP 192.168.0.1 por informaci�n sobre la zona example.com. La informaci�n que el servidor esclavo recibe desde el servidor maestro es guardada al archivo /var/named/example.com.zone.
12.2.2. Otros tipos de declaraciones
La lista siguiente muestra tipos de declaraciones usadas con menos frecuencia disponibles dentro de named.conf:
controls — Configura varios requerimientos de seguridad necesarios para usar el comando rndc para administrar el servicio named.
Consulte la Secci�n 12.4.1 para conocer m�s sobre la estructura de la declaraci�n controls y de las opciones que est�n disponibles.
key "<key-name>" — Define una llave particular por nombre. Las claves son usadas para autenticar varias acciones, tales como actualizaciones seguras o el uso del comando rndc. Se usan dos opciones con key:
algorithm <algorithm-name> — El tipo de algoritma usado, tal como dsa o hmac-md5.
secret "<key-value>" — La clave encriptada.
Consulte la Secci�n 12.4.2 para instrucciones sobre c�mo escribir una declaraci�n key.
logging — Permite el uso de m�ltiples tipos de registro, llamados channels. Usando la opci�n channel dentro de la declaraci�n logging, se puede construir un tipo registro personalizado, con su propio nombre de archivo (file), tama�o l�mite (size), versi�n (version), y nivel de importancia (severity). Una vez que se haya definido el canal personalizado, se usa una opci�n category para clasificar el canal y comenzar a conectar cuando se reinicie named.
Por defecto, named registra mensajes est�ndar al demonio syslog, que les sit�a en /var/log/messages. Esto se debe a que varios canales est�ndares se encuentran incorporados a BIND junto con varios niveles de severidad, tales como uno que maneja la informaci�n de mensajes de registros (default_syslog) y otro que maneja mensajes de depuraci�n (default_debug). Una categor�a por defecto, llamada default, usa los canales incorporados para hacer conexiones normales sin ninguna configuraci�n especial.
La personalizaci�n del proceso de conexi�n es un proceso con muchos detalles y que est� m�s all� del objetivo de este cap�tulo. Para informaci�n sobre la creaci�n de registros personalizados BIND, consulte el Manual de referencia del administrador de BIND 9 mencionado en la Secci�n 12.7.1.
server — Define opciones particulares que afectan como named deber�a actuar con respecto a servidores de nombres remotos, especialmente en lo que respecta a las notificaciones y transferencias de zonas.
La opci�n transfer-format controla si un registro de recursos es enviado con cada mensaje (one-answer) o si registros de m�ltiples recursos son enviados con cada mensaje (many-answers). Mientras que many-answers es m�s eficiente, s�lo los nuevos servidores de nombres BIND lo entienden.
trusted-keys — Contiene llaves p�blicas utilizadas por DNS seguro, DNSSEC. Para mayor informaci�n sobre la seguridad de BIND, consulte la Secci�n 12.5.3.
view "<view-name>" — Crea vistas especiales dependiendo de en qu� red est� el host que contacta el servidor de nombres. Esto permite a determinados hosts recibir una respuesta que se refiere a una zona particular mientras que otros hosts reciben informaci�n completamente diferente. Alternativamente, algunas zonas puede que s�lo est�n disponibles para ciertos hosts de confianza mientras que otros hosts menos autorizados, s�lo pueden hacer peticiones a otras zonas.
Se pueden usar m�ltiples visualizaciones, siempre y cuando sus nombres sean �nicos. La opci�n match-clients especifica las direcciones IP que aplican a una vista particular. Cualquier declaraci�n de options puede tambi�n ser usada dentro de una vista, ignorando las opciones globales ya configuradas por named. La mayor�a de las sentencias view contienen m�ltiples declaraciones zone que aplican a la lista match-clients. El orden en que las sentencias view son listadas es importante, pues la primera sentencia view que coincida con una direcci�n IP de cliente particular es usada.
Consulte la Secci�n 12.5.2 para m�s informaci�n sobre la declaraci�n view.
12.2.3. Etiquetas de comentarios
La siguiente es una lista de las etiquetas de comentarios v�lidas usadas dentro de named.conf:
// — Cuando se coloca al comienzo de una l�nea, esa l�nea es ignorada por named.
# — Cuando se coloca al comienzo de una l�nea, esa l�nea es ignorada por named.
/* y */ — Cuando el texto se coloca entre estas etiquetas, se ignora el bloque de texto por named.