User:Raraneda/BIND/Guide
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.
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.
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).
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.
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).
$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).
$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.
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.
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.