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