Saltar la navegación

Configuración de un servidor DNS solo autoritario

Un servidor DNS solo autoritario únicamente responde autoritariamente a consultas sobre zonas de las que es maestro o esclavo. No soporta el servicio de caché ni el de consultas recursivas.

El estamento fundamental para la configuración de este tipo de servidores es el siguiente:

recursion no;

con el cual, desactivamos la caché y las consultas recursivas.

La configuración del fichero named.conf la vamos a distribuir de la misma forma que en la configuración del servidor maestro.

# cat /etc/bind/named.conf
include "/etc/bind/named.conf.acl";
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.logging";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

Como no vamos a utilizar ninguna lista acl, el fichero named.conf.acl lo dejaremos vacío. Y en cuanto al mecanismo de los mensajes log de BIND, mantendremos el mismo sistema.

# cat /etc/bind/named.conf.logging 
logging {
    category default { mi_canal_log; };
    channel mi_canal_log {
        file "/var/log/bind/bind.log" versions 3 size 100k;
        print-time yes;
        print-severity yes;
        print-category yes;
    };
};

La configuración global de BIND será así:

# cat /etc/bind/named.conf.options 
options {
  directory "/var/cache/bind";

  version "No disponible";

  listen-on port 53 { any; };   # valor por defecto, pero es mejor ponerlo para saber que lo hemos tenido en cuenta

  recursion no;

  allow-query { localnets; };

  allow-transfer { none; };

minimal-responses yes;
};

Las líneas nuevas que se han introducido son las siguientes:

 recursion no;

Con el anterior estamento se desactiva la caché y las consultas recursivas. Si BIND recibe una consulta de un dominio que no tiene definido ni como maestro ni como esclavo, responderá rechazando la consulta con el estado REFUSED.

También se ha utilizado el estamento minimal-responses:

minimal-responses yes;

con el objetivo de mejorar el rendimiento del servidor al dar respuestas más cortas.

Definiremos ahora las zonas directa e inversa del dominio asir.com en el fichero /etc/bind/named.conf.local tal como se hizo en la configuración del servidor DNS maestro, al igual que los ficheros de zona db.master.asir.com y db.master.17.16.0.rev.

zone "asir.com" in {
   type master;
   file "db.master.asir.com";
   allow-transfer { dns-secundarios; };
};

zone "0.16.172.IN-ADDR.ARPA" in {
type master;
file "db.master.172.16.0.rev";
allow-transfer { dns-secundarios; };
};

El fichero /etc/bind/named.conf.default-zones se dejará como está, para que se carguen las zonas por defecto.

Por último reiniciamos el servicio:

# /etc/init.d/bind9 restart

y lo utilizamos en la configuración de los DNS de los equipos (resolv.conf, etc.).

Comprobemos ahora que nuestro servidor funciona ejecutando el comando dig, desde un equipo, con una consulta sobre el dominio asir.com:

# dig ftp.asir.com

; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> ftp.asir.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62440
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ftp.asir.com.            IN    A

;; ANSWER SECTION:
ftp.asir.com.        172800    IN    A    172.16.0.12

;; Query time: 1 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Mon Jun 15 20:45:58 CEST 2016
;; MSG SIZE  rcvd: 57

Podemos ver la rapidez de la respuesta, y también que la brevedad de esta, pues si no hubiésemos utilizado minimal-responses, el resultado hubiese sido el siguiente:

# dig ftp.asir.com

; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> ftp.asir.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35801
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ftp.asir.com.            IN    A

;; ANSWER SECTION:
ftp.asir.com.        172800    IN    A    172.16.0.12

;; AUTHORITY SECTION:
asir.com.        172800    IN    NS    ns1.asir.com.
asir.com.        172800    IN    NS    ns2.asir.com.
asir.com.        172800    IN    NS    ns3.asir.com.

;; ADDITIONAL SECTION:
ns1.asir.com.        172800    IN    A    172.16.0.1
ns2.asir.com.        172800    IN    A    172.16.0.2
ns3.asir.com.        172800    IN    A    172.17.0.20

;; Query time: 3 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Mon Jun 15 21:40:30 CEST 2016
;; MSG SIZE  rcvd: 159

Por último, si consultamos un dominio distinto a asir.com, no obtenemos respuesta:

# dig www.ies-mardecadiz.com

; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> www.ies-mardecadiz.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 39557
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.ies-mardecadiz.com.        IN    A

;; Query time: 5 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Mon Jun 15 21:42:57 CEST 2016
;; MSG SIZE  rcvd: 51

Licencia: licencia de software libre GPL