User:Raraneda/BIND/Guide

From Gentoo Wiki
Jump to: navigation, search


Esta guía le enseñará como instalar y configurar BIND para tu dominio y red local.

Introducción

Este tutorial le mostrará como instalar y configurar BIND, el servidor DNS más usado en Internet. Configuraremos bind para tu dominio usando diferentes configuraciones, una para tu red local y otra para el resto del mundo. Usaremos vistas para ello. Una vista para tu zona interna (tu red local) y otra vista para tu zona externa (resto del mundo).

Datos usados en estos ejemplos

Palabra clave Explicación Ejemplo
TU_DOMINIO Tu nombre de dominio gentoo.org
TU_IP_PUBLICA La ip publica que te entrega el ISP 204.74.99.100
TU_IP_LOCAL La dirección IP local 192.168.1.5
TU_RED_LOCAL La red local 192.168.1.0/24
SERVIDOR_DNS_ESCLAVO La dirección IP del servidor DNS esclavo para tu 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.

CODE sección de opciones
options {
        directory "/var/bind";
  
        listen-on-v6 { none; };
        listen-on port 53 { 127.0.0.1; TU_IP_LOCAL; };
  
        pid-file "/var/run/named/named.pid";
};

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

CODE Vista interna
view "internal" {
        match-clients { TU_RED_LOCAL; localhost; };
        recursion yes;
  
        zone "TU_DOMINIO" {
                type master;
                file "pri/TU_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).

CODE 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 "TU_DOMINIO" {
                type master;
                file "pri/TU_DOMINIO.external";
                allow-query { any; };
                allow-transfer { SERVIDOR_DNS_ESCLAVO; };
        };
};

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

CODE External view
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).

FILE /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).

FILE /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

Tu 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.

FILE /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 habilitados 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

Si usas iptables para proteger tu servidor, tu puedes agregar estas reglas para el servidor DNS.

CODE 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.