Вы находитесь на странице: 1из 37

Debian GNU/Linux

D7-A06 Servicios de infraestructura de red en Linux

Duracin
8:00 H

Segunda Parte

Servicio DNS
(Domain Name Service)

Ing. Ariel Alvarez Enrquez

Servicios de infraestructura de red en Linux

Objetivo
Introduccin,
implementacin, Gestin y
configuraciones avanzadas
del servicio DNS.

2
Ing. Ariel Alvarez Enrquez

Contenido

Consideraciones generales.
Implementar el servicio de DNS.
Comprobar el servicio de DNS.
Asegurar el servicio de DNS.

3
Ing. Ariel Alvarez Enrquez

Configurar el servicio DNS

Configurar un Stealth (DMZ or Split) Name


Server.
Configurar un Authoritative-only DNS Server
basado en vistas (view).

4
Ing. Ariel Alvarez Enrquez

Configurar un Stealth (DMZ or Split) Name Server

La clave aqu es una lnea de demarcacin entre el


servidor(s) Stealth y el servidor(s) pblico o externo.
DNS
Stealth

DNS
Externo

Privado

Pblico

Multihome Firewall
Host DMZ NAT

Host
Privado

Host
Pblico

5
Ing. Ariel Alvarez Enrquez

Configurar un Stealth (DMZ or Split) Name Server

Diferencias en configuracin:
Servidor DNS Stealth:

Suministra un comprensible conjunto de servicios


para usuarios interno (caching y peticiones recursivas)
y debe ser configurado como un tpico servidor
(mster, slave o cachin-only).

Servidor externo:

Puede suministrar servicios limitados y debe ser


tpicamente configurado como un servidor
(autoritative-only).

6
Ing. Ariel Alvarez Enrquez

Configurar un Stealth (DMZ or Split) Name Server

Funcionalidades a suministrar:

La zona para el Stealth puede contener ambos hosts privado


y publico, mientras la externa solo contiene hosts visibles
pblicamente.
El fichero named.conf para la zona pblica no contiene (las
sentencias - master, allow-notify, allow-transfer, etc.) con
referencia a IPs del servidor Stealth (por seguridad).

Stealth Fichero de zona: (named.conf.options).


(Mster para la zona example.com)

e.j. // clausula options : configuracin global


options {
directory "/var/named";
version "not currently available";
recursion yes;
};

Habilitar el suministro de peticiones recursivas.


7

Ing. Ariel Alvarez Enrquez

Configurar un Stealth (DMZ or Split) Name Server

Stealth Fichero de zona: (named.conf.defaultzones).


(Mster para la zona example.com)

e.j. // clausula zone - master para example.com

zone "example.com" in {
type master;
file "master/master.example.com.internal";
allow-update { none; };
};
// resolucin inversa para example.net
zone "254.168.192.IN-ADDR.ARPA" in{
type master;
file "192.168.1.rev";
};

Deshabilitar el suministro de actualizaciones dinmicas.


8

Ing. Ariel Alvarez Enrquez

Configurar un Stealth (DMZ or Split) Name Server

Stealth Fichero de zona:


(master.example.com.internal)

e.j. ; Simple fichero de zona para example.com


$TTL 2d
$ORIGIN example.com. ; base domain-name
@
IN
SOA
ns3.example.com. hostmaster.example.com. (
2003080800 ; se = serial number
12h ; ref = refresh
15m ; ret = update retry
3w ; ex = expiry
2h ; min = minimum
)
; Servidor de nombre RRs para el dominio
IN
NS
ns3.example.com.
; Servidor mail RRs para la zona (dominio)
3w IN
MX
10 mail.example.com.
; El segundo servidor mail es externoa la zona (dominio)
IN
MX
20 mail.example.net.
9
Ing. Ariel Alvarez Enrquez

Configurar un Stealth (DMZ or Split) Name Server


e.j. ; Host del dominio incluye los record NS y MX definidos previamente
mail
tux
www

IN
IN
IN

A
A
A

192.168.254.4
192.168.254.6
192.168.254.7

; alias para ftp (ftp server) para un dominio esterno


ftp
IN
CNAME
ftp.example.net.
; Servicios y host privado
ns3
IN
A
accounts IN
A
rh
IN
A
....
Last
IN
A

192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.233

10
Ing. Ariel Alvarez Enrquez

Configurar un Stealth (DMZ or Split) Name Server

Servidor Externo.
Fichero de zona: (named.conf.default-zones).
Este es el mismo definido para un autoritative-only
name server (anteriormente discutido).
Fichero de zona: (master.example.com.internal).
Es un fichero de zona estndar que contiene solo
los host y sevicios pblicos.

11
Ing. Ariel Alvarez Enrquez

Configurar un Authoritative-only DNS Server


basado en vistas (view).

Funcionalidades a suministrar:

Mster para la zona example.com (aqu esta caracterstica es


definida por la inclusin de la clausula zone example.com
en ambas clausulas view pero con referencias diferentes a
ficheros de zona)
No suministra servicio de caching para usuario externo.
No suministra peticiones recursivas.
Si suministra servicio de caching para usuario externo.

Stealth Fichero de zona: (named.conf.options).


(Mster para la zona example.com)

e.j. // clausula options : configuracin global


options {
directory "/var/named";
version "not currently available";
};

Habilitar el suministro de peticiones recursivas (por defecto).


12

Ing. Ariel Alvarez Enrquez

Configurar un Authoritative-only DNS Server


basado en vistas (view).

Stealth Fichero de zona: (named.conf.defaultzones)


(Mster para la zona example.com view user-internos)

e.j. // suministra peticiones recursivas y caching para usuarios internos


view "user-internos" {
match-clients { 192.168.1.0/24; }; // la red example.com
recursion yes;
// zona requerida para peticiones recursivas
zone "." {
type hint;
file "root.servers";
};
zone "example.com" {
type master;
// fichero de zona privada incluyendo hosts locales
file "view/master.example.com.internal";
allow-update { none; };
};

Deshabilitar el suministro de actualizaciones dinamicas.

Ing. Ariel Alvarez Enrquez

13

Configurar un Authoritative-only DNS Server


basado en vistas (view).
e.j.

// dominio requerido local host


zone "localhost" in {
type master;
file "master.localhost";
allow-update { none; };
};
// resolucin inversa para localhost
zone "0.0.127.IN-ADDR.ARPA" in {
type master;
file "localhost.rev";
allow-update{ none; };
};
// resolucin inversa para direcciones locales en example.com
zone "1.168.192.IN-ADDR.ARPA" in {
type master;
file "view/192.168.1.rev.internal";
allow-update { none; };
};
}; // end view

Ing. Ariel Alvarez Enrquez

14

Configurar un Authoritative-only DNS Server


basado en vistas (view).
e.j. // view hosts externos

view "host-externos" {
match-clients { "any"; }; // todos los restantes hosts
// recursion no soportada
recursion no;
zone "example.com" {
type master;
// solo los host publicos
file "view/master.example.com.external";
allow-update { none; };
};
// resolucin inversa para direcciones locales en example.com
zone "1.168.192.IN-ADDR.ARPA" in {
type master;
file "view/192.168.1.rev.external";
allow-update{none;};
};
}; // end view
15

Ing. Ariel Alvarez Enrquez

Contenido

Consideraciones generales.
Implementar el servicio de DNS.
Comprobar el servicio DNS.
Asegurar el servicio de DNS.

16
Ing. Ariel Alvarez Enrquez

Comprobar el servicio DNS

Para comprobar el servicio de DNS emplee las


herramientas de diagnstico:

dig.
host.
nslookup.

17
Ing. Ariel Alvarez Enrquez

dig

dig es la herramienta de diagnostico de DNS


de preferencia. Tiene ambos la lnea de
comando y un modo bash (pero no es interactivo
como nslookup).
Sintaxis:
dig [@dns] domain [[-c ]q-type] [[-t ]q-class] [+q-opt] [-d-opt] [%comment]

vea man dig para ms detalles.


e.j. # dig example.com any

Retorna cualquier RRs si una etiqueta - suministra los records SOA, NS y MX del dominio
si este apunta a un servidor autoritativo para la zona (dominio), de lo contrarios muestra
solo el RR NS.

e.j. # dig example.com mx


Retorna solo el record MX del dominio.

18
Ing. Ariel Alvarez Enrquez

dig (Cont.)
e.j. # dig @ns2.example.com www.example.com
Retorna el RR A para www.example.com usando un servidor de nombre especfico
indicado por el argumento @ - puede ser usado IP o nombre.

e.j. # dig example.com axfr


Retorna todos los records del dominio usando la zona de transferencia (si es permitida).

e.j. # dig -x 192.168.23.23


Retorna solo el record PTR la la direccin IP.

19
Ing. Ariel Alvarez Enrquez

dig (Cont.)

e.j.

Salida dig.
# dig localhost

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> localhost


;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11277
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;localhost.
IN

;; ANSWER SECTION:
localhost.
604800

IN

127.0.0.1

;; AUTHORITY SECTION:
localhost.
604800 IN

NS localhost.

;; ADDITIONAL SECTION:
localhost.
604800 IN

AAAA

::1

;; Query time: 0 msec


;; SERVER: 192.168.1.4#53(192.168.1.4)
;; WHEN: Tue 15 15:50:26 2013
;; MSG SIZE rcvd: 85
Ing. Ariel Alvarez Enrquez

20

nslookup

nslookup Tiene ambos la lnea de comando y


un modo modo interactivo. Es criticado frente a
dig. La ventaja de este es que es el ms
universal disponible especficamente en los
sistemas windows.
Sintaxis:
nslookup [-option] [name | -] [server]

vea man dig para ms detalles.


e.j. # nslookup www.example.com
Server: ns1.example.com
Address: 192.168.1.4

Name: www.example.com
Address: 192.168.1.4
Retorna el record A para www.example.com usando el servidor por defecto definido para
la confguracion de /etc/resolv.conf..
21
Ing. Ariel Alvarez Enrquez

nslookup (Cont.)

nslookup en modo interactivo.

e.j. # nslookup -all


// Lista todos los record del dominio que necesita axfr para ser
// habilitado.
> ls example.com
// lista todos los record text del dominio
> ls -t TXT example.com
// coloca la base de dominio para usar por los subsiguientes
// comandos
> set domain=example.org
// encontrar un host
> mail
// retorna mail.example.org
// exit para salir del modo interactivo
> exit
22
Ing. Ariel Alvarez Enrquez

Contenido

Consideraciones generales.
Implementar el servicio de DNS.
Comprobar el servicio DNS.
Asegurar el servicio de DNS.

23
Ing. Ariel Alvarez Enrquez

Asegurar el servicio de DNS

Restringir el acceso al servidor.


Asegurar la zona de transferencia.

24
Ing. Ariel Alvarez Enrquez

Restringir el acceso al servidor

Para esto, use la opcin allow-query en la


seccin options del fichero (named.conf.options).

e.j. // clausula options : configuracin global


options {
allow-query {
192.168.1.0/24;
};
};

No utilice esta opcin para servidores de nombre que suministran informacin acerca
de su red para la red externa.

25
Ing. Ariel Alvarez Enrquez

Asegurar la zona de trasferencia

Para asegurar la zona de trasferencia debemos


analiza lo siguiente:

Crear una llave (key).


Configurar el servidor mster.
Configurar el servidor slave.
Los mensajes en la zona de transferencia.
La zona de transferencia desde el servidor slave.

26
Ing. Ariel Alvarez Enrquez

Crear la llave (key)

Para crear la llave (key) usamos el comando


dnssec-keygen.

e.j. # dnssec-keygen -a rsasha1 -b 1024 -n zone example.com


Kexample.com.+005+22425
Opcin
-a rsasha1
-b 1024
-n zone
example.com

Descripcin
El procedimiento de cifrado usado (aqu RSA-SHA1).
Longitud de la llave (1024 bits).
Tipo de llave (para la zona)
Nombre del fichero (example.com)

27
Ing. Ariel Alvarez Enrquez

Crear la llave (key)

Dos ficheros son creados en el directorio


actual.

e.j. # ls K* | sort
Kexample.com.+005+22425.key
Kexample.com.+005+22425.private

El fichero *.key contiene un DNS KEY record que puede ser incluido en el fichero de
zona usando la sentencia include.
El fichero *.private contiene campos del algoritmo.
(por razones de seguridad este fichero no tiene permisos de lectura)

28
Ing. Ariel Alvarez Enrquez

Crear la llave (key)

Contenido del Kexample.com.+005+22425.key.

e.j. # cat Kexample.com.+005+22425.key

; This is a zone-signing key, keyid 22425, for example.com.


; Created: 20140715112515 (Tue Jul 15 07:25:15 2014)
; Publish: 20140715112515 (Tue Jul 15 07:25:15 2014)
; Activate: 20140715112515 (Tue Jul 15 07:25:15 2014)
example.com. IN DNSKEY 256 3 5
AwEAAaooA1sIiTMhW2Gv84rYx1iFqknA8wy5KfAWMvo5pr7P/qOamFJNHkhqAY8fasq3
mvIp64nCijb/KxoG8RCGfC4PFjIGdqlwNI8h/Xd/lHLYBJsm9KBjtrOXf7GEUVLtEQxMSRO
Q0HIwlZEkQPeCX3+V1d9f420hXqOA BfnzvIXj

29
Ing. Ariel Alvarez Enrquez

Crear la llave (key)

Contenido del Kexample.com.+005+22425.private.

e.j. # cat Kexample.com.+005+22425.private


Private-key-format: v1.3
Algorithm: 5 (RSASHA1)
Modulus: qigDWwiJMyFbYa/zitjHWIWqScDzDLkp8BYy+jmmvs/
+o5qYUk0eSGoBjx9qyrea8inricKKNv8rGgbxEIZ8Lg8WMgZ2qXA0jyH9d3+UctgEmyb0oG
O2s5d/sYRRUu0RDExJE5DQcjCVkSRA94Jff5XV31/jbSFeo4AF+fO8heM=
PublicExponent: AQAB
PrivateExponent:
mfiBKNPtirXpgdj8sSx+Hm09bWXKyT2YZGdCE8ktSMbfrd2LbhXYjEBYTtFoCi3gaLdkKp
E+DowRzYhwhLqdDHpvkcuV8TZZwWSI35CgPlRSQ+MzD7N0zNQVTDHOSwlSQR2Ny
3iFk+r+OEL92NccJ2ImjFd1a+bVSLEkrd9zIDE=
Prime1:
2zPP6gY9vPrJVjZG7sH3DPMfZmfjw8FOTXASLCS9hF+sCdKdC7TrnZl9ptlJNTUMrgy4P
uRrnpzjQPcTtXtsCQ==
Prime2:
xrhz+ktV+OmBxTlY8E+aL3vDMGhBf5oVzwJ8NILHM2RU+wmBqQgmYVCYC5voCfu3my
8nGCXNyjiMIt9DZkM1iw==
...
30
Ing. Ariel Alvarez Enrquez

Crear la llave (key)


e.j.

...
Exponent1:
uCZZ5//gQ+/nzt6ATrpyotVorq5egSjXcGTTT3R6Jkf9jq76MkiGnHrDPbVTNDjh8yJKcsOQy
cqBfCVV0GPkiQ==
Exponent2:
W8/GzcJWwzznVv7K56RvgTa2FLxmXpULNGxahExTypu1Y5Kd1EHOsbFxvhNXHp2s08
byUgbNUHvVyxrJ4gp1Rw==
Coefficient:
yZcEDg2Oy1xUOFPF3thr2EYwhnjsxRj1WhoFOcoVeKWlupibRW8MKGTUeflWh9DpD5g
6fsUOi2/JM+OSdiDVrg==
Created: 20140715112515
Publish: 20140715112515
Activate: 20140715112515

31
Ing. Ariel Alvarez Enrquez

Configurar el servidor master

Fichero de zona: (named.conf.options).


(Mster para la zona example.com)

e.j.

key example.com {
algorithm rsasha1;
secret "Coloque el cdigo de la llave";
};
zone "example.com" in {
type master;
file "master/master.example.com";
allow-transfer {
key example.com;
};
};

32
Ing. Ariel Alvarez Enrquez

Configurar el servidor master

Fichero de zona: (named.conf.default-zones).


(Mster para la zona example.com)

e.j. key example.com {

algorithm rsasha1;
secret "Coloque el cdigo de la llave";

};
zone "example.com" in {
type master;
file "master/master.example.com";
allow-transfer {
key example.com;
};
};
zone "1.168.192.IN-ADDR.ARPA" in {
type master;
file "192.168.1.rev";
allow-transfer {
key example.com;
};
};
Ing. Ariel Alvarez Enrquez

33

Configurar el servidor slave

Fichero de zona: (named.conf.default-zones).


(Mster para la zona example.com)

e.j. key example.com {

algorithm rsasha1;
secret "Coloque el cdigo de la llave";

};
zone "example.com" in {
type slave;
file "slave/slave.example.com";
allow-transfer {
key example.com;
};
};

34
Ing. Ariel Alvarez Enrquez

Los mensajes en la zona de transferencia

Interprete los logs para ambos servidores


mster y slave.

messages.
syslogs.

Utilise el comando tail -f <log>.

35
Ing. Ariel Alvarez Enrquez

Zona de transferencia desde el servidor slave

Se prohbe la zona de trasferencia desde un


servidor slave.

e.j. // clausula options : configuracin global


options {
...
allow-transfer { none; };
...
};

36
Ing. Ariel Alvarez Enrquez

Laboratorio

Lab-4: (Configurar asegurar y el Servicio DNS)

Configurar el servicio de DNS segn el escenario


(Cont.)
Asegure el servicio de DNS.

37
Ing. Ariel Alvarez Enrquez

Вам также может понравиться