DNS Índice 1 Escenario 2 Configuración del servidor DNS (Debian)

Anuncio
DNS
DDNS con Linux
DNS
DDNS con Linux
Índice
1
2
3
4
Escenario...................................................................................................................................................1
Configuración del servidor DNS (Debian)...........................................................................................1
Configuración del servidor DHCP (Debian)........................................................................................3
Comprobaciones......................................................................................................................................4
4.1 Cliente Ubuntu...................................................................................................................................4
4.2 Servidor ..............................................................................................................................................6
5 Agregar seguridad...................................................................................................................................8
6 Fuentes......................................................................................................................................................8
1 Escenario
Servidor DNS y DHCP en el mismo equipo, Debian.
Cliente Ubuntu.
2 Configuración del servidor DNS (Debian)
El archivo de zona lo dejamos en el directorio predeterminado /var/cache/bind para evitar
problemas de permisos. Directorio y fichero deben tener permisos de escritura para bind.
root@debian00:/# ls -l /var/cache
total 52
drwxr-xr-x 3 root root 4096 nov 16 19:30 apt
drwxrwxr-x 2 root bind 4096 nov 17 10:39 bind
drwxr-xr-x 2 root root 4096 sep 11 11:28 cracklib
1/8
DNS
DDNS con Linux
Archivo /etc/bind/named.conf.local
allow-update
Lista de equipos a los que se les permite actualizar dinámicamente la zona maestra.
root@debian00:/# cat /etc/bind/named.conf.local
zone "asir00.net" {
type master;
file "db.asir00.net";
allow-update { 127.0.0.1; 10.33.0.2;
};
};
Archivo de zona.
root@debian00:/# cat /var/cache/bind/db.asir00.net
$TTL 86400 ; 1 day
asir00.net
IN SOA
debian00.asir00.net. manolo.asir00.net. (
2
; serial
604800
; refresh (1 week)
86400
; retry (1 day)
2419200
; expire (4 weeks)
86400
; minimum (1 day)
)
NS
debian00.asir00.net.
debian00
A
10.33.0.2
loquesea
A
1.2.3.4
2/8
DNS
DDNS con Linux
3 Configuración del servidor DHCP (Debian)
Archivo dhcpd.conf
ddns-updates on
default = on
Habilitar las actualizaciones dinámicas, de forma global, como opción de servidor.
También se puede establecer como opción de ámbito, si se desea.
ddns-update-style interim
default = none
Tipo de actualización:
•
ad-hoc: obsoleto
•
interim: forma parte del estándar, pero difiere en algunos detalles: MD5 en lugar de
SHA, TXT RRs en lugar de DHCID RRs, ...
•
standard: la más reciente, el estándar actual. Difiere de interim en algunos detalles y
no son compatibles (dos servidores DHCP utilizando uno interim y el otro standard
no funcionaría correctamente)
•
none: para desactivar DDNS
authoritative / not authoritative
default = ¿?
Indica que el servidor se considera autorizado para esta red. Es lo más adecuado cuando
tenemos un único servidor en la red.
Así, el servidor enviará mensajes DHCPNAK a clientes “mal configurados”. Por ejemplo, si
un cliente procedente de otra red solicita que se le renueve una IP incorrecta, el servidor le
enviará un DHCPNAK y el cliente deberá comenzar un nuevo proceso de a partir de
DHCPDISCOVER para obtener una IP nueva.
allow unknown-clients
default = allow
El servidor asignará IPs a todo aquel que lo solicite. De otro modo, sólo lo haría con las
reservas declaradas con host.
zone asir00.net.
Zona DNS que el servidor DCHP intentará actualizar en DNS.
primary localhost
Indica el servidor DNS cuya zona debe ser actualizada.
3/8
DNS
DDNS con Linux
root@debian00:/# cat /etc/dhcp/dhcpd.conf
ddns-updates on;
ddns-update-style interim;
authoritative;
allow unknown-clients;
zone asir00.net. {
primary localhost;
}
option domain-name "asir00.net";
option domain-name-servers 10.33.0.2;
option subnet-mask 255.255.255.0;
option routers 10.33.0.1;
default-lease-time 86400;
subnet 10.33.0.0 netmask 255.255.255.0 {
range 10.33.0.201 10.33.0.250;
}
4 Comprobaciones
4.1
Cliente Ubuntu
Liberar IP “antigua” que pudiera tener.
-r (release) para liberar la IP
-v (verbose) para mostrar en modo detallado
4/8
DNS
DDNS con Linux
Solicitar IP para eth0
Comprobar IP obtenida
Comprobar resolución nombres.
5/8
DNS
4.2
DDNS con Linux
Servidor
Comprobar archivo de log.
Actualiza zona asir00.net con registro A para ubuntu00.asir00.net
Además, agrega registro TXT
root@debian00:/etc/bind# tail -n 20 /var/log/syslog
Nov 16 20:53:15 debian00 dhcpd: DHCPRELEASE of 10.33.0.201 from
08:00:27:71:2b:4c (ubuntu00) via eth0 (found)
Nov 16 20:53:15 debian00 named[2344]: error (network unreachable)
resolving 'local/SOA/IN': 2001:500:3::42#53
Nov 16 20:53:15 debian00 named[2344]: error (network unreachable)
resolving 'local/SOA/IN': 2001:7fe::53#53
Nov 16 20:53:19 debian00 dhcpd: DHCPDISCOVER from 08:00:27:71:2b:4c via
eth0
Nov 16 20:53:20 debian00 dhcpd: DHCPOFFER on 10.33.0.201 to
08:00:27:71:2b:4c (ubuntu00) via eth0
Nov 16 20:53:20 debian00 named[2344]: client 127.0.0.1#8455: updating
zone 'asir00.net/IN': adding an RR at 'ubuntu00.asir00.net' A
Nov 16 20:53:20 debian00 named[2344]: client 127.0.0.1#8455: updating
zone 'asir00.net/IN': adding an RR at 'ubuntu00.asir00.net' TXT
Nov 16 20:53:20 debian00 dhcpd: DHCPREQUEST for 10.33.0.201 (10.33.0.2)
from 08:00:27:71:2b:4c (ubuntu00) via eth0
Nov 16 20:53:20 debian00 dhcpd: DHCPACK on 10.33.0.201 to
08:00:27:71:2b:4c (ubuntu00) via eth0
Nov 16 20:53:20 debian00 dhcpd: Added new forward map from
ubuntu00.asir00.net to 10.33.0.201
6/8
DNS
DDNS con Linux
El fichero de zona es modificado/actualizado con los siguientes elementos:
$ORIGIN .
$ORIGIN asir00.net.
Indica cuál es el sufijo a añadir a los nombres no cualificados (los que no terminan en “.”)
En general, es buena idea definir explícitamente esta directiva.
Si no se define ninguna, se toma por defecto el sufijo (dominio) presente en named.conf.
$TTL 3600
El servidor ha decidido que el TTL para estos registros dinámicos sea de una hora.
ubuntu00
A
10.33.0.201
El registro actualizado dinámicamente y, obviamente, la modificación que más nos
importa.
ubuntu00
TXT "0088c77089ba4eb658e5b1a9f8069a372f"
Contiene la firma del servidor DHCP para que ambos, servidor DHCP y DNS sepan que el
responsable de la creación del registro A es el servidor DHCP. Así, el servidor DHCP no
modificará ningún registro A cuyo registro TXT no coincida con su firma.
root@debian00:/# cat /var/cache/bind/db.asir00.net
$ORIGIN .
$TTL 86400 ; 1 day
asir00.net
IN SOA
debian00.asir00.net. manolo.asir00.net. (
2
; serial
604800
; refresh (1 week)
86400
; retry (1 day)
2419200
; expire (4 weeks)
86400
; minimum (1 day)
)
NS
debian00.asir00.net.
$ORIGIN asir00.net.
debian00
A
10.33.0.2
loquesea
A
1.2.3.4
$TTL 3600 ; 1 hour
ubuntu00
A
10.33.0.201
TXT
"0088c77089ba4eb658e5b1a9f8069a372f"
Uno de los problemas detectados en otras configuraciones, por ejemplo si guardamos el archivo de
zona en otro directorio, es la denegación de permiso para crear el archivo .jnl. Para evitar este tipo
de problemas, se creó en el directorio predeterminado.
root@debian00:/etc/bind# ls -l
total 12
-rwxr-xr-x 1 root root 311 nov
-rw-r--r-- 1 bind bind 805 nov
-rw-r--r-- 1 bind bind 720 nov
/var/cache/bind/
16 20:51 db.asir00.net
16 20:53 db.asir00.net.jnl
16 19:31 managed-keys.bind
7/8
DNS
DDNS con Linux
El servidor DNS crea fichero journal (.jnl) con las modificaciones que se harán sobre las zonas y,
cada cierto tiempo, las vuelca en el fichero de zona.
journal = registro de diario en el que se almacena la información necesaria para
restablecer los datos afectados por la transacción en caso de que ésta falle.
Por esto mismo, conviene no hacer modificaciones manuales en el fichero de zona. Si no, el
fichero journal dejará de estar sincronizado con el fichero de zona y bind se mostrará confuso (ver
log, si lo hacéis).
Para hacer modificaciones, habría que utilizar rndc (Remote Name Daemon Control).
rndc freeze
rndc thaw
root@debian00:/etc/bind# cat /var/cache/bind/db.asir00.net.jnl
;BIND LOG V9
####%8######R#asir00#net###Q�debian00#asir00#net#manolo#asir00#net#
:�#Q�$�#Q�R#asir00#net###Q�debian00#asir00#net#manolo#asir00#net#
:�#Q�$�#Q�ubuntu00#asir00#net####
!
�ubuntu00#asir00#net####"0088c77089ba4eb658e5b1a9f8069a372froot@debian00
:/etc/
Comprobar resolución de nombres
root@debian00:/etc/bind# nslookup ubuntu00.asir00.net
Server:
127.0.0.1
Address:
127.0.0.1#53
Name:
ubuntu00.asir00.net
Address: 10.33.0.201
5 Agregar seguridad
Próximamente
6 Fuentes
https://blog.bigdinosaur.org/running-bind9-and-isc-dhcp/
http://askubuntu.com/questions/162265/how-to-setup-dhcp-server-and-dynamic-dns-with-bind
http://www.linuxtecnico.es/2012/05/monta-tu-propio-dns-dinamico.html
https://deepthought.isc.org/article/AA-01091/0/ISC-DHCP-support-for-Standard-DDNS.html
http://linux.die.net/man/5/dhcpd.conf
http://www.zytrax.com/books/dns/ch7/xfer.html#allow-update
http://www.zytrax.com/books/dns/ch8/origin.html
Aula 30x
[email protected]
@aula30x
8/8
Descargar