DNS Dina Mico

10
Servidor DHCP + DDNS en Ubuntu Server 12.04 En este tutorial, aprenderemos a configurar el Servidor y un cliente Ubuntu para que el Servidor le de una dirección IP por DHCP y agregue el nombre del host al DNS de manera dinámica. El servidor utilizado en este caso será un Ubuntu Server (x64) y dispondrá de 2 tarjetas de red ya que en un futuro se utilizará para ser capaz de realizar enrutamiento con IPTables. Instalación y Preparación 1º UbuntuServer Realizaremos la instalación por defecto, en este caso no le vamos a instalar el entorno gráfico y configuraremos 2 tarjetas de Red de la siguiente manera: eth0: NAT # Para que durante la instalación se descarguen actualizaciones eth1: Host Only # Esta se utilizará para el DHCP y la red interna Nombre del Host: UbuntuServer 2º UbuntuCliente También realizaremos la instalación por defecto, y en este caso sólo dispondrá de una tarjeta de Red. eth0: NAT # Después será Host Only Nombre del Host: UbuntuCliente 3º UbuntuServer Volvemos al UbuntuServer, una vez que se ha terminado de instalar e instalaremos las actualizaciones y el software necesario con los siguientes comandos, es necesario que el usuario sea root (sudo su): # apt-get update # apt-get upgrade # apt-get install isc-dhcp-server bind9 Ya tenemos DHCP y el DNS instalado, ahora toca configurarlo. 4º UbuntuCliente Una vez que ya hemos instalado nuestro UbuntuCliente, instalaremos las últimas actualizaciones y también aunque es opcional, instalaremos el entorno gráfico antiguo. # apt-get update # apt-get upgrade # apt-get install gnome-panel Adrián Jurado Álvarez ASIR 2013 1

Transcript of DNS Dina Mico

Page 1: DNS Dina Mico

Servidor DHCP + DDNS en Ubuntu Server 12.04En este tutorial, aprenderemos a configurar el Servidor y un cliente Ubuntu para que el Servidor le de una dirección IP por DHCP y agregue el nombre del host al DNS de manera dinámica.

El servidor utilizado en este caso será un Ubuntu Server (x64) y dispondrá de 2 tarjetas de red ya que en un futuro se utilizará para ser capaz de realizar enrutamiento con IPTables.

Instalación y Preparación

1º UbuntuServer!Realizaremos la instalación por defecto, en este caso no le vamos a instalar el entorno gráfico y configuraremos 2 tarjetas de Red de la siguiente manera:

! eth0: NAT # Para que durante la instalación se descarguen actualizaciones! eth1: Host Only # Esta se utilizará para el DHCP y la red interna! Nombre del Host: UbuntuServer!2º UbuntuCliente

También realizaremos la instalación por defecto, y en este caso sólo dispondrá de una tarjeta de Red.

! eth0: NAT # Después será Host Only! Nombre del Host: UbuntuCliente

3º UbuntuServer

Volvemos al UbuntuServer, una vez que se ha terminado de instalar e instalaremos las actualizaciones y el software necesario con los siguientes comandos, es necesario que el usuario sea root (sudo su):

! # apt-get update! # apt-get upgrade! # apt-get install isc-dhcp-server bind9

Ya tenemos DHCP y el DNS instalado, ahora toca configurarlo.

4º UbuntuCliente

Una vez que ya hemos instalado nuestro UbuntuCliente, instalaremos las últimas actualizaciones y también aunque es opcional, instalaremos el entorno gráfico antiguo.

! # apt-get update! # apt-get upgrade! # apt-get install gnome-panel

Adrián Jurado Álvarez ASIR 2013

1

Page 2: DNS Dina Mico

Configurar Servidor IVamos a comenzar configurando las tarjetas de red del servidor, las interfaces de escucha y servidor DHCP y configurar los servicios DNS y DCHP

1º UbuntuServer

Primero configuramos las tarjetas de red del Servidor, para ello debemos modificar el archivo interfaces.

! # nano /etc/network/interfaces

Dejaremos el archivo interfaces de la siguiente manera:

! # Interfaz loopback! auto lo! iface lo inet loopback

! # Interfaz primaria (Internet)! auto eth0! iface eth0 inet dhcp!! # Interfaz secundaria (DDNS y DHCP)! auto eth1! iface eth1 inet static! ! address 192.168.0.1! ! netmask 255.255.255.0! ! network 192.168.0.0! ! broadcast 192.168.0.255

Ahora vamos a reiniciar el servicio de red, para que las tarjetas de red nos cojan la nueva configuración, con cualquiera de las maneras funcionará:!! # /etc/init.d/networking restart # Esta es la manera antigua

! # service networking restart # Esta es la manera nueva

Sólo nos queda hacer un ifconfig para comprobar que está todo correcto y que las tarjetas han cogido su configuración.

! # ifconfig

Adrián Jurado Álvarez ASIR 2013

2

Page 3: DNS Dina Mico

Configurar Servidor DHCPVamos a configurar el Servidor para que sirva direcciones IP, nombres de dominio y direcciones de enrutadores a los clientes.

Primero configuramos el servicio para que escuche en la tarjeta de red eth0:

! # nano /etc/default/isc-dhcp-server

Buscamos la línea en la que pone:!! INTERFACES=””

Y la modificamos por:

! INTERFACES=”eth0”

Ahora vamos a configurar el fichero del servidor DHCP, pero antes haremos una copia de seguridad de la siguiente manera:

! # cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

Y ahora vaciaremos el fichero y procederemos a configurarlo:

! # echo “” > /etc/dhcp/dhcpd.conf! # nano /etc/dhcp/dhcpd.conf

El fichero dhcpd.conf quedará de la siguiente manera:

# Ambito de red 192.168.0.0/24

subnet 192.168.0.0 netmask 255.255.255.0 {! range 192.168.0.50 192.168.0.60;! option domain-name “asir.es”;! option domain-name-servers 192.168.0.1, 192.168.0.2;! option routers 192.168.0.1;! option ntp-servers 192.168.0.1;! allow unknown-clients;}

Haremos un restart al servicio DHCP para que nos coja la nueva configuración

! # service isc-dhcp-server restart

Adrián Jurado Álvarez ASIR 2013

3

Page 4: DNS Dina Mico

2º UbuntuCliente

Lo siguiente es ver que el servicio está funcionando, para ello, primero cambiaremos la configuración de la tarjeta de red de la máquina virtual UbuntuCliente, que pasará de ser NAT a Host Only.

Una vez que ya tenemos la tarjeta de red en Host Only (Igual que la del servicio DHCP) le diremos al UbuntuCliente que busque un servidor DHCP en la red para que le otorgue una dirección IP válida, dentro del rango que anteriormente hemos especificado.

Para ello lo haremos de la siguiente manera:

! # dhclient -r eth0 # Es el equivalente a ipconfig /release de windows! # dhclient eth0 # Es el equivalente a ipconfig /renew de windows! # ifconfig # Revisamos que nos ha dado bien la IP! # cat /etc/resolv.conf # Revisamos que nos ha dado bien los DNS

Configurar Servidor DNSAhora vamos a configurar el Servidor DNS, crearemos los ficheros de zona y especificaremos los ficheros journal, que será donde nos agregue las direcciones IP dinámicas que recibe el DHCP de los clientes.

1º UbuntuServer

Primero pararemos el servicio.

! # service bind9 stop

Ahora haremos el backup del fichero y luego lo vaciamos para posteriormente configurarlo.

! # cp /etc/bind/named.conf.local /etc/bind/named.conf.local.bak! # echo “” > /etc/bind/named.conf.local! # nano /etc/bind/named.conf.local

El fichero deberá quedar de la siguiente manera:

# Zona Directa

zone “asir.es” {! type master;! file “/etc/bind/directa.dns”;! journal “directa.jnl”;! allow-update { key “rndc-key”; };! notify yes;};

Adrián Jurado Álvarez ASIR 2013

4

Page 5: DNS Dina Mico

# Zona Inversa

zone “0.168.192.in-addr.arpa” {! type master;! file “/etc/bind/inversa.dns”;! journal “inversa.jnl”;! allow-update { key “rndc-key”; };! notify yes;};

A continuación haremos start al servicio, para levantarlo y que nos coja la nueva configuración.

! # service bind9 start

Dentro de los ficheros directa.dns e inversa.dns se encontrará nuestro fichero de zona, ambos dentro de la carpeta /etc/bind.

Los ficheros directa.jnl e inversa.jnl incluirán (de manera no legible al humano) las actualizaciones dinámicas del dhcp daemon, se encuentan dentro de la carpeta /var/cache/bind y sirven de caché. Para poder leerlos, existe un comando que nos transforma el lenguaje máquina del fichero en lenguaje Human - Legible, el comando es:

! # named-journalprint /var/cache/bind/directa.jnl # Para el fichero de zona directa! # named-journalprint /var/cache/bind/inversa.jnl # Para el fichero de zona inversa

Configurar Servidor DHCP IIVamos ahora a configurar el Servicio DHCP para que permita las actualizaciones dinámicas y que tiene que hacer con ellas.

1º UbuntuServer

Primero pararemos el servicio.

! # service isc-dhcp-server stop

Configuramos el fichero dhcpd.conf:

! # nano /etc/dhcp/dhcpd.conf

Adrián Jurado Álvarez ASIR 2013

5

Page 6: DNS Dina Mico

Al final de la última línea, debemos agregar lo siguiente:

server-identifier! ! ubuntuserver;ddns-updates! ! ! on;ddns-update-style! ! interim;ddns-domainname! ! “asir.es.”;ddns-rev-domainname ! “in-addr.arpa.”;ignore ! ! ! ! client-updates;include ! ! ! ! “/etc/bind/rndc.key”;autoritative;default-lease-time! ! 3600;max-lease-time!! ! 86400;min-lease-time!! ! 400;log-facility! ! ! local7;

# Actualizaciones dinámicas# Zona Directa

zone asir.es. {! primary 127.0.0.1;! key “rndc-key”;}

# Zona Inversa

zone 0.168.192.in-addr.arpa. {! primary 127.0.0.1;! key “rndc-key”;}

2º UbuntuServer

Para que el fichero de zona se actualice dinámicamente a través del fichero rndc.key, debemos darle permisos para que el DHCP daemon sea capaz de actualizarlo, para ello es necesario modificar las reglas del APPARMOR y darle permisos de lectura y escritura.

Primero, es necesario hacer backup del fichero /etc/apparmor.d/usr.sbin.dhcpd.

! # cp /etc/apparmor.d/usr.sbin.dhcpd /etc/apparmor.d/usr.sbin.dhcpd.bak! # nano /etc/apparmor.d/usr.sbin.dhcpd

Buscamos la línea en la que aparezca lo siguiente:

! /etc/dhcp/ r,! /etc/dhcp/** r,

Justo debajo de estas instrucciones debemos añadir lo siguiente:

! /etc/bind/ rw,! /etc/bind/** rw,

Adrián Jurado Álvarez ASIR 2013

6

Page 7: DNS Dina Mico

Una vez que hemos añadido las instrucciones, debemos modificar los permisos del fichero rndc.key con los siguientes comandos:

! # chmod g+w /etc/bind! # chmod +r /etc/bind/rndc.key

Ahora debemos reiniciar tanto el servicio DHCP como el servicio DNS

! # service isc-dhcp-server restart! # service bind9 restart

Configurar Cliente Ubuntu

1º UbuntuCliente

Ahora nos toca configurar el UbuntuCliente para que cuando el servidor DHCP le otorgue una dirección IP de manera dinámica, el cliente le responda con su FQDN y su dominio.

Estos datos servirán luego para que el DHCP daemon actualice los hosts DNS de manera dinámica.

Para ello, deberemos configurar el fichero del cliente DHCP del UbuntuCliente, el dhclient.conf el cual quedará de la siguiente manera.

Como siempre, haremos una copia de seguridad del mismo.

! # cp /etc/dhcp/dhclient.conf /etc/dhcp/dhclient.conf.bak! # nano /etc/dhcp/dhclient.conf

Ahora editaremos el fichero y al final, añadiremos lo siguiente:

send fqdn.fqdn ! ! ! “ubuntucliente.asir.es”;send fqdn.no-client-update ! true;send fqdn.server-update! ! true;send fqdn.encoded! ! ! false;

2º UbuntuCliente

Una vez que ya hemos configurado nuestro cliente de DHCP, reiniciaremos la tarjeta de red con el fin de obtener una IP dinámica y enviarle al servidor nuestros datos DNS.

! # dhclient -r eth0! # dhclient eth0

Adrián Jurado Álvarez ASIR 2013

7

Page 8: DNS Dina Mico

Configurar Servidor DNS IIAhora modificaremos los ficheros de zona para indicar que nuestro servidor DNS es un servidor Primario e incluiremos los ficheros de configuración necesarios para que funcione en conjunción con el servicio DHCP, y sea capaz de actualizas los registros DNS que recibe del DHCP daemon.

1º UbuntuServer

Debemos modificar el fichero named.conf, dentro de la carpeta /etc/bind, no sin antes hacer una copia de seguridad del mismo:

! # cp /etc/bind/named.conf /etc/bind/named.conf.bak

Modificaremos el fichero y le añadiremos las siguientes líneas:

! include “/etc/bind/rndc.key”;

controls {! inet 127.0.0.1 allow { 127.0.0.1; } keys { “rndc-key”; };}; # Esto permitirá al equipo localhost modificar el fichero de zonas, utilizando el fichero rndc.key

Justo después de lo siguiente, con lo cual quedará el fichero de la siguiente manera:

include “/etc/bind/named.conf.options”;include “/etc/bind/named.conf.local”;include “/etc/bind/named.conf.default-zones”;include “/etc/bind/rndc.key”;

controls {! inet 127.0.0.1 allow { 127.0.0.1; } keys { “rndc-key”; };};

Ahora, utilizaremos uno de los ficheros ya creados del bind9 para modificarlos y así generar nuestros ficheros de zona, tanto la directa como la inversa.

Esto lo haremos de la siguiente manera, utilizaremos el fichero db.local, que se encuentra dentro del directorio /etc/bind:

! # cp /etc/bind/db.local /etc/bind/directa.dns! # cp /etc/bind/db.local /etc/bind/inversa.dns

Adrián Jurado Álvarez ASIR 2013

8

Page 9: DNS Dina Mico

2º Zona Directa

Una vez que están copiados, procedemos a configurarlos, primero el de la zona directa, directa.dns de la siguiente manera:

! # nano /etc/bind/directa.dns

# ZONA DIRECTA$TTL 604800@! IN! SOA! ubuntuserver.asir.es. ubuntuserver (! ! ! ! ! 1! ;Serial! ! ! ! 604800! ;Refresh! ! ! ! 86400! ;Retry! ! ! 2419200! ;Expire! ! ! ! 604800)! ;Negative cache TTL

;Servidor DDNS! ! ! ! IN! NS! ubuntuserver.asir.es.ubuntuserver! ! IN! A! 192.168.0.1

3º Zona Inversa

Y ahora el de la zona inversa, inversa.dns que debería quedar de la siguiente manera:

! # nano /etc/bind/inversa.dns

# ZONA INVERSA$TTL 604800@! IN! SOA! ubuntuserver.asir.es. ubuntuserver (! ! ! ! ! 1! ;Serial! ! ! ! 604800! ;Refresh! ! ! ! 86400! ;Retry! ! ! 2419200! ;Expire! ! ! ! 604800)! ;Negative cache TTL

;Servidor DDNS! ! ! IN! NS! ubuntuserver.asir.es.1! ! ! IN! PTR! ubuntuserver.asir.es.

Una vez que hemos terminado de configurar los ficheros de zona, debemos reiniciar tanto el servicio DNS como el servicio DHCP:!! # service isc-dhcp-server restart! # service bind9 restart

Si todo ha ido bien, continuaremos con el UbuntuCliente y haremos distintas pruebas.

Adrián Jurado Álvarez ASIR 2013

9

Page 10: DNS Dina Mico

Pruebas de Funcionamiento

Una vez que hemos terminado de configurar tanto el servidor, como uno de los clientes, es hora de hacer distintas pruebas para comprobar que todo funciona correctamente.

1º UbuntuCliente

Para ello nos iremos al UbuntuCliente y reiniciaremos la tarjeta de red de nuevo:

! # dhclient -r eth0 # Es el equivalente a ipconfig /release de windows! # dhclient eth0 # Es el equivalente a ipconfig /renew de windows! # ifconfig # Revisamos que nos ha dado bien la IP! # cat /etc/resolv.conf # Revisamos que nos ha dado bien los DNS

Si no nos ha dado ningún mensaje de error, introduciremos el comando nslookup para obtener información de dónde pasan las peticiones DNS y de si es capaz de resolver ese nuevo equipo en el DNS.

! # nslookup ubuntuserver.asir.es

El servidor nos deberá contestar con la IP del cliente, y cual es su servidor DNS.

2º Windows

A continuación buscaremos una máquina virtual de Windows y configuraremos su tarjeta de red virtual en Host Only.

Una vez que la tengamos configurada, encenderemos la máquina virtual y configuraremos la tarjeta de red para que recoja una dirección IP por DHCP.

Una vez que la tarjeta de red haya recibido una IP, comprobaremos que resuelve los demás equipos de la red de manera dinámica, lo haremos desde una consola de comandos de la siguiente manera:

! C:/>nslookup ubuntucliente.asir.es

El servidor nos contestará de manera muy similar a lo visto anteriormente desde el UbuntuCliente, ofreciéndonos información acerca del DNS, su IP y su nombre de dominio.

De la misma manera, probaremos que la zona inversa funciona correctamente, introduciendo los mismos comandos pero modificando el host:

1º UbuntuCliente

# nslookup 192.168.0.50

2º Windows

C:/>nslookup 192.168.0.50

Adrián Jurado Álvarez ASIR 2013

10