Sei sulla pagina 1di 10

Adrin Jurado lvarez ASIR 2013

Servidor DHCP + DDNS en Ubuntu Server 12.04


En este tutorial, aprenderemos a congurar el Servidor y un cliente Ubuntu para que el Servidor le de una direccin IP por DHCP y agregue el nombre del host al DNS de manera dinmica. 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.

Instalacin y Preparacin
1 UbuntuServer
! Realizaremos la instalacin por defecto, en este caso no le vamos a instalar el entorno grco y conguraremos 2 tarjetas de Red de la siguiente manera: !
!

eth0: NAT # Para que durante la instalacin se descarguen actualizaciones eth1: Host Only # Esta se utilizar para el DHCP y la red interna Nombre del Host: UbuntuServer

!
2 UbuntuCliente
Tambin realizaremos la instalacin por defecto, y en este caso slo dispondr de una tarjeta de Red. !
!

eth0: NAT # Despus 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 congurarlo.

4 UbuntuCliente
Una vez que ya hemos instalado nuestro UbuntuCliente, instalaremos las ltimas actualizaciones y tambin aunque es opcional, instalaremos el entorno grco antiguo. ! ! ! # apt-get update # apt-get upgrade # apt-get install gnome-panel
1

Adrin Jurado lvarez ASIR 2013

Congurar Servidor I
Vamos a comenzar congurando las tarjetas de red del servidor, las interfaces de escucha y servidor DHCP y congurar los servicios DNS y DCHP

1 UbuntuServer
Primero conguramos las tarjetas de red del Servidor, para ello debemos modicar 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 conguracin, con cualquiera de las maneras funcionar: ! ! # /etc/init.d/networking restart # Esta es la manera antigua ! # service networking restart # Esta es la manera nueva

Slo nos queda hacer un ifcong para comprobar que est todo correcto y que las tarjetas han cogido su conguracin. ! # ifconfig

Adrin Jurado lvarez ASIR 2013

Congurar Servidor DHCP


Vamos a congurar el Servidor para que sirva direcciones IP, nombres de dominio y direcciones de enrutadores a los clientes. Primero conguramos el servicio para que escuche en la tarjeta de red eth0: ! # nano /etc/default/isc-dhcp-server

Buscamos la lnea en la que pone: ! ! INTERFACES= Y la modicamos por: ! INTERFACES=eth0

Ahora vamos a congurar el chero 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 chero y procederemos a congurarlo: ! ! # echo > /etc/dhcp/dhcpd.conf # nano /etc/dhcp/dhcpd.conf

El chero 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 conguracin ! # service isc-dhcp-server restart

Adrin Jurado lvarez ASIR 2013

2 UbuntuCliente
Lo siguiente es ver que el servicio est funcionando, para ello, primero cambiaremos la conguracin de la tarjeta de red de la mquina 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 direccin IP vlida, dentro del rango que anteriormente hemos especicado. Para ello lo haremos de la siguiente manera: ! ! ! ! # # # # dhclient -r eth0 # Es el equivalente a ipcong /release de windows dhclient eth0 # Es el equivalente a ipcong /renew de windows ifconfig # Revisamos que nos ha dado bien la IP cat /etc/resolv.conf # Revisamos que nos ha dado bien los DNS

Congurar Servidor DNS


Ahora vamos a congurar el Servidor DNS, crearemos los cheros de zona y especicaremos los cheros journal, que ser donde nos agregue las direcciones IP dinmicas que recibe el DHCP de los clientes.

1 UbuntuServer
Primero pararemos el servicio. ! # service bind9 stop

Ahora haremos el backup del chero y luego lo vaciamos para posteriormente congurarlo. ! ! ! # 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 chero 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;

Adrin Jurado lvarez ASIR 2013

# 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 continuacin haremos start al servicio, para levantarlo y que nos coja la nueva conguracin. ! # service bind9 start

Dentro de los cheros directa.dns e inversa.dns se encontrar nuestro chero de zona, ambos dentro de la carpeta /etc/bind. Los cheros directa.jnl e inversa.jnl incluirn (de manera no legible al humano) las actualizaciones dinmicas 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 mquina del chero en lenguaje Human - Legible, el comando es: ! ! # named-journalprint /var/cache/bind/directa.jnl # Para el chero # named-journalprint /var/cache/bind/inversa.jnl # Para el
de zona directa fichero de zona inversa

Congurar Servidor DHCP II


Vamos ahora a congurar el Servicio DHCP para que permita las actualizaciones dinmicas y que tiene que hacer con ellas.

1 UbuntuServer
Primero pararemos el servicio. ! # service isc-dhcp-server stop

Conguramos el chero dhcpd.conf: ! # nano /etc/dhcp/dhcpd.conf

Adrin Jurado lvarez ASIR 2013

Al nal de la ltima lnea, debemos agregar lo siguiente: server-identifier! ddns-updates! ! ddns-update-style! ddns-domainname! ddns-rev-domainname ignore ! ! ! include ! ! ! autoritative; default-lease-time! max-lease-time!! min-lease-time!! log-facility! ! ! ! ! ! ! ! ! ! ! ! ! ubuntuserver; on; interim; asir.es.; in-addr.arpa.; client-updates; /etc/bind/rndc.key; 3600; 86400; 400; local7;

# Actualizaciones dinmicas # 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 chero de zona se actualice dinmicamente a travs del chero rndc.key, debemos darle permisos para que el DHCP daemon sea capaz de actualizarlo, para ello es necesario modicar las reglas del APPARMOR y darle permisos de lectura y escritura. Primero, es necesario hacer backup del chero /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 lnea en la que aparezca lo siguiente: ! ! /etc/dhcp/ r, /etc/dhcp/** r,

Justo debajo de estas instrucciones debemos aadir lo siguiente: ! ! /etc/bind/ rw, /etc/bind/** rw,
6

Adrin Jurado lvarez ASIR 2013

Una vez que hemos aadido las instrucciones, debemos modicar los permisos del chero 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

Congurar Cliente Ubuntu


1 UbuntuCliente
Ahora nos toca congurar el UbuntuCliente para que cuando el servidor DHCP le otorgue una direccin IP de manera dinmica, el cliente le responda con su FQDN y su dominio. Estos datos servirn luego para que el DHCP daemon actualice los hosts DNS de manera dinmica. Para ello, deberemos congurar el chero 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 chero y al nal, aadiremos lo siguiente: send send send send fqdn.fqdn ! ! ! ubuntucliente.asir.es; fqdn.no-client-update ! true; fqdn.server-update! ! true; fqdn.encoded! ! ! false;

2 UbuntuCliente
Una vez que ya hemos congurado nuestro cliente de DHCP, reiniciaremos la tarjeta de red con el n de obtener una IP dinmica y enviarle al servidor nuestros datos DNS. ! ! # dhclient -r eth0 # dhclient eth0

Adrin Jurado lvarez ASIR 2013

Congurar Servidor DNS II


Ahora modicaremos los cheros de zona para indicar que nuestro servidor DNS es un servidor Primario e incluiremos los cheros de conguracin necesarios para que funcione en conjuncin con el servicio DHCP, y sea capaz de actualizas los registros DNS que recibe del DHCP daemon.

1 UbuntuServer
Debemos modicar el chero 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

Modicaremos el chero y le aadiremos las siguientes lneas: ! include /etc/bind/rndc.key;

controls { ! inet 127.0.0.1 allow { 127.0.0.1; } keys { rndc-key; }; }; # Esto permitir al equipo localhost modicar el chero de zonas, utilizando el chero rndc.key Justo despus de lo siguiente, con lo cual quedar el chero de la siguiente manera: include include include include /etc/bind/named.conf.options; /etc/bind/named.conf.local; /etc/bind/named.conf.default-zones; /etc/bind/rndc.key;

controls { ! inet 127.0.0.1 allow { 127.0.0.1; } keys { rndc-key; }; }; Ahora, utilizaremos uno de los cheros ya creados del bind9 para modicarlos y as generar nuestros cheros de zona, tanto la directa como la inversa. Esto lo haremos de la siguiente manera, utilizaremos el chero 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

Adrin Jurado lvarez ASIR 2013

2 Zona Directa
Una vez que estn copiados, procedemos a congurarlos, 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 IN! IN! NS! A! ubuntuserver.asir.es. 192.168.0.1

;Servidor DDNS ! ! ! ! ubuntuserver! !

3 Zona Inversa
Y ahora el de la zona inversa, inversa.dns que debera 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 NS! ubuntuserver.asir.es. PTR! ubuntuserver.asir.es.

;Servidor DDNS ! ! ! IN! 1! ! ! IN!

Una vez que hemos terminado de congurar los cheros 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.

Adrin Jurado lvarez ASIR 2013

Pruebas de Funcionamiento
Una vez que hemos terminado de congurar 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 ipcong /release de windows dhclient eth0 # Es el equivalente a ipcong /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 ningn mensaje de error, introduciremos el comando nslookup para obtener informacin de dnde 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 continuacin buscaremos una mquina virtual de Windows y conguraremos su tarjeta de red virtual en Host Only. Una vez que la tengamos congurada, encenderemos la mquina virtual y conguraremos la tarjeta de red para que recoja una direccin IP por DHCP. Una vez que la tarjeta de red haya recibido una IP, comprobaremos que resuelve los dems equipos de la red de manera dinmica, 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, ofrecindonos informacin 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 modicando el host:

1 UbuntuCliente
# nslookup 192.168.0.50

2 Windows
C:/>nslookup 192.168.0.50
10

Potrebbero piacerti anche