Ir al contenido principal

Servicio de Directorio con LDAP [2]: NTP y dnsmasq

Servidor-DNS-con-dnsmasq_html_m6de5e09c
¡Hola Amigos!. Empezamos a implementar y configurar servicios. Por supuesto que es necesario que nuestro sencillo Servicio de Directorio basado en OpenLDAP, cuente con los servicios básicos para funcionar adecuadamente. Entre ellos tenemos a los servicios DNS o “Domain NameSystem“, DHCP o ” Dynamic Host Configuration Protocol“, y al NTP o “Network Time Protocol“.
El sistema operativo base que usaremos es el Debian 6 “Squeeze”. La mayoría de los métodos descritos pueden servir para el Ubuntu 12.04 “Precise”, y en el Debian 7 “Wheezy”.
Aunque parezca una nimiedad -de hecho hacen un poco largos nuestros artículos- las definiciones, y el estudio de ellas por parte de los lectores son necesarios. Puede y algunos ni las lean y vayan directamente “al pollo y al arroz con pollo”. Craso error. Y no me refiero a los experimentados, pues éstos, nada más de ver el título saben si les interesa o no.
Nos referimos a los que empiezan en las lides de Redes Empresariales. A ellos les pedimos que lean las definiciones y que sigan los enlaces, que profundicen en las partes conceptuales que no necesariamente son líneas de comando o código, y que posteriormente sigan el resto del artículo.
Así nos ahorraremos mucho tiempo tanto ellos como nosotros, en hacer y responder a preguntas cuyas respuestas están precisamente en la parte de esas definiciones e introducciones. :-)
También queremos dejar dicho de una vez, que el lenguaje de programación fundamental y más importante para un administrador de redes o para un informático, es el Idioma Inglés. :-). No siempre podemos dar traducciones, pues no somos expertos en la lengua inglesa.
Por supuesto que, antes de continuar, recomendamos encarecidamente lean la Introducción a ésta serie de artículos.

Definiciones necesarias

Tomadas de EcuRed:
dnsmasq. Es un servidor ligero DNS, TFTP y DHCP. Su propósito es proveer servicios DNS y DHCP a una red de área local. Es una implementación libre del protocolo DNS que recibe peticiones de clientes solicitando una dirección IP a partir del nombre de una máquina. El servidor responderá a dichas peticiones proporcionando la IP.
DNS Domain Name System (o DNS, en español, sistema de nombre de dominio). Es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado al internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada uno de los participantes. Su función más importante, es traducir (resolver) nombres inteligibles para los humanos en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.
DHCP (sigla en inglés de Dynamic Host Configuration Protocol) es un protocolo de redque permite a los nodos de una red IP obtener sus parámetros de configuración automáticamente. Se trata de un protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va asignando a los clientes conforme éstas van estando libres, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después.
NTP o Network Time Protocol, es un protocolo diseñado para sincronizar los relojes de las estaciones de trabajo a través de la red. La versión 3 de este protocolo es un Internet DraftStandard, formalizado en la RFC 1305. El protocolo NTP versión 4 es una importante revisión del estandard mencionado, y se encuentra en desarrollo, pero aún no ha sido formalizado en una RFC. Una versión simple de NTP (SNTP) versión 4 se describe en la RFC 2030
ISC-DHCP-SERVER (Internet Software Consortium DHCP Server). Un servidor DHCP es un servidor el cual es una implementación libre del protocolo DHCP que recibe peticiones de clientes solicitando una configuración de red IP. El servidor responderá a dichas peticiones proporcionando los parámetros que permitan a los clientes autoconfigurarse. Para que un PC solicite la configuración a un servidor, en la configuración de red de los PCs hay que seleccionar la opción obtener dirección IP automáticamente.
Kerberos es un sistema de autentificación de usuarios, que posee un doble objetivo:
  • Impedir que las claves sean enviadas a través de la red, con el consiguiente Riesgo de su divulgación.
  • Centralizar la autentificación de usuarios, manteniendo una única base de Datos de usuarios para toda la red.
Kerberos, como protocolo de seguridad, usa una Criptografía de claves simétricas, lo que significa que la clave utilizada para cifrar es la misma clave utilizada para descifrar o autenticar usuarios. Esto permite a dos computadores en una red insegura, demostrar su identidad mutuamente de manera segura. Kerberos entonces restringe los accesos sólo a usuarios autorizados y autentica los requerimientos a servicios, asumiendo un entorno distribuido abierto, en el cual usuarios ubicados en estaciones de trabajo acceden a estos servicios en Servidores distribuidos a través de una red.

ntp_server_sigma_mod_1LxMCe

¿Cuál implementación de los servicios DNS y DHCP desarrollaremos?

Desarrollaremos dos: la basada en dnsmasq, y en los siguientes artículos la correspondiente alBind9 y el ISC-DHCP-Server. Para los que quieran aprender de forma detallada cómo se implementa y configura un DNS, recomendamos lean el artículo “Cómo instalar y configurar un DNS Maestro Primario para una LAN en Debian 6.0

¿Por qué necesitamos los servicios DNS, DHCP y NTP?

  • DNS: Para mantener una base de datos con los nombres de los hosts y sus direcciones IP, de los equipos que estarán conectados a nuestra red empresarial, de forma que podamos llamarlos por sus nombres, en vez de por sus direcciones IP.
  • DHCP: Evitarnos el desplazamiento hasta el lugar donde se encuentra ubicado el equipo cliente, para configurar su dirección IP y parámetros relacionados. Mediante el DHCP configuramos automáticamente la dirección IP del cliente, su máscara de subred, la puerta de enlace, el servidor DNS a quien debe consultar, la dirección IP del servidor de correo de nuestra LAN, el tipo de nodo, el servidor de nombres NetBIOS y muchos otros parámetros más. Evidentemente, con éste servicio, podemos evitar errores de configuración manual de tan importante aspecto en los equipos clientes.
  • NTP: Si en futuro no lejano decidimos integrar Kerberos a nuestro servidor LDAP, necesitaremos de éste servicio. Kerberos depende fuertemente del protocolo NTP y de los servicios DNS.

¿Integraremos los servicios DNS y DHCP al servidor LDAP?

La respuesta por ahora es NO. Inicialmente NO. El tema OpenLDAP es un poco técnico de por si. Y si de entrada nos complicamos la vida con ese tipo de integración, no llegaremos muy lejos. Observen que el ClearOS, usa el dnsmasqZentyal por su parte utiliza el Bind9 y el DHCP Server sin integrarlos con el servidor LDAP.
Vayamos de lo sencillo a lo complejo para no meternos entre las patas de los caballos. :-)

Red de ejemplo

1
2
3
4
5
6
7
8
9
Lan: 10.10.10.0/24
Dominio: amigos.cu
Servidor: mildap.amigos.cu
Sistema Operativo Servidor: Debian 6 "Squeeze
Dirección IP del servidor: 10.10.10.15
Cliente 1: debian7.amigos.cu
Cliente 2: raring.amigos.cu
Cliente 3: suse13.amigos.cu
Cliente 4: seven.amigos.cu

Servidor dnsmasq

Instalamos y configuramos:
1
2
:~# aptitude install dnsmasq
:~# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.original
Editamos el archivo que ahora está vacío /etc/dnsmasq.conf y lo dejamos con el siguiente contenido:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
:~# nano /etc/dnsmasq.conf
# Nunca pasar nombres planos sin el punto
# o la parte del dominio
domain-needed
domain=amigos.cu
# No pasar direcciones en el espacio de
# direcciones no enrutadas.
bogus-priv
# Consultar a los servidores de nombres en
# el orden en que aparecen en el archivo
# /etc/resolv.conf
strict-order
# Las respuestas a las consultas solo partirán de
# /etc/hosts o del DHCP.
local=/localnet/
# OJO CON LA INTERFACE
interface=eth1
expand-hosts
# Cambie el rango acorde a sus necesidades
# y también el tiempo de arrendamiento de
# la dirección IP
dhcp-range=10.10.10.150,10.10.10.200,12h
# Opciones para el RANGO
# Servidor de tiempo
dhcp-option=option:ntp-server,10.10.10.15
# La IP del servidor NTP es la misma que la de el dnsmasq
dhcp-option=42,0.0.0.0
# Las siguientes opciones son las que Samba recomienda para
# servidores ISC-DHCP-Server en su página
# http://www.samba.org/samba/ftp/docs/textdocs/DHCP-Server-Configuration.txt
# Están adaptadas para el caso en que el servidor Samba
# se ejecute en el mismo servidor dnsmasq.
# Puede descomentar algunas o todas ellas, si utiliza clientes
# Windows y el servidor Samba en su LAN.
#dhcp-option=19,0           # option ip-forwarding off
dhcp-option=44,0.0.0.0     # Servidor de nombres NetBIOS-sobre-TCP/IP. WINS
dhcp-option=45,0.0.0.0     # Servidor de distribución de Datagramas NetBIOS
dhcp-option=46,8           # Tipo de Nodo NetBIOS
Para conocer más sobre el dnsmasq, recomendamos lean detenidamente el archivo dnsmasq.conf, que nombramos cómo dnsmasq.conf.original. Es la Biblia en Pasta sobre éste servicio. Está en inglés.
Reiniciamos el servicio:
1
2
:~# service dnsmasq restart
Restarting DNS forwarder and DHCP server: dnsmasq.
Las direcciones IP fijas de servidores de nuestra LAN las declaramos en el archivo /etc/hosts del propio servidor donde se ejecuta el dnsmasq.
1
2
3
4
5
:~# nano /etc/hosts
27.0.0.1       localhost
10.10.10.15    mildap.amigos.cu    mildap
10.10.10.1      gandalf.amigos.cu gandalf
10.10.10.5      miwww.amigos.cu miwww
Cada vez que añadimos un nombre y una IP al archivo /etc/hosts , debemos forzar la recarga del servicio para que el host añadido sea reconocido por los comandos hostdig y nslookup, tanto en el propio servidor, como por el resto de las estaciones de trabajo que hayan adquirido una IP desde éste servidor:
1
:~# service dnsmasq force-reload
Nota: El archivo donde el dnsmasq almacena las direcciones IP otorgadas o “Leases”, es el/var/lib/misc/dnsmasq.leases.

Servidor NTP

Instalamos y configuramos:
1
2
3
:~# aptitude install ntp
:~# cp /etc/ntp.conf /etc/ntp.conf.original
:~# cp /dev/null /etc/ntp.conf
Editamos el archivo que ahora está vacío /etc/ntp.conf y lo dejamos con el siguiente contenido:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Se establece la política predeterminada para cualquier
# servidor de tiempo utilizado: se permite la sincronización
# de tiempo con las fuentes, pero sin permitir a la fuente
# consultar (noquery), ni modificar el servicio en el
# sistema (nomodify) y declinando proveer mensajes de
# registro (notrap).
restrict default nomodify notrap noquery
# Permitir todo el acceso a la interfaz de retorno del
# sistema.
restrict 127.0.0.1
# Se le permite a la red local sincronizar con el servidor
# pero sin permitirles modificar la configuración del
# sistema, y sin usar a éstos como iguales para sincronizar.
restrict 10.10.10.0 mask 255.255.255.0 nomodify notrap
# Reloj local indisciplinado.
# Este es un controlador emulado que se utiliza solo como
# respaldo cuando ninguna de las fuentes reales están
# disponibles.
fudge 127.127.1.0 stratum 10
server 127.127.1.0
# Archivo de variaciones.
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
## SI TIENE ACCESO A INTERNET
# Lista de servidores de tiempo de estrato 1 o 2.
# Se recomienda tener listados al menos 3 servidores.
# Mas servidores en:
# http://kopernix.com/?q=ntp
# http://www.eecis.udel.edu/~mills/ntp/servers.html
## Si tiene acceso a Internet, elimine el comentario de las siguientes 3 líneas
#server 0.pool.ntp.org
#server 1.pool.ntp.org
#server 2.pool.ntp.org
# Permisos que se asignarán para cada servidor de tiempo.
# En los ejemplos, no se permite a las fuente consultar, ni
# modificar el servicio en el sistema ni enviar mensaje de
# registro.
## Si tiene acceso a Internet, elimine el comentario de las siguientes 3 líneas
#restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
#restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
#restrict 2.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
# Se Activa la difusión hacia los clientes
broadcastclient
Reiniciamos el servicio NTP:
1
2
3
:~# service ntp restart
Stopping NTP server: ntpd.
Starting NTP server: ntpd.

Cliente NTP

1
2
3
:~# aptitude install ntp
:~# cp /etc/ntp.conf /etc/ntp.conf.original
:~# cp /dev/null /etc/ntp.conf
Editamos el archivo que ahora está vacío /etc/ntp.conf y lo dejamos con el siguiente contenido:
1
server mildap.amigos.cu

Comprobaciones en el Cliente

Por ejemplo, tomemos a nuestro cliente debian7.amigos.cu, al cual previamente le hemos instalado el paquete openssh-server.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@debian7:~# ssh debian7
root@debian7's password:
[----]
root@debian7:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 52:54:00:8f:ee:f6
          inet addr:10.10.10.153  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe8f:eef6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4967 errors:0 dropped:0 overruns:0 frame:0
          TX packets:906 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6705409 (6.3 MiB)  TX bytes:93635 (91.4 KiB)
          Interrupt:10 Base address:0x6000
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:480 (480.0 B)  TX bytes:480 (480.0 B)
Ya comprobamos que adquirió una dirección IP desde el dnsmasq instalado en nuestro servidor OpenLDAP. Por tanto, ese servicio funciona correctamente. Ahora comprobemos el servicio NTP, lo cual puede demorar varios segundos:
1
2
:~# ntpdate -u mildap.amigos.cu
25 Jan 20:07:00 ntpdate[4608]: step time server 10.10.10.15 offset -0.633909 sec
Con respecto al servicio NTP, todo funciona OK.
Otras comprobaciones:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
root@debian7:~# dig gandalf.amigos.cu
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> gandalf.amigos.cu
[----]
;; QUESTION SECTION:
;gandalf.amigos.cu.        IN    A
[----]
;; ANSWER SECTION:
gandalf.amigos.cu.    0    IN    A    10.10.10.1
[----]
root@debian7:~# dig gandalf
[----]
;; QUESTION SECTION:
;gandalf.            IN    A
[----]
;; ANSWER SECTION:
gandalf.        0    IN    A    10.10.10.1
[----]
root@debian7:~# dig miwww
[----]
;; QUESTION SECTION:
;miwww.                IN    A
[----]
;; ANSWER SECTION:
miwww.            0    IN    A    10.10.10.5
[----]
root@debian7:~# dig debian7
[----]
;; QUESTION SECTION:
;debian7.            IN    A
[----]
;; ANSWER SECTION:
debian7.        0    IN    A    10.10.10.153
[----]
root@debian7:~# host mildap
mildap.amigos.cu has address 10.10.10.15
Host mildap.amigos.cu not found: 5(REFUSED)
Host mildap.amigos.cu not found: 5(REFUSED)
root@debian7:~# host mildap.amigos.cu
mildap.amigos.cu has address 10.10.10.15
Host mildap.amigos.cu.amigos.cu not found: 5(REFUSED)
Host mildap.amigos.cu.amigos.cu not found: 5(REFUSED)
Y como los dos servicios instalados y configurados funcionan muy bien, cerramos las comunicaciones por el día de hoy hasta la próxima entrega del artículo sobre cómo implementar los servicios DNS y DHCP actualizando al DNS, basados en el Bind9 y el ISC-DHCP-Server, para aquellos que administren redes un poco más grandes y complicadas.
Hasta la próxima, amigos !!!

Comentarios

Entradas más populares de este blog

Dónde se encuentran los archivos de registro (logs) en Linux

Lo más recomendable es navegar hacia la carpeta /var/log y listar los archivos contenidos dentro de esa carpeta. Aparecerán todos los archivos de registro disponibles. Sus nombres son autoexplicativos. cd /var/log ls Archivos de registro comunes (pueden variar según la distro): /var/log/message: registro de mensajes generales del sistema /var/log/auth.log: log de autenticación /var/log/kern.log: registro del kernel /var/log/cron.log: registro de crond /var/log/maillog: registro del servidor de mails /var/log/qmail/ : registro de Qmail /var/log/httpd/: registro de errores y accesos a Apache /var/log/lighttpd: registro de errores y accesos a Lighttpd /var/log/boot.log : registro de inicio del sistema /var/log/mysqld.log: registro de la base de datos MySQL /var/log/secure: log de autenticación /var/log/utmp or /var/log/wtmp : registro de logins Conclusión, en /var/log se almacenan todos los registros del sistema. No obstante, algunas aplicaciones como httpd incluyen ah

Seguridad informática y personal.

Por Francisco Hernández. Para muchas personas la seguridad informática es un tema desconocido, en pocas palabras no siquiera reconocen el término. Y esque en en países latinoamericanos cómo es el caso de México se tiene un problema enorme al momento de hablar de informática y los riesgos que esto conlleva. Existen muchas formas en las que los piratas informáticos y los malhechores se pueden beneficiar de esta falta de conocimiento, desde un simple ataque de pishing o ingeniería social y hasta hackeos completos, la verdad es que tomando las palabras de un experto en el tema, "ningún sistema conectado a la red es 100% seguro" Mitnik Kevin, USA. Podemos inferir que realmente no existe un sistema que sea seguro o impenetrable, siempre y cuando esté conectado a la red o se pueda tener algún tipo de acceso al mismo. Es por esto que nos daremos a la tarea de publicar diferentes post relacionados con el tema y de como podemos evitar en gran medida este tipo de situaciones.

Atajos de teclado en Unity

Pues nada que hoy les dejo los atajos de teclado para Ubuntu 14.04, Unity con lo cual podrán acceder mas rápido a muchas funciones y aspectos de Ubuntu que de otra forma seria mas difícil. Sin mas aquí la lista de atajos de teclado. Atajos de teclado de Unity para el lanzador de aplicaciones: Pulsar la tecla Super: Abre el lanzador. En él podemos buscar archivos, aplicaciones o incluso mensajes en las redes sociales. Alt +F1: Permite navegar por la barra de Unity con el teclado. Podemos usar las teclas de dirección para movernos y Enter para seleccionar aplicaciones. Útil si tenemos el ratón estropeado o desactivado. Super + Tab: Permite navegar por las aplicaciones de la barra de Unity para abrirlas. Super + número del 0 al 9: Equivale a pulsar sobre un icono del lanzador. Siendo el 1 el navegador de archivos y el 0 el décimo icono que se encuentre en la barra. Super + Mayus. + número del 0 al 9: Hace lo mismo que el comando anterior, pe