Configuración del servidor DNS en Debian

Anuncio
Configuración del servidor DNS en Debian
Inicio
Última actualización: 13 de octubre, 2012
Tabla de Contenido
• Introducción
• Configuración de un DNS local
• Deshabilitar el DNS asignado por el ISP
• Habilitar el DNS asignado por el ISP
• Configuración de un DNS primario
• Configuración de un DNS secundario
Introducción
Berkeley Internet Name Domain (BIND) es una implementación del protocolo Domain Name System
(DNS), ampliamente usado para resolver nombres y números IP en Internet.
Si el computador está permanentemente conectado a Internet, puede resultar ventajoso instalar BIND
para mantener una tabla local con todos los nombres que resuelve el DNS autoritativo de la red.
Ingresa a root, por ejemplo, corriendo un "Terminal de <Root>" en el menú
"Aplicaciones/Accesorios" o, en el mismo menú, un "Terminal" y luego el comando su
(super user).
Configuración de un DNS local
Instala el paquete bind9,
# apt-get install bind9
Desinstala el paquete resolvconf, si es que está instalado,
# apt-get --purge remove resolvconf
Edita /etc/resolv.conf y modifícalo para que lea,
nameserver 127.0.0.1
Reinicia el daemon de BIND (named) con,
# /etc/init.d/bind9 restart
Lo que hemos hecho es transformar a localhost (127.0.0.1) en el servidor de nombres, que a través
de BIND hace requerimientos a los DNS de la red.
Para ver el servidor DNS local en acción da el comando,
$ dig www.debian.org
Retornará a la pantalla la consulta al DNS autoritativo del dominio debian.org,
$ dig www.debian.org
; <<>> DiG 9.7.2-P3 <<>> www.debian.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47296
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.debian.org.
;; ANSWER SECTION:
www.debian.org.
www.debian.org.
;;
;;
;;
;;
300
300
IN
IN
IN
A
A
A
128.31.0.51
206.12.19.7
Query time: 804 msec
SERVER: 127.0.0.1#53(127.0.0.1)
WHEN: Sun Mar 20 09:37:36 2011
MSG SIZE rcvd: 158
La primera consulta tardó 804 milisegundos (Query time). Repetir el mismo requerimiento será
prácticamente instantáneo. El servidor ahora consulta su propia tabla, en dónde existe guardada una
entrada con la información sobre www.debian.org,
$ dig www.debian.org
; <<>> DiG 9.7.2-P3 <<>> www.debian.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35228
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.debian.org.
;; ANSWER SECTION:
www.debian.org.
www.debian.org.
;;
;;
;;
;;
299
299
IN
IN
IN
A
A
A
128.31.0.51
206.12.19.7
Query time: 15 msec
SERVER: 127.0.0.1#53(127.0.0.1)
WHEN: Sun Mar 20 09:41:49 2011
MSG SIZE rcvd: 64
Deshabilitar el DNS asignado por el ISP
Muchos ISP usan DHCP para asignar parámetros de red a los computadores clientes del servicio. Por
omisión, el cliente DHCP reescribe /etc/resolv.conf con el DNS asignado por la red cada vez
que se reinicia. Para deshabilitar la reescritura de /etc/resolv.conf, edita el archivo de
configuración del cliente DHCP, generalmente /etc/dhcp/dhclient.conf y comenta del
instructivo request las opciones domain-name, domain-name-servers y
domain-search,
request subnet-mask, broadcast-address, time-offset, routers,
#
domain-name, domain-name-servers, domain-search,
host-name, netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
Cuando el cliente DHCP se reinicie no solicitará al servidor DHCP de la red los parámetros pertinentes
a DNS, dejando intacto /etc/resolv.conf.
Si la red utiliza PPPoE para establecer la conexión, edita /etc/ppp/peers/dsl-provider y
comenta el instructivo usepeerdns.
Habilitar el DNS asignado por el ISP
Para usar los DNS asignados por el ISP, edita el archivo /etc/bind/named.conf.options,
# nano /etc/bind/named.conf.options
para que lea,
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
//
//
//
//
If your ISP provided one or more IP addresses for stable
nameservers, you probably want to use them as forwarders.
Uncomment the following block, and insert the addresses replacing
the all-0's placeholder.
forwarders {
100.10.0.3;
100.10.0.7;
};
};
auth-nxdomain no;
# conform to RFC1035
listen-on-v6 { any; };
En forwarders van los números IP de los servidores de nombre (DNS) de la red, los mismos del
archivo /etc/resolv.conf original indicados en el instructivo nameserver.
El DNS ahora consulta los DNS indicados en forwarders y mantiene una tabla local.
Configuración de un DNS primario
La configuración avanzada de BIND aquí presentada es apta para un servidor Debian con número IP
estático y conectado permanentemente a Internet.
Para definir un nuevo dominio y hacer que el servidor actúe como su DNS autoritativo, necesitas
primero haber comprado un dominio en un registro de nombres de dominio (NIC), por ejemplo en NIC
Chile 1, y definir el servidor de nombres primario del nuevo dominio con el número IP y FQDN del
servidor BIND.
Vamos a usar de ejemplo el dominio ficticio.cl.
Edita /etc/bind/named.conf.local y agrega al final del archivo,
zone "ficticio.cl" {
type master;
file "/etc/bind/db.ficticio.cl";
allow-transfer { none; };
allow-query { any; };
};
Crea el archivo /etc/bind/db.ficticio.cl y agrega,
;
; archivo BIND para zona ficticio.cl
;
$TTL
604800
@
IN
SOA
ficticio.cl. hostmaster.ficticio.cl. (
1
; Serial
1200
; Refresh
300
; Retry
2419200
; Expire
1200 )
; Negative Cache TTL
ficticio.cl.
ficticio.cl.
ficticio.cl.
ficticio.cl.
IN
IN
IN
IN
NS
NS
MX
MX
ns1.ficticio.cl.
ns2.ficticio.cl.
1 mx1.ficticio.cl.
2 mx2.ficticio.cl.
localhost
ficticio.cl.
IN
IN
A
A
127.0.0.1
100.10.10.10
ns1
ns2
IN
IN
A
A
100.10.10.10
100.10.20.20
mx1
mx2
IN
IN
A
A
100.10.10.10
100.10.20.20
www
smtp
IN
IN
A
A
100.10.10.10
100.10.10.11
El instructivo TTL (Time To Live) indica la validez (en segundos) de la consulta, tras la cual deberá
ejecutarse una actualización. 604800 segundos equivalen a una semana.
El número Serial debería incrementarse cada vez que se modifica la zona. El campo Refresh
indica el intervalo de tiempo que los DNS secundarios deben refrescar la información del archivo de
zona si han habido cambios (20 munutos). Retry indica el intervalo de tiempo que los DNS
secundarios deben reintentar actualizar la información si el DNS primario no responde (5 minutos).
Expire indica el tiempo que el DNS secundario expira como servidor de nombres de la zona en caso
el DNS primario no responda a requerimiento de actualización (4 semanas). Negative Cache TTL
indica el TTL en caso de una consulta con respuesta negativa (20 minutos).
Modifica todas las ocurrencias de ficticio.cl por el dominio pertinente. Todas ellas deben
terminar con un punto. ns1 debe llevar el número IP del DNS primario, es decir, el servidor BIND.
ns2 define el DNS secundario. Puede ser el mismo servidor BIND, otro, o el que habilita el registro de
nombres de dominio, generalmente en forma gratuita, por ejemplo, secundario.nic.cl. mx1 y
mx2 son los registros MX (Mail eXchanger) e indican el destino del correo eletrónico del dominio
(@ficticio.cl), según la prioridad indicada por los números que preceden el nombre. En principio,
es necesario solo un registro MX. El MTA de todo servidor MX debe aceptar correo-e a nombre del
dominio.
En este ejemplo, ficticio.cl y www.ficticio.cl apuntan al mismo número IP. Esto no debe
necesariamente ser así.
Si tienes un cortafuego, habilita el puerto 53 UDP y TCP hacia requerimientos por la interfase que va a
servir BIND.
Reinicia named con,
# /etc/init.d/bind9 restart
Configuración de un DNS secundario
El DNS primario debe apuntar ns2 al servidor BIND que va a actuar de DNS secundario.
Edita named.conf.local en el DNS primario y modifica el instructivo allow-transfer de la
zona,
zone "ficticio.cl" {
type master;
file "/etc/bind/db.ficticio.cl";
allow-query { any; };
allow-transfer { 100.10.20.20; };
};
en donde allow-transfer debe llevar el número IP del servidor DNS secundario indicado en el
archivo de zona.
Edita named.conf.local en el DNS secundario y agrega al final del archivo,
zone "ficticio.cl" {
type slave;
file "/etc/bind/db.ficticio.cl";
allow-query { any; };
masters { 100.10.10.10; };
};
en donde masters debe llevar el número IP del servidor DNS primario indicado en el archivo de
zona.
Si tienes un cortafuego, habilita el puerto 53 UDP y TCP hacia requerimientos por la interfase que va a
servir BIND.
El usuario de sistema bind en el DNS secundario necesita permisos para modificar archivos en el
directorio /etc/bind,
# chmod g+ws /etc/bind
Reinicia named con,
# /etc/init.d/bind9 restart
Reinicia named en el servidor DNS primario también. El DNS primario enviará un requerimiento de
actualización al DNS secundario y éste creará una copia exacta del archivo de zona
/etc/bind/db.ficticio.cl.
Descargar