BIND (Español)

Esta traducción de
BIND
fue revisada el
2017-01-24
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
DNSCrypt
dnsmasq
Pdnsd
Unbound
PowerDNS
BIND (
Berkeley Internet Name Daemon
) es la implementación de referencia del protocolo DNS (
Domain Name System
).
Nota
The organization developing BIND is serving security notices to paying customers up to four days before Linux distributions or the general public.
[1]
Instalación
Los siguientes pasos indican cómo instalar una configuración básica de BIND como servidor local DNS de solo caché.
Instale
el paquete
bind
desde los repositorios oficiales.
Opcionalmente, edite
/etc/named.conf
, y añada la siguiente línea en la sección de opciones (options), para permitir únicamente conexiones de localhost:
listen-on { 127.0.0.1; };
Edite
resolv.conf
para usar el servidor local DNS, 127.0.0.1.
Inicie
named.service
con
systemd
.
Redireccionamiento
Cuando BIND actúa como un servidor de redireccionamiento DNS, almacena por una parte memoria caché de las búsquedas DNS ya realizadas, y por otra redirigirá las peticiones DNS no guardadas en caché a otros servidores DNS que se hayan definido, como podría ser el servidor DNS de nuestro ISP u otros servicios DNS globales como OpenNIC.
Para configurar el redireccionamiento DNS, basta con añadir las siguientes líneas a
/etc/named.conf
en la secciones de opciones globales (
options
) o en una sección de zona específica, y cambiar la dirección IP de acuerdo con la del servidor DNS que deseamos emplear.
options {
 listen-on { 192.168.66.1; };
 forwarders { 8.8.8.8; 8.8.4.4; };
};
Tras realizar este cambio, es necesario
reiniciar
named.service
.
Plantilla de configuración para ejecutar un dominio
Este es un sencillo tutorial para configurar una servidor DNS en una red doméstica con bind. Usaremos "domain.tld" como nuestro dominio.
Para ver ejemplo más elaborados, consúltese
Two-in-one DNS server with BIND9
.
1. Crear un archivo de zona
# nano /var/named/domain.tld.zone
$TTL 7200
; domain.tld
@       IN      SOA     ns01.domain.tld. postmaster.domain.tld. (
                                        2007011601 ; Serial
                                        28800      ; Refresh
                                        1800       ; Retry
                                        604800     ; Expire - 1 week
                                        86400 )    ; Minimum
                IN      NS      ns01
                IN      NS      ns02
ns01            IN      A       0.0.0.0
ns02            IN      A       0.0.0.0
localhost       IN      A       127.0.0.1
@               IN      MX 10   mail
imap            IN      CNAME   mail
smtp            IN      CNAME   mail
@               IN      A       0.0.0.0
www             IN      A       0.0.0.0
mail            IN      A       0.0.0.0
@               IN      TXT     "v=spf1 mx"
$TTL define el tiempo de vida en segundos por defecto para todos los registros de todos los tipos. En este ejemplo es de 2 horas.
El número de serie (
Serial
) debe incrementarse manualmente antes de reiniciar named cada vez que se cambie un registro en la zona.
De lo contrario los servidores esclavos no retransmitirán la zona, ya que para ello requieren un número serie mayor que el de la última versión de la zona que transfirieron.
2. Configurar un servidor maestro
Añade tu zona a
/etc/named.conf
:
zone "domain.tld" IN {
        type master;
        file "domain.tld.zone";
        allow-update { none; };
        notify no;
};
Inicie
named.service
.
Alternativamente,
recargue
los archivos de configuración. Esta última opción mantendrá el servidor disponible mientras se ejecuta el cambio.
3. Configurarlo como el servidor DNS por defecto
Si estamos ejecutando nuestro propio servidor DNS, podríamos querer usarlo no solo para redirigir peticiones DNS, sino para realizar todas las búsquedas DNS. Esto requiere la capacidad de hacer búsquedas
recursivas
. Para prevenir ataques de amplificación de DNS (
DNS Amplification Attacks
), la búsqueda recursiva está desactivada por defecto en la mayor parte de las configuraciones. El fichero Arch
/etc/named.conf
por defecto solo permite habilitar la recursión en la interfaz de circuito cerrado (
loopback
) del sistema.
allow-recursion { 127.0.0.1; };
Por lo tanto, para permitir búsquedas DNS para nuestro equipo, el fichero
resolv.conf
debe incluir 127.0.0.1 como servidor de nombres. Consulte
Conservar las configuraciones de DNS
para prevenir que este fichero sea reescrito.
Para proveer un servicio de nombres a nuestra red local, por ejemplo 192.168.0, debemos añadir el rango apropiado de direcciones IP a
/etc/named.conf
:
allow-recursion { 192.168.0.0/24; 127.0.0.1; };
Configurar BIND para servir zonas firmadas con DNSSEC
This article or section needs expansion.
Reason:
Esto es solo una lista de enlaces. (Discuss in
Talk:BIND (Español)
)
https://www.dnssec.net/practical-documents
https://www.cymru.com/Documents/secure-bind-template.html
[
enlace roto
2024-12-14]
(plantilla de configuración)
https://www.bind9.net/manuals
[
enlace roto
2021-11-07]
https://www.bind9.net/BIND-FAQ
[
enlace roto
2021-11-07]
http://blog.techscrawl.com/2009/01/13/enabling-dnssec-on-bind/
[
enlace roto
2024-07-30]
O use un mecanismo externo tal como OpenDNSSEC (cambio de clave completamente automático)
Escuchar automáticamente nuevas interfaces
Por defecto, bind hace un escaneo en búsqueda de nuevas interfaces cada hora, y deja de escuchar aquellas que dejan de existir. Este comportamiento se puede modificar añadiendo el parámetro:
interface-interval <rescan-timeout-in-minutes>;
en la sección de opciones de
named.conf
, con un valor máximo de 28 días (40320 min). También se puede desactivar esta caraterística con el valor 0.
A continuación, reniciamos el servicio.
Ejecutar BIND en un entorno chroot
Ejecutar en un entorno
chroot
mejora la seguridad del servidor DNS.
Crear un sistema de archivos para la jaula chroot
En primer lugar, debemos crear un lugar donde contener la jaula chroot, como el directorio
/srv/named
por ejemplo, y disponer todos los archivos necesarios para el funcionamiento de BIND en el mismo.
mkdir -p /srv/named/{dev,etc,usr/lib/engines,var/{run,log,named}}
 # Copy over required system files
 cp -av /etc/{localtime,named.conf} /srv/named/etc/
 cp -av /usr/lib/engines/* /srv/named/usr/lib/engines/
 cp -av /var/named/* /srv/named/var/named/.
 # Set up required dev nodes
 mknod /srv/named/dev/null c 1 3
 mknod /srv/named/dev/random c 1 8
 # Set Ownership of the files
 chown -R named:named /srv/named
Estas operaciones deberían crear el sistema de archivos necesario para la jaula chroot.
Archivo de servicio
A continuación, debemos crear un nuevo archivo de servicio que fuerce bind a ejecutarse dentro de chroot.
cp -av /usr/lib/systemd/system/named.service /etc/systemd/system/named-chroot.service
editando cómo el servicio llama a bind.
/etc/systemd/system/named-chroot.service
ExecStart=/usr/bin/named -4 -f -u named -t "/srv/named"
Ahora, reload systemd
systemctl daemon-reload
. Entonces
inicie
named-chroot.service
Véase también
BIND 9 DNS Administration Reference Book
DNS and BIND by Cricket Liu and Paul Albitz
Pro DNS and BIND
Internet Systems Consortium, Inc. (ISC)
DNS Glossary
[
enlace roto
2021-11-07]
Archived mailing list discussion on BIND's future