Gentoo Logo

Guía BIND de Gentoo

Contenido:

1.  Introducción

Este tutorial le enseñará cómo instalar y configurar BIND, el servidor DNS más utilizado en Internet. Configuraremos bind para su dominio usando distintas configuraciones, una para la red local y otra para el resto del mundo. Para hacer esto, usaremos vistas (en inglés views), una para la zona interna (su red local) y otra para la zona externa (el resto del mundo).

2.  Los datos usados en los ejemplos

Palabra clavev Explicación Ejemplo
SU_DOMINIO El nombre del dominio gentoo.org
SU_IP_PUBLICA La dirección ip asignada por el ISP 204.74.99.100
SU_IP_LOCAL La dirección ip local 192.168.1.5
SU_RED_LOCAL La red local 192.168.1.0/24
SERVIDOR_ESCLAVO_DNS La dirección ip del servidor esclavo DNS para el dominio. 209.177.148.228
ADMIN El nombre del administrador del servidor DNS. root
MODIFICACION La fecha de modificación del archivo de zona, con un número más. 2009062901

Ilustración 2.1: Ejemplo de la red

Fig. 1: network

3.  Configurando BIND

Instalación

Antes que nada, instale net-dns/bind.

Listado de Código 3.1: Instalando bind

# emerge net-dns/bind

Configurando /etc/bind/named.conf

Lo primero que debemos configurar es el archivo /etc/bind/named.conf. La primera parte de este paso es especificar el directorio raíz de bind, el puerto de escucha con los IPs, el archivo pid y una línea para el protocolo ipv6.

Listado de Código 3.2: Sección de opciones

options {
        directory "/var/bind";

        listen-on-v6 { none; };
        listen-on port 53 { 127.0.0.1; SU_IP_LOCAL; };

        pid-file "/var/run/named/named.pid";
};

La segunda parte de named.conf es la vista interna usada por nuestra red local.

Listado de Código 3.3: Vista interna

view "internal" {
        match-clients { SU_RED_LOCAL; localhost; };
        recursion yes;

        zone "SU_DOMINIO" {
                type master;
                file "pri/SU_DOMINIO.internal";
                allow-transfer { any; };
        };
};

La tercera parte de named.conf es la vista externa usada para resolver nuestro nombre de dominio para el resto del mundo y para resolver todos los demás nombres de dominios para nuestros usuarios (y cualquiera que desee usar nuestro servidor DNS).

Listado de Código 3.4: Vista externa

view "external" {
        match-clients { any; };
        recursion no;

        zone "." IN {
                type hint;
                file "named.ca";
        };

        zone "127.in-addr.arpa" IN {
                type master;
                file "pri/127.zone";
                allow-update { none; };
                notify no;
        };

        zone "SU_DOMINIO" {
                type master;
                file "pri/SU_DOMINIO.external";
                allow-query { any; };
                allow-transfer { SERVIDOR_ESCLAVO_DNS; };
        };
};

La parte final de named.conf es la política de registro.

Listado de Código 3.5: Política de registro

logging {
        channel default_syslog {
                file "/var/log/named/named.log" versions 3 size 5m;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
       category default { default_syslog; };
};

El directorio /var/log/named/ debe existir y pertenecer a named:

Listado de Código 3.6: Creando el archivo de registro

# mkdir -p /var/log/named/
# chmod 770 /var/log/named/
# touch /var/log/named/named.log
# chmod 660 /var/log/named/named.log
# chown -R named /var/log/named/
# chgrp -R named /var/log/named/

Creando el archivo de la zona interna

Usamos los nombres de anfitriones y direcciones IP de la red ejemplo cuya imagen aparece arriba. Note que casi todos (no todos) los nombres de dominios terminan en un "." (punto).

Listado de Código 3.7: /var/bind/pri/SU_DOMINIO.internal

$TTL 2d
@	IN SOA	ns.SU_DOMINIO.	ADMIN.SU_DOMINIO. (
	MODIFICACION	; serial
	3h	; refresh
	1h	; retry
	1w	; expiry
	1d )	; minimum

SU_DOMINIO.		IN MX	0 mail.SU_DOMINIO.
SU_DOMINIO.		IN TXT	"v=spf1 ip4:SU_IP_PUBLICA/32 mx ptr mx:mail.SU_DOMINIO ~all"
SU_DOMINIO.		IN NS	ns.SU_DOMINIO.
SU_DOMINIO.		IN NS	SERVIDOR_ESCLAVO_DNS
www.SU_DOMINIO.	IN A	192.168.1.3
ns.SU_DOMINIO.		IN A	192.168.1.5
mail.SU_DOMINIO.	IN A	192.168.1.3
router.SU_DOMINIO.	IN A	192.168.1.1
hell.SU_DOMINIO.	IN A	192.168.1.3
heaven.SU_DOMINIO.	IN A	192.168.1.5
desktop.SU_DOMINIO.	IN A	192.168.1.4

Creando el archivo de la zona externa

Aquí solo tenemos los subdominios que queremos para los clientes externos(www, mail y ns).

Listado de Código 3.8: /var/bind/pri/SU_DOMINIO.external

$TTL 2d
@	IN SOA	ns.SU_DOMINIO.	ADMIN.SU_DOMINIO. (
	MODIFICACION	;serial
	3h	;refresh
	1h	;retry
	1w	;expiry
	1d )	;minimum

SU_DOMINIO.		IN MX	0 mail.SU_DOMINIO.
SU_DOMINIO.		IN TXT	"v=spf1 ip4:SU_IP_PUBLICA/32 mx ptr mx:mail.SU_DOMINIO ~all"
SU_DOMINIO.		IN NS	ns.SU_DOMINIO.
SU_DOMINIO.		IN NS	SERVIDOR_ESCLAVO_DNS
www.SU_DOMINIO.	IN A	SU_IP_PUBLICA
ns.SU_DOMINIO.		IN A	SU_IP_PUBLICA
mail.SU_DOMINIO.	IN A	SU_IP_PUBLICA

Concluyendo la configuración

Será necesario agregar named al nivel de ejecución default:

Listado de Código 3.9: Agregando named al nivel de ejecución default

# rc-update add named default

4.  Configurando los clientes

Ahora puede usar su propio servidor DNS en todas las máquinas de su red local para resolver los nombres de dominios. Modifique el archivo /etc/resolv.conf de las máquinas de su red local.

Listado de Código 4.1: Modificando /etc/resolv.conf

search SU_DOMINIO
nameserver IP_DE_SU_SERVIDOR_DNS

Note que IP_DE_SU_SERVIDOR_DNS es igual que SU_IP_LOCAL usado antes en este documento. En la imagen de ejemplo arriba es 192.168.1.5.

5.  Comprobando

Podemos comprobar nuestro servidor DNS nuevo. Primero debemos iniciar el servicio.

Listado de Código 5.1: Iniciando el servicio manualmente

# /etc/init.d/named start

Ahora ejecutaremos algunos comandos con host a algunos dominios. Podemos usar cualquier computador de nuestra red local para esto. Si no tiene instalado net-dns/host, puede usar ping en su lugar, o sino haga emerge host.

Listado de Código 5.2: Haciendo la prueba

$ host www.gentoo.org
www.gentoo.org has address 209.177.148.228
www.gentoo.org has address 209.177.148.229

$ host hell
hell.SU_DOMINIO has address 192.168.1.3

$ host router
router.SU_DOMINIO has address 192.168.1.1

6.  Protegiendo el servidor con iptables

Si utiliza iptables para proteger al servidor, agregue estas reglas para el servicio DNS.

Listado de Código 6.1: Reglas para iptables

iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT


Imprimir

Página actualizada 21 de agosto, 2009

Sumario: Esta guía le enseñará cómo instalar y configurar BIND para un dominio y red local.

Vicente Olivert Riera
Autor

Joshua Saddler
Editor

John Christian Stoddart
Traductor

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.