lunes, 12 de enero de 2015

Instalación y Configuración de DNS y DHCP en un servidor Linux.


Resumen.

En este documento se recoge información sobre como instalar y configurar un sistema de nombre de dominio (DNS) y DHCP usando BIND y DHCP3-ISC-DHCP-Server. Para ellos, implantamos un ejemplo sobre los pasos a seguir para la instalación y configuración de dichos servicios.

 Instalación y configuración del servidor DNS

BIND es un estándar en todas las versiones de Unix y Linux. Bind viene con tres componentes. El primero es el servicio o demonio que ejecuta el servidor DNS. Este componente se llama named.

El segundo elemento de BIND es la librería resolutoria. Este componente es el que los navegadores Web, el software de correo y otras aplicaciones consultan cuando intentan encontrar un servidor por su nombre DNS. El código del resolutor lanza consultas sobre los servidores DNS para intentar traducir nombres en direcciones IP.
Este elemento de BIND usa su propio directorio llamado resolv.conf que está presente en cada ordenador. Es deber de cada administrador configurar dicho directorio como veremos más adelante.
Lo primero que se debe realizar es descargar el paquete BIND9 para configurar el servidor DNS. Esto puede realizarse con la instrucción vía consola para ello introducimos el siguiente comando: 
apt-get install bind9
Una vez que hemos instalado el paquete comprobamos que archivos se ha creado para ello situamos en /etc/bind y hacemos un ls como podemos ver a continuación:
 Por seguridad realizaremos una copia de los archivos db.local y db.127 con las siguiente instrucciones.
Antes que nada configuramos la IP estática de nuestro servidor, para ello modificaremos el archivo de interfaces con la  siguiente instrucción:
 nano /etc/network/interfaces
Definimos la dirección IP de nuestra máquina que usaremos como servidor DNS así como la máscara, servidor DNS y la dirección de broadcast. Esta dirección IP la utilizaremos en los archivos de BIND para configurar el servidor DNS.
Una vez configurada nuestra IP Estática cargamos la nueva configuración para nuestra interfaz con la siguiente instrucción:
 service networking restart
Ahora nos ubicaremos en la carpeta /etc/bind. Primero modificamos el archivo llamado named.conf, esto con la siguiente instrucción:
nano named.conf
Cuando named recibe una petición, consulta su propio directorio, el archivo de configuración named.conf. Esto hace apuntar a named al archivo de zona para el dominio solicitado. Este archivo esta normalmente instalado en su servidor Linux por defecto. 
Dentro de este archivo se definen los archivos fuentes a cargar y que se crearan más adelante. Así mismo se incluye la llave ubicada en el mismo directorio.
Ahora modificamos el archivo principal con la instrucción nano named.conf.local:
Dentro de este archivo se definen las zonas directas e inversas y el archivo de base de datos que contienen sus instrucciones. De igual forma se especifica el tipo pudiendo ser maestro o esclavo.
Ahora creamos los archivos de base de datos que definimos en named.conf.local, que son “db.pruebaubunto” y “db.192.77.0” tanto para la zona principal así como la inversa.
Primero creamos db.pruebaubunto con la instrucción nano db.pruebaubunto Puede llamarse de cualquier otra forma de acuerdo al dominio que elijan.
Las siguientes líneas de los registros SOA contienen características para los servidores esclavos:
·         Serial: El número de serie para la configuración actual. Usted incrementa este número cada vez que hace un cambio en la configuración, por lo que los servidores esclavos saben cuándo ha actualizado la información. Este número está en formato de año-mes-día.
·         Refresh: El intervalo en el que un servidor DNS esclavo debería sondear al maestro para determinar si es necesario una transferencia de zona. En el ejemplo anterior el número 28800 es equivalente a 8hrs.
·         Retry: Frecuencia con la que intenta conectarse al maestro si una conexión fallara.
·         Expiry: Cantidad de tiempo que un esclavo debería intentar conectar con el maestro antes de que los datos que contiene caduquen.
·         Mínimum-TTL: Tiempo de vida por defecto para este dominio en segundos. 86400 es un día, el registro de consultas a cache durara un día.
De igual manera creamos db.192.77.0.
Una vez que ya configuramos BIND y creamos sus archivos que sirven como bases de datos, modificamos finalmente el archivo resolv con la instrucción
nano /etc/resolv.conf
En el configuramos el dominio y el nombre del servidor. Una vez finalizados estos paso iniciamos BIND con la instrucción
/etc/init.d/bind9 start
Si todo fue configurado correctamente debería iniciar sin problemas, de lo contrario si necesitamos ver el archivo syslog para ver el error, este se encuentra en /etc/var/log/syslog
Al final del archivo syslog se encontrara de manera detallada cual fue el error.
Para probar si funciona nuestro servidor DNS utilizamos la herramienta dig, en consola utilizamos el comando dig pruebaubunto.com.
 Por ultimo probamos la zona inversa con el siguiente comando: dig  –x 192.77.0.1
Comprobamos que el servidor se encarga de resolver las peticiones para ello ejecutamos la siguiente instrucción:
 Con este comprobamos que nuestro servidor DNS funciona correctamente.
 Instalación  y Configuración del servidor DHCP
Para utilizar DHCP es necesarios  instalar el servidor DHCP. Para ello debemos abrir un terminar de Ubuntu y escribir las siguientes introducción para ello debemos acceder como administrador:
apt-.get install dhcp3-server 
Una vez que hemos instalado el servicio DHCP, este queda preparado para iniciarse siempre durante el inicio del sistema. Si queremos detener o iniciar el servicio en un momento dado, podemos utilizar el script /etc/init.d/ dhcp3-server  o el mando service:
Gestión del servicio DHCP
Acción
Script
Comando
Comprobar el estado
/etc/init.d/ isc-dhcp-server status
Service  isc-dhcp-server status
Iniciar el servicio
/etc/init.d/ isc-dhcp-server start
Service  isc-dhcp-server start
Reiniciar el servicio
/etc/init.d/ isc-dhcp-server restart
Service  isc-dhcp-server restart
Detener el servicio
/etc/init.d/ isc-dhcp-server stop 
Service  isc-dhcp-server stop 

A continuación procedemos a configurar 2 archivos. El primero será para definir la interfaz donde se escucharan las peticiones, en este caso definiremos la interfaz de la NIC a utilizar. Para ello debemos introducir en el terminal la siguiente instrucción:
Nano /etc/default/isc-dhcp-server
Una vez completado este pasó, pasamos a modificar el archivo principal, el cual se encarga de asignar las direcciones dentro del rango especificado. Este archivo es dhcp.conf y está ubicado en /etc/dhcp/. Para ello debemos introducir en el terminal la siguiente instrucción:
Nano /etc/dhcp/dhcp.conf