BIND9 en CentOS5.5.

El escenario que planteo es el siguiente: un servidor DNS que debe resolver peticiones tanto desde la intranet como desde internet resolviendo en determinados casos (el de nuestros propios servicios) IPs diferentes dependiendo de desde donde provenga la consulta.

La red local es: 192.168.0.0/24.

El servicio correra en chroot con lo cual lo primero es instalar los paquetes adecuados:

# yum install bind bind-libs bind-chroot

De esta manera Bind se ejecuta en una jaula dentro del directorio /var/named/chroot/. En la instalacion de Centos no se crean los archivos de configuracion por defecto pero podemos utilizar como base estos ejemplos:

/usr/share/doc/bind-9.x.x/sample/etc/
/usr/share/doc/bind-9.x.x/sample/var/

Vamos con la configuracion del named.conf para el escenario que planteaba mas arriba. Este es el archivo con los apartados comentados:

# Este es el apartado general de configuracion del servicio.
#

options
{
// El puerto donde se aceptaran peticiones

#query-source address * port 53;

// Ficheros donde named necesita escribir:
directory “/var/named”; // por defecto
dump-file               “data/cache_dump.db”;
statistics-file         “data/named_stats.txt”;
memstatistics-file      “data/named_mem_stats.txt”;
// Los servidores que resolveran las consultas
forwarders {
8.8.8.8;
};
forward first;

// no mostrar la version de Bind
version “REFUSED”;

};
logging
{
/*      Para activar el debug
*      named intentare escribir el fichero named.run en /var/named.
*      Por defecto SELinux no premirte modificar el directorio /var/named,
*      asi que hay que crear el archivo en data/ :
*/
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};

// Para habilitar la administracion con la herremienta rndc
key “rndckey” {
algorithm hmac-md5;
secret “XXXXXXXXXXXXXXXXX”;
};

//
// Todas las zonas de Bind9 estan en una vista.
//
// Por defecto si named.conf no contiene ninguna clausula “view” todas las zonas
// se encuentran bajo la vista “default” que coincide con todos los clientes.
//
// Si named.conf contiene alguna zona todas las zonas debes estar en alguna vista
// por lo tanto es recomendable comenzar usando vistas para evitar
// reconfiguraciones en el futuro.
//

// acls
acl “my_subnets” {
192.168.0.0/24;
};

// vista localhost
view “local”
{
// Esta vista configura Bind para resolver en localhost:
match-clients           { localhost; };
match-destinations      { localhost; };
recursion yes;

# todas las vistas deben contener la zona root hints:
include “/etc/named.root.hints”;

zone “x.com” {
type master;
file “zones/x.com.zone”;
allow-update { none; };
};

include “/etc/named.rfc1912.zones”;
};

view “intranet”
{
/* Esta vista contiene las zonas tal y como se van a entregar a los clientes de la
intranet que conectan desde las redes locales.
*/

match-clients           { my_subnets; };
match-destinations      { my_subnets; };
recursion yes;

// todas las vistas deben contener la zona root hints:
include “/etc/named.root.hints”;

allow-query {
127.0.0.1;
my_subnets;
};

zone “x.com” {
type master;
allow-update { none; };
file “zones/x.com.zone”;
allow-transfer { none; };
};
zone “0.168.192.in-addr.arpa” {
type master;
allow-update { none; };
file “zones/192.168.0.zone”;
allow-transfer { none; };
};

};

view “internet”
{
/* Esta vista contiene las entradas tal y como se mostraran a los clientes externos
* que no accedan desde las subredes locales:
*/
match-clients           { any; };
match-destinations      { any; };

// no permitir la recursion a los clientes externos
recursion no;

// los clientes externos sin acceso a la cache de consultas
allow-query-cache { none; };

// todas las vistas deben contener la zona root hints:
include “/etc/named.root.hints”;

zone “x.com” {
type master;
allow-update { none; };
file “zones/ext-x.com.zone”;
};
};

Aqui se puede descargar el archivo: http://www.kurtsik.org/biltegia/named.conf

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.