20.4. Archivo de configuración /etc/named.conf

Todos los ajustes del servidor de nombres BIND se almacenan en el archivo /etc/named.conf. Sin embargo, los datos de zona para que se gestionan los dominios (nombres de host, direcciones IP, etc.) se almacenan en archivos independientes en el directorio /var/lib/named. Hay más información sobre esto más adelante.

/etc/named.conf se puede dividir de forma somera en dos áreas. Una es la sección options para los ajustes generales, y la otra consiste en entradas zone para los dominios individuales. La sección de registro y las entradas de acl (lista de control de acceso) son opcionales. Las líneas de comentario comienzan con el signo almohadilla # o con dos barras //. A continuación se muestra un archivo /etc/named.conf básico en el Ejemplo 20.2, “Archivo /etc/named.conf básico”.

Ejemplo 20.2. Archivo /etc/named.conf básico

options { 
        directory "/var/lib/named"; 
        forwarders { 10.0.0.1; };
        notify no;
};

zone "localhost" in {
       type master;
       file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.zone";
};

zone "." in {
        type hint;
        file "root.hint";
};

20.4.1. Opciones de configuración importantes

directory "nombre de archivo";

Especifique el directorio en el que BIND puede encontrar los archivos que contienen los datos de la zona. Normalmente, se trata de /var/lib/named.

forwarders { ip-address; };

Especifica los servidores de nombres (la mayoría del proveedor) a los que se deberían remitir las peticiones DNS si no pueden resolverse directamente. Sustituya dirección ip con una dirección IP, como 10.0.0.1.

forward first;

Hace que las peticiones DNS se remitan antes de que se realice un intento para resolverlas mediante los servidores de nombres raíz. En lugar de forward first, se puede escribir forward only para remitir todas las peticiones y no enviar ninguna a los servidores de nombres raíz. Esto tiene sentido para las configuraciones de cortafuegos.

listen-on port 53 { 127.0.0.1; ip-address; };

Indica a BIND en qué interfaces de red y puerto se van a aceptar las consultas de clientes. No se tiene que especificar port 53 explícitamente, porque 53 es el puerto por defecto. Introduzca 127.0.0.1 para permitir peticiones desde el host local. Si omite esta entrada completamente, se usarán por defecto todas las interfaces.

listen-on-v6 port 53 {any; };

Indica a BIND en qué puerto debería escuchar para recibir las peticiones de cliente de IPv6. La única alternativa a any es none. Por lo que respecta a IPv6, el servidor sólo acepta direcciones comodín.

query-source address * port 53;

Esta entrada es necesaria si un cortafuegos está bloqueando las peticiones de DNS salientes. Le indica a BIND que publique las peticiones externamente desde el puerto 53 y no desde los puertos superiores a 1024.

query-source-v6 address * port 53;

Indica a BIND qué puerto usar para las consultas de IPv6.

allow-query { 127.0.0.1; red; };

Define las redes desde las que los clientes pueden publicar las peticiones de DNS. Sustituya red por la dirección como, por ejemplo, 192.168.1/24. El /24 al final es una expresión abreviada para la máscara de red, en este caso, 255.255.255.0.

allow-transfer ! *;;

Controla qué hosts pueden solicitar transferencias de zona. En el ejemplo, se deniegan completamente tales peticiones mediante ! *. Sin esta entrada, las transferencias de zona pueden solicitarse desde cualquier parte sin restricciones.

statistics-interval 0;

Si esta entrada no está, BIND genera varias líneas de información estadística por hora en /var/log/messages. Defína ek valor 0 para suprimir estas estadísticas completamente, o bien establezca un intervalo en minutos.

cleaning-interval 720;

Esta opción define con qué frecuencia borra BIND su caché. Cada vez que ocurra, se activará una entrada en /var/log/messages. La especificación del tiempo se realiza en minutos. El valor por defecto es 60 minutos.

interface-interval 0;

BIND busca regularmente las interfaces de red para las interfaces nuevas o no existentes. Si el valor está definido en 0, no se realiza y BIND sólo escucha en las interfaces detectadas al inicio. De lo contrario, el intervalo puede definirse en minutos. El valor por defecto es sesenta minutos.

notify no;

La opción no impide que se informe a otros servidores de nombres de los cambios realizados en los datos de la zona o de si el servidor de nombres se reinicia.

20.4.2. Registro

En BIND puede configurarse con mucho detalle qué, cómo y dónde tiene lugar el registro. Normalmente, los ajustes por defecto deberían ser suficientes. El Ejemplo 20.3, “Entrada para inhabilitar el registro” muestra la forma más sencilla de dicha entrada y suprime completamente cualquier registro.

Ejemplo 20.3. Entrada para inhabilitar el registro

logging {
        category default { null; };
};

20.4.3. Entradas de zona

Ejemplo 20.4. Entrada de zona para mi-dominio.de

 
zone "mi-dominio.de" in { 
      type master; 
      file "mi-dominio.zone"; 
      notify no; 
};

Después de zone, especifique el nombre del dominio que se va a administrar (mi-dominio.de) seguido por in y una serie de opciones relevantes entre llaves, tal y como se muestra en el Ejemplo 20.4, “Entrada de zona para mi-dominio.de”. Para definir una zona esclava, cambie type a slave y especifique un servidor de nombres que administre esta zona como master, que, a su vez, puede ser un esclavo de otro principal, tal y como se muestra en el Ejemplo 20.5, “Entrada de zona para otro-dominio.de”.

Ejemplo 20.5. Entrada de zona para otro-dominio.de

 
zone "otro-dominio.de" in { 
      type slave; 
      file "slave/otro-dominio.zone"; 
      masters { 10.0.0.1; }; 
};

Opciones de zona:

type master;

Al especificar master, se indica a BIND que la zona está gestionada por el servidor de nombres local. De esta forma se asume que se ha creado un archivo de zona con el formato correcto.

type slave;

Esta zona se transfiere desde otro servidor de nombres. Debe usarse junto con masters.

type hint;

La zona . del tipo hint se utiliza para indicar los servidores de nombres raíz. Es una definición de zona que no es necesario modificar.

file mi-dominio.zone o file “slave/otro-dominio.zone”;

Esta entrada indica el archivo que contiene los datos de zona para el dominio. En caso de un esclavo no hace falta que el archivo exista, ya que se toma de otro servidor de nombres. Para separar los archivos esclavos de los principales, utilice slave como directorio de los archivos esclavos.

masters { dirección-ip-servidor; };

Esta entrada sólo es necesaria para las zonas esclavas. Indica desde qué servidor de nombres se debe transferir el archivo de zona.

allow-update {! *; };

Esta opción regula el acceso de escritura externo, lo que permitirá a los clientes crear su propia entrada de DNS (algo que normalmente no debe hacerse por motivos de seguridad). Sin esta entrada, las actualizaciones de zona están prohibidas. La entrada mencionada anteriormente obtiene los mismos resultados porque ! * prohíbe igualmente cualquier actividad.