This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
BIND/Guía
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:
- Vista de la zona interna (su red local).
- 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.
/etc/bind/named.conf
Sección de opcionesoptions { 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.
/etc/bind/named.conf
Vista internaview "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).
/etc/bind/named.conf
Vista externaview "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.
/etc/bind/named.conf
Vista externalogging { 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
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 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.
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.