BIND/Guía

From Gentoo Wiki
< BIND
Jump to:navigation Jump to:search
This page is a translated version of the page BIND/Guide and the translation is 93% complete.
Outdated translations are marked like this.

Esta guía le muestra al lector como instalar y configurar BIND para un dominio y una red local.

Introducción

Este tutorial le mostrará como instalar y configurar BIND, el servidor DNS más usado en Internet. Configuraremos BIND para un dominio utilizando diferentes configuraciones, una para una red local y otra para el resto del mundo. Esto se visualizará de dos formas:

  1. Vista de la zona interna (su red local).
  2. Vista de la zona externa (resto del mundo).

Datos usados en los ejemplos

Palabra clave Explicación Ejemplo
SU_DOMINIO Su nombre de dominio gentoo.org
SU_IP_PUBLICA La ip publica que le entrega 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_DNS_ESCLAVO La dirección IP del servidor DNS esclavo para su dominio. 209.177.148.228
ADMIN Los nombres de los administradores del servidor DNS. root
MODIFICACION La fecha de modificación del archivo de zona, con un número adicionado 2009062901

Configurando BIND

Instalación

Primero, Instala net-dns/bind.

root #emerge --ask net-dns/bind

Configurando /etc/bind/named.conf

Lo primero que debe configurar es /etc/bind/named.conf. La primera parte de este paso es especificar el directorio raíz de bind, el puerto e IP donde se presentará el servicio, el archivo pid, y una linea para el protocolo IPv6.

ARCHIVO /etc/bind/named.confSecció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 para nuestra red local.

ARCHIVO /etc/bind/named.confVista 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 otros nombre de dominios para nosotros (y cualquiera que quiera usar nuestro DNS).

ARCHIVO /etc/bind/named.confVista 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_DNS_ESCLAVO; };
        };
};

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

ARCHIVO /etc/bind/named.confVista externa
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 /var/log/named/ directorio debería existir y pertenecer a named:

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

Creando el archivo de zona interna

Nosotros usamos los hostnames y las direcciones IP de la foto en el siguiente ejemplo. Note que casi todos (no todos) los nombres de dominios terminan con "." (punto).

ARCHIVO /var/bind/pri/TU_DOMINIO.internal
$TTL 2d
@	IN SOA	ns.TU_DOMINIO.	ADMIN.TU_DOMINIO. (
	MODIFICACION	; serial
	3h	; refresh
	1h	; retry
	1w	; expiry
	1d )	; minimum
  
TU_DOMINIO.		IN MX	0 mail.TU_DOMINIO.
TU_DOMINIO.		IN TXT	"v=spf1 ip4:TU_IP_PUBLICA/32 mx ptr mx:mail.TU_DOMINIO ~all"
TU_DOMINIO.		IN NS	ns.TU_DOMINIO.
TU_DOMINIO.		IN NS	SERVIDOR_DNS_ESCLAVO
www.TU_DOMINIO.	IN A	192.168.1.3
ns.TU_DOMINIO.		IN A	192.168.1.5
mail.TU_DOMINIO.	IN A	192.168.1.3
router.TU_DOMINIO.	IN A	192.168.1.1
hell.TU_DOMINIO.	IN A	192.168.1.3
heaven.TU_DOMINIO.	IN A	192.168.1.5
desktop.TU_DOMINIO.	IN A	192.168.1.4

Creando el archivo de zona externo

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

ARCHIVO /var/bind/pri/YOUR_DOMAIN.external
$TTL 2d
@	IN SOA	ns.TU_DOMINIO.	ADMIN.TU_DOMINIO. (
	MODIFICACION	;serial
	3h	;refresh
	1h	;retry
	1w	;expiry
	1d )	;minimum
  
TU_DOMINIO.		IN MX	0 mail.TU_DOMINIO.
TU_DOMINIO.		IN TXT	"v=spf1 ip4:TU_IP_PUBLICA/32 mx ptr mx:mail.TU_DOMINIO ~all"
TU_DOMINIO.		IN NS	ns.TU_DOMINIO.
TU_DOMINIO.		IN NS	SERVIDOR_DNS_ESCLAVO
www.TU_DOMINIO. 	IN A	TU_IP_PUBLICA
ns.TU_DOMINIO.		IN A	TU_IP_PUBLICA
mail.TU_DOMINIO.	IN A	TU_IP_PUBLICA

Finalizando la configuración

Necesitarás agregar named al nivel de ejecución por defecto:

root #rc-update add named default

Configurando clientes

Ahora tu puedes usar tu propio servidor DNS en todas las máquinas de tu red local para resolver nombres de dominios. Modifica el archivo /etc/resolv.conf en todas las máquinas de tu red local.

ARCHIVO /etc/resolv.conf
search TU_DOMINIO
nameserver IP_SERVIDOR_DNS

Nota que IP_SERVIDOR_DNS es la misma que TU_IP_LOCAL que nosotros usamos en este documento. En la figura el ejemplo es 192.168.1.5.

Probando

Estamos en condiciones para probar nuestro nuevo servidor DNS. Primero, necesitamos iniciar el servicio.

root #/etc/init.d/named start

Ahora, vamos a usar comandos host para algunos dominios. Podemos usar cualquier computador de nuestra red local para esta prueba. Si no tienes net-dns/host instalado tu puedes usar ping como alternativa. De otra forma, primero corre emerge host .

user $host www.gentoo.org
www.gentoo.org has address 209.177.148.228
www.gentoo.org has address 209.177.148.229
user $host hell
hell.TU_DOMINIO has address 192.168.1.3
user $host router
router.TU_DOMINIO has address 192.168.1.1

Protegiendo el servidor con iptables

Cuando se tiene arrancado el servidor DNS, se puede configurar iptables con estas reglas para tener una protección añadida.

CÓDIGO Iptables rules
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 --dport 53 -j ACCEPT

This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Vicente Olivert Riera, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.