BIND (Español)

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.
Esta traducción de BIND fue revisada el 2017-01-24. Si existen cambios puede actualizarla o avisar al equipo de traducción.

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

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 .

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

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

Ahora, reload systemd . Entonces inicie

Véase también

gollark: I don't see how you can empirically test your ethics like you can a scientific theory.
gollark: I'm not sure exactly how you define "moral relativists", but personally I've never seen a convincing/working argument for some particular ethical system being *objectively true*, and don't think it's even possible.
gollark: I don't think that works for the AI unless this situation is repeated somehow. It may not work at all, since you can't actually tell if it is torturing you or not, from outside it.
gollark: Oh, oops, I got the lever direction mixed up, sorry. I meant that if you left it trapped then it wouldn't have reason to torture you.
gollark: And you can verify that.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.