Escolar Documentos
Profissional Documentos
Cultura Documentos
(DNS), parte I.
Autor: Joel Barrios Dueas
Correo electrnico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
1999-2014 Joel Barrios Dueas. Usted es libre de copiar, distribuir y comunicar pblicamente la obra y hacer obras derivadas bajo las
condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo
su publicacin, a travs de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una
obra derivada, slo puede distribuir la obra generada bajo una licencia idntica a sta. Al reutilizar o distribuir la obra, tiene que dejar
bien claro los trminos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de
los derechos de autor. Los derechos derivados de usos legtimos u otras limitaciones no se ven afectados por lo anterior. Licencia
completa en castellano. La informacin contenida en este documento y los derivados de ste se proporcionan tal cual son y los autores
no asumirn responsabilidad alguna si el usuario o lector, hace mal uso de stos.
Introduccin.
Es imprescindible primero estudiar y comprender, los conceptos descritos en el documento titulado
Introduccin al protocolo DNS.
El Servidor DNS BIND es utilizado de manera amplia en Internet en aproximadamente el 99% de los
servidores DNS del mundo, proporcionando una robusta y estable solucin.
Descripcin.
bind
bind-libs
Paquete.
Descripcin.
bind-chroot
bind-utils
cachingnameserver
El archivo /var/named/named.ca contiene la informacin de los servidores DNS raz necesaria para
poder iniciar el cache de todo servidor DNS de Internet. Actualice este archivo para evitar problemas
para la resolucin de algunas zonas ejecutando lo siguiente:
wget -N
http://www.internic.net/domain/named.root \
-O /var/named/named.ca
Tambin puede ejecutar lo siguiente para lograr el mismo fin.
dig +bufsize=1200 +norec NS . @a.root-servers.net > /var/named/named.ca
Procedimientos.
SELinux y el servicio named.
A mediados de 2008, Common Vulnerabilities and Exposures List y US-CERT, reportaron que el
investigador Dan Kaminskydescubri una vulnerabilidad que afectaba a varias implementaciones
de DNS (BIND 8 y 9 antes de 9.5.0-P1, 9.4.2-P1 y 9.3.5-P1; Microsoft DNS en todas las versiones
de Windows 2000 SP4, XP SP2 y SP3, as como Server 2003 SP1 y SP2).
Esta vulnerabilidad permite a cualquier atacante remoto el poder falsificar trfico DNS a travs de
ciertas tcnicas de contaminacin de cache en servidores que realizan resolucin recursiva (es decir
cuando se usa la opcin allow-recursion abierta a todo el mundo, como ocurre en los servidores
DNS pblicos) y se relaciona a insuficiente aleatoriedad de las identidades de transaccin y de los
puertos de origen. Es decir, una vulnerabilidad de entropa de insuficiencia de zcalos (sockets) de
DNS (conocido como DNS Insufficient Socket Entropy Vulnerability). A travs de esta
vulnerabilidad un atacante puede contaminar el cache de un servidor DNS y hacer que los clientes
se conecten hacia direcciones falsas. Es importante aclarar que en realidad se trata de una
vulnerabilidad en el diseo del protocolo DNS.
SELinux protege casi por completo al servicio named contra la vulnerabilidad anteriormente
descrita. Es por tal motivo que es importante utilizar SELinux.
Ejecute lo siguiente para que SELinux permita al servicio named trabajar con permisos de escritura
para zonas maestras, es decir un esquema de servidor maestro con servidores esclavos o bien
como servidor DNS dinmico:
setsebool -P named_write_master_zones 1
Lo anterior aplica para CentOS 5 y 6 y Red Hat Enterprise Linux 5 y 6.
Nota.
Slo para CentOS 5 y Red Hat Enterprise Linux 5: ejecute lo siguiente para definir que se desactive la
proteccin de SELinux para el servicio named, haciendo que todo lo anteriormente descrito en esta seccin
pierda sentido y que el servidor sea parcialmente susceptible a la vulnerabilidad descubierta por Kaminski:
setsebool -P named_disable_trans 1
S realiza el procedimiento anterior, es importante configurar la funcin de consultas recursivas exclusivamente
para redes en la que se confe plenamente.
Esta poltica, al igual que otras similares, fue eliminada en CentOS 6 y Red Hat Enterprise Linux 6.
Cualquier archivo de zona que se vaya a utilizar a travs del servicio named debe tener el contexto
de SELinux tiponamed_zone_t. En el siguiente ejemplo se utiliza chcon para cambiar el contexto
del archivo denominado mi-dominio.zone:
Nota.
S se utiliza CentOS 5 o Red Hat Enterprise Linux 5 y se va a configurar un DNS dinmico, SELinux
impedir crear los archivos *.jnl (journal, archivos de registro por diario) correspondientes. Las zonas de DNS
dinmicas deben ser almacenadas en directorios especficos que solamente contengan zonas dinmicas. Se debe
crear el directorio/var/named/dynamic para tal fin ,y configurar ste para qu pertenezca al usuario y
grupo, named y tenga permisos de lectura, escritura y ejecucin para el usuario y grupo named (770) y tenga
los contextos de SELinux de usuario de sistema (system_u), rol de objeto (object_r) y tipo cache del
servicio named (named_cache_t), con el fin de permitir escritura en este directorio.
cd /var/named
mkdir dynamic
chmod 770 dynamic
chown named:named dynamic
chcon -u named_cache_t dynamic
Este directorio viene incluido en la instalacin estndar de Bind 9.7 en CentOS 6 o Red Hat Enterprise
Linux 6, por lo cual es innecesario realizar el procedimiento anterior con estos sistemas operativos.
cd /etc/
mv named.conf named.conf.original
wget
http://www.alcancelibre.org/linux/secrets/named.co
nf
restorecon named.conf
cd
Edite el archivo /etc/named.conf:
vim /etc/named.conf
La configuracin mnima de este archivo y la cual permitir utilizar el servicio para todo tipo de uso,
es la siguiente:
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file
"/var/named/data/named_stats.txt";
memstatistics-file
"/var/named/data/named_mem_stats.txt";
version "BIND";
forwarders {
8.8.8.8;
8.8.4.4;
};
forward first;
// Slo habilite lo siguiente si va a utilizar
DNSSEC y si los servidores de
// la seccin de forwarders tienen soporte para
DNSSEC.
dnssec-enable no;
dnssec-validation no;
//
dnssec-lookaside auto;
//
bindkeys-file "/etc/named.iscdlv.key";
};
include "/etc/rndc.key";
controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys
{ "rndc-key"; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
category lame-servers { null; };
};
view "local" {
match-clients {
127.0.0.0/8;
10.0.0.0/8;
172.16.0.0/12;
192.168.0.0/16;
};
recursion yes;
include "/etc/named.rfc1912.zones";
zone "." IN {
type hint;
file "named.ca";
};
};
view "public" {
match-clients { any; };
recursion no;
zone "."" IN {
type hint;
file "named.ca"";
};
};
Lo anterior define como opciones que el directorio predeterminado ser /var/named, se define un
archivo donde se almacena la informacin del cach en /var/named/data/cache_dump.db; un
archivo de estadsticas en /var/named/data/named_stats.txt, un archivo de estadsticas especficas
en lo concerniente al uso de la memoria en /var/named/data/named_mem_stats.txt; consultas
recursivas permitidas solamente a 127.0.0.1 y 192.168.1.0/24, se definen como ejemplos de
servidores DNS para reenviar consultas a 8.8.8.8 y 8.8.4.4, que corresponden a los servidores DNS
pblicos de Google, los cuales puede reemplazar por los servidores DNS del proveedor de
acceso a Internet utilizado); se define que la primera opcin al realizar una consulta ser reenviar
a los DNS que se acaban de definir; se incluyen los archivos de
configuracin /etc/named.rfc1912.zones, que corresponde a las zonas del RFC 1912 y la firma
digital nica que se gener automticamente tras instalar el paquete bind; Se define que los
controles se realizan solamente desde 127.0.0.1, hacia 127.0.0.1, utilizando la firma digital nica.
Tome en consideracin que los cambios en CentOS 6 y Red Hat Enterprise Linux 6 respecto
de CentOS 5 y Red Hat Enterprise Linux 5, consisten en que se utiliza rndc-key en lugar
de rndckey en la configuracin de la firma digital, se aaden las lneas correspondientes a la
configuracin de DNSSEC, se aade configuracin para el registro en bitcora y la zona de los
servidores raz va separada del archivo named.rfc1912.zones. CentOS 5 y Red Hat Enterprise
Linux 5 puede utilizar exactamente la misma configuracin instalando los paquetes bind97, bind97chroot, bind97-libs y bind97-utils (desaparece el paquete caching-nameserver, cuyo contenido
se integr al paquete bind97).
Conviene asegurarse que el archivo /etc/named.conf tenga los contextos correspondientes para
SELinux a fin de evitar potenciales problemas de seguridad.
chcon -u system_u -r object_r -t named_conf_t /etc/named.conf
Dominio a resolver.
2.
Servidor de nombres principal (SOA). ste debe ser un nombre que ya est
plenamente resuelto, y debe ser unFQDN (Fully Qualified Domain Name).
3.
Lista de todos los servidores de nombres (NS) que se utilizarn para efectos de
redundancia. stos deben ser nombres que ya estn plenamente resueltos y deben
ser adems FQDN (Fully Qualified Domain Name).
4.
Cuenta de correo del administrador responsable de esta zona. Dicha cuenta debe
existir y debe ser independiente de la misma zona que se est tratando de
resolver.
5.
6.
7.
Sub-dominios dentro del dominio (www, mail, ftp, ns, etc.) y las direcciones IP que
estarn asociadas a stos.
Es importante tener bien en claro que los puntos 2, 3 y 4, involucran datos que deben existir
previamente y estar plenamente resueltos por otro servidor DNS; Lo anterior quiere decir que jams
se deben utilizar datos que sean parte o dependan, del mismo dominio que se pretende resolver. De
igual modo, el servidor donde se implementar el DNS deber contar con un nombre FQDN y que
est previa y plenamente, resuelto en otro DNS.
Se debe crear una zona de reenvo por cada dominio sobre el cual se tenga autoridad plena y
absoluta y se crear una zona de resolucin inversa por cada red sobre la cual se tenga plena y
absoluta autoridad. Es decir, si usted es el propietario del dominiocualquiercosa.com, debe crear
el archivo de zona correspondiente con el fin de resolver dicho dominio. Por cada red con
direcciones IP privadas, sobre la cual se tenga control y absoluta autoridad, se debe crear un
archivo de zona de resolucin inversa a fin de resolver inversamente las direcciones IP de dicha
zona.
Regularmente la resolucin inversa de las direcciones IP pblicas es responsabilidad de los
proveedores de servicio ya que son stos quienes tienen el control sobre stas.
Todos los archivos de zona deben pertenecer al usuario named a fin de que el
servicio named pueda acceder a stos o bien modificar stos en el caso de tratarse de zonas
esclavas.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file
"/var/named/data/named_stats.txt";
memstatistics-file
"/var/named/data/named_mem_stats.txt";
version "BIND";
forwarders {
8.8.8.8;
8.8.4.4;
};
forward first;
// Slo habilite lo siguiente si va a utilizar
DNSSEC y si los servidores de
// la seccin de forwarders tienen soporte para
DNSSEC.
dnssec-enable no;
dnssec-validation no;
//
dnssec-lookaside auto;
//
bindkeys-file "/etc/named.iscdlv.key";
};
include "/etc/rndc.key";
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
category lame-servers { null; };
};
controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys
{ "rndckey"; };
};
view "local" {
match-clients {
127.0.0.0/8;
10.0.0.0/8;
172.16.0.0/12;
192.168.0.0/16;
};
recursion yes;
include "/etc/named.rfc1912.zones";
};
Lo anterior define como opciones que el directorio predeterminado ser /var/named, se define un
archivo donde se almacena la informacin del cach en /var/named/data/cache_dump.db; un
archivo de estadsticas en /var/named/data/named_stats.txt, un archivo de estadsticas especficas
en lo concerniente al uso de la memoria en /var/named/data/named_mem_stats.txt; consultas
recursivas permitidas solamente a 127.0.0.1 y 192.168.1.0/24; se definen como ejemplos de
servidores DNS para reenviar consultas a 8.8.8.8 y 8.8.4.4, que corresponden a servidores DNS
pblicos de Google, los cuales puede reemplazar por los servidores DNS del proveedor de
acceso a Internet utilizado; se define que la primera opcin al realizar una consulta ser reenviar a
$TTL 86400
@
IN
SOA
dns.red-local.
alguien.gmail.com. (
2009091001; nmero de serie
28800 ; tiempo de refresco
7200 ; tiempo entre reintentos de
consulta
604800 ; tiempo tras el cual expira
la zona
86400 ; tiempo total de vida
)
@
IN
NS
dns.red-local.net.
IN
MX
10
IN
TXT
"v=spf1 a mx -all"
IN
192.168.1.1
intranet
IN
192.168.1.1
maquina2
IN
192.168.1.2
maquina3
IN
192.168.1.3
maquina4
IN
192.168.1.4
www
IN
192.168.1.1
IN
192.168.1.1
ftp
IN
CNAME intranet
dns
IN
CNAME intranet
$TTL 86400
@
IN
SOA
dns.red-local.
alguien.gmail.com. (
2009091001 ; nmero de serie
28800 ; tiempo de refresco
7200 ; tiempo entre reintentos de
consulta
604800 ; tiempo tras el cual expira
la zona
86400 ; tiempo total de vida
)
@
IN
NS
dns.red-local.
IN
PTR
intranet.red-local.
IN
PTR
maquina2.red-local.
IN
PTR
maquina3.red-local.
IN
PTR
maquina4.red-local.
$TTL 86400
@
IN
SOA
fqdn.dominio.tld.
alguien.gmail.com. (
2009091001; nmero de serie
28800 ; tiempo de refresco
7200 ; tiempo entre reintentos de
consulta
604800 ; tiempo tras el cual expira
la zona
86400 ; tiempo total de vida
)
@
IN
NS
fqdn.dominio.tld.
@
IN
MX
10
mail
@
IN
TXT
"v=spf1 a mx -all"
@
IN
A
201.161.1.226
servidor
IN
A
201.161.1.226
www
mail
ftp
dns
IN
IN
IN
IN
A
A
CNAME
CNAME
201.161.1.226
201.161.1.226
servidor
servidor
$TTL 86400
@
IN
SOA
fqdn.dominio.tld.
alguien.gmail.com. (
2009091001 ; nmero de serie
28800 ; tiempo de refresco
7200 ; tiempo entre reintentos de
consulta
604800 ; tiempo tras el cual expira
la zona
86400 ; tiempo total de vida
)
@
IN
NS
fqdn.dominio.tld.
1
IN
PTR
servidor.dominio.com.
2
IN
PTR
maquina2.dominio.com.
3
IN
PTR
maquina3.dominio.com.
4
IN
PTR
maquina4.dominio.com.
Cada vez que haga algn cambio en algn archivo de zona, deber cambiar el nmero de serie a fin
de que tomen efecto los cambios de inmediato cuando se reinicie el servicio named, ya que de otro
modo tendra que reiniciar el equipo, algo poco conveniente.
Las zonas de resolucin inversa que involucran direcciones IP pblicas son responsabilidad de los
ISP (proveedores de servicio de acceso hacia Internet). Crear una zona de resolucin inversa sin ser
la autoridad de dicha zona tiene efecto slo para quien use el servidor DNS recin configurado como
nico DNS.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file
"/var/named/data/named_stats.txt";
memstatistics-file
"/var/named/data/named_mem_stats.txt";
version "BIND";
forwarders {
8.8.8.8;
8.8.4.4;
};
forward first;
// Slo habilite lo siguiente si va a utilizar
DNSSEC y si los servidores de
// la seccin de forwarders tienen soporte para
DNSSEC.
dnssec-enable no;
dnssec-validation no;
//
dnssec-lookaside auto;
//
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
category lame-servers { null; };
};
controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys
{ "rndc-key"; };
};
include "/etc/rndc.key";
view "local" {
match-clients {
127.0.0.0/8;
10.0.0.0/8;
172.16.0.0/12;
192.168.0.0/16;
};
recursion yes;
include "/etc/named.rfc1912.zones";
zone "." IN {
type hint;
file "named.ca";
};
zone "red-local" {
type master;
file "data/red-local.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "data/1.168.192.in-
addr.arpa.zone";
allow-update { none; };
};
};