|
|
Este documento está disponible en los siguientes idiomas: English Castellano Deutsch Francais Nederlands Portugues Turkce |
por Frédéric Raynal <pappy(at)users.sourceforge.net> Sobre el autor: Frédéric Raynal está actualmente preparando su tesis final en el INRIA en ciencias computacionales. Suelo escuchar a menudo el último álbum de "16 Horse Power" (muy bueno, aunque algo poderoso) y "The for carnation", un poco frío, pero aún así muy bueno Taducido al español por: Juan Manuel Acuña <caimane(at)msn.com> Contenidos: |
Páginas Amarillas 3: El lado del servidorResumen:
En este artículo presentamos una instalación paso a paso de un servido NIS. Echaremos una ojeada al software requerido, los archivos de la configuración y a la creación de una base de datos. |
Hemos visto en el artículo anterior el cómo configurar a un cliente NIS. Hemos enfatizado los riesgos de seguridad al hacer funcionar este servicio. Es cuestionable si debemos realmente llamarlo un riesgo de seguridad. Los desarrolladores del NIS tenían en mente un LAN cerrado o una red separada vía cortafuegos cuando diseñaron el NIS y ellos no estaban realmente preocupados acerca de la seguridad.
En este artículo veremos cómo configurar el servidor y daremos algunos consejos acerca de cómo utilizar el NIS.
Hay dos variantes del NIS, el “NIS tradicional” y el NYS – pero la mayoría de la gente simplemente los llama NIS a los dos. Para un administrador hay una diferencia mínima entre los dos, puesto que se configuran los clientes y los servidores de la misma manera. La nueva versión, NYS, soporta cosas tales como contraseñas shadow u ocultas.
En este artículo hablamos acerca de la versión más reciente de ypserv. Recomendamos una versión posterior a la 1.3.2 puesto que deseamos soportar las contraseñas ocultas. En otras palabras, realmente estamos hablando del NYS y no del “NIS tradicional”, aunque utilizaremos la palabra NIS a lo largo del artículo.
Existen dos servidores: ypserv y yps. De acuerdo con el autor del NIS-HOWTO no hay una diferencia verdadera entre ambos, pero los yps actualmente ya no son mantenidos por ese autor, así que nos referiremos solamente al ypserv.
Primero explicaremos los pasos que son necesarios para instalar el servidor. En este artículo estaremos trabajando con un anfitrión (host) llamado “charly”. El dominio del NIS es “bosley” y los servidores auxiliares son “iron1”, iron2”, y “iron3”.
En primer lugar usted necesita cerciorarse si el demonio del portmap esta funcionando. Si no es así, usted debe iniciarlo.
Después, usted necesita decidir el nombre del dominio NIS. Esto no es un dominio del DNS sino un nombre para la región del YP. Por razones de seguridad, este nombre debe ser diferente del nombre del servidor NIS.
El dominio se fija con el comando domainname :-) En nuestro caso es este:
root@charly >> /bin/domainname bosley
Este comando fijará el el nombre del dominio del NIS solo en la RAM. Para hacerlo permanente usted necesita agregar la siguiente linea a /etc/sysconfig/network:
NISDOMAIN=bosley
Esto entonces fijará el nombre del dominio del NIS automáticamente en el siguiente arranque.
Antes de que podamos iniciar el demonio ypserv necesitamos configurarlo editando el archivo /etc/ypserv.conf. Este es un archivo ASCII con la siguiente sintaxis:
Comentarios: estas son líneas que comienzan con una almohadilla - #.
Opciones para el demonio: la sintaxis está mostrada debajo.
option: [yes|no]
Las opciones posibles son dns, el servidor pedirá que el DNS encuentre a los clientes que no estén en el mapa del anfitrión, sunos_kludge, obsoleto, y xfr_check_port para usar puertos que estén por debajo de 1024 para el servidor (por defecto está en si).
Reglas adicionales: el formato para esos es:
host:map:security:mangle[:field]
Estas reglas deciden quien puede ver que información.
Las páginas del manual de ypserv.conf proporciona explicaciones muy claras para todas las opciones y posibilidades.
Ahora podemos encender el servidor:
root@charly >> /etc/rc.d/init.d/ypserv start
Para arrancar el servidor automáticamente al arranque usted necesita editar el archivo rc.d, o bajo Redhat usted puede correr el comando:
root@charly >> /sbin/chkconfig --level 345 ypserv on
Para verificar que todo este funcionando use:
root@charly >> /usr/sbin/rpcinfo -u localhost ypserv
programa 100004 versión 1 lista y esperando
programa 100004 versión 2 lista y esperando
Antes de entrar en detalles debemos recordar lo que aprendimos en el primer artículo. Existen dos tipos de servidores: amo y esclavo. El servidor esclavo únicamente tiene una copia de las bases de datos del servidor amo. Estos servidores suplen al servidor amo cuando éste tarda demasiado en responder a las peticiones del cliente o cuando el servidor amo se cae (N. del T.: “caer” hace referencia a un problema grave o a un bloqueo). Las bases de datos necesitan ser mantenidas únicamente por el servidor amo. Se copia hacia los clientes.
Todo está listo ahora ... excepto las bases de datos. Tenemos que generarlas primero. Generar significa, usar un Makefile ;-] El Makefile está preparado de antemano, así que nosotros solamente necesitamos cambiar algunas lineas. El Makefile está en /var/yp y está claramente comentado. La linea mas importante es donde se definen los mapas. En el anfitrión charly es:
todos: passwd group hosts rpc services netid protocols mail shadow
# netgrp publickey
# networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
En adición a las opciones por defecto, usted debe agregar la dirección de la contraseña oculta. Para hacer esto, usted necesita agregar “contraseña” (password) y la “sombra” (Shadow) a la lista de archivos y fijar el valor de la variable MERGE_PASSWD a verdadero. La variable MERGE_PASSWD determina si los archivos /etc/passwd y /etc/shadow se combinan.
Un detalle final antes de que iniciemos el servidor: escribir los accesos. Existen dos métodos para controlar los accesos. Los propios métodos del ypserv o por medio del tcp_wrapper. Hablaremos acerca de los propios métodos de seguridad del ypserv.
Si usted solamente tiene los binarios del ypserv, entonces la opción -v imprimirá las opciones de configuración con las que el ypserv fue compilado. Necesitamos la opción “securenets” para usar el control propio de acceso de ypserv.
root@charly >> /usr/sbin/ypserv -v
ypserv - NYS YP Server version 1.3.9 (with securenets)
El archivo /var/yp/securenets contiene pares de los números de netmask/network que podemos usar para controlar el acceso al servidor. Por defecto estos son:
0.0.0.0 0.0.0.0
Esto permite el acceso para todo mundo. Debemos cambiar eso. Para permitir conexiones desde cualquier anfitrión de la red 131.243.223.0 usted deberá escribir:
255.255.255.0 131.234.223.0
Por favor observe que usted puede tener solamente direcciones IP en este archivo. No es posible usar nombres de anfitrión.
Ahora podemos crear la base de datos NIS usando el comando ypinit. Por defecto (definida en el Makefile) ésta leerá los archivos desde /etc y escribirá en /var/yp. Los archivos que irán dentro de nuestra base de datos serán /etc/passwd, /etc/group, /etc/hosts, /etc/networks, /etc/services, /etc/protocols, /etc/netgroup, /etc/rpc.
La opción -m le permite a usted inicializar el servidor con datos en bruto (-m para el amo), la opción -s copia las bases de datos del amo a los esclavos (-s como esclavos).
En Charly inicializamos nuestra base de datos como sigue:
root@charly >> /usr/lib/yp/ypinit -m
En este punto, hemos construido una lista de los anfitriones que funcionarán en el servidor NIS. El anfitrión local está en la lista de los anfitriones del servidor NIS. Por favor continúe agregando los nombres para los otros anfitriones, uno por linea. Cuando la lista esté completa, tecleé un <control D>
siguiente anfitrión a agregar: localhost
siguiente anfitrión a agregar: iron1
siguiente anfitrión a agregar: iron2
siguiente anfitrión a agregar: iron3
siguiente anfitrión a agregar:
La lista actual de los servidores NIS luce de esta manera:
localhost
iron1
iron2
iron3
¿Esto es correcto? [s/n: s] s
Necesitamos algunos minutos para construir las bases de datos...
Construyendo var/yp/bosley/ypservers...
Ejecutando /var/yp/Makefile...
gmake[1]: Introduciendo directorio`/var/yp/bosley'
Actualizando passwd.byname...
Actualizando passwd.byuid...
Actualizando group.byname...
Actualizando group.bygid...
Actualizando hosts.byname...
Actualizando hosts.byaddr...
Actualizando rpc.byname...
Actualizando rpc.bynumber...
Actualizando services.byname...
Actualizando netid.byname...
Actualizando protocols.bynumber...
Actualizando protocols.byname...
Actualizando mail.aliases...
Actualizando shadow.byname...
# shadow publickey # networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
gmake[1]: Dejando directorio`/var/yp/bosley'
Et voila, la base de datos está lista :). En cada uno de los servidores esclavos el comando yprint necesita ser ejecutado:
root@iron3 >> /usr/lib/yp/ypinit -s charly
Para probar el sistema, use uno de los servidores y realice una petición desde el:
root@iron3 >> ypcat passwd mulder:x:500:100::/home/mulder:/bin/csh scully:x:501:100::/home/scully:/bin/bash
Usted también puede ver que las contraseñas están trabajando. Tenemos una “X” donde debería estar la contraseña :)
Instalación de un servidor NIS |
|
Tan pronto como uno de los mapas haya cambiado, por ejemplo, por haber agregado un nuevo servidor o un nuevo usuario, usted debe actualizar la base de datos del NIS.
Para agregar un servidor
auxiliar (o esclavo) nuevo ejecute el comando
/usr/lib/yp/ypinit
-s charly
en el servidor nuevo y agregue este nombre al
archivo /var/yp/ypservers
en el servidor amo.
Si usted agrega un nuevo usuario, entonces varios mapas cambiarán (passwd, shadow, alias, etc ...).
Después de que se hayan cambiado los mapas, usted simplemente debe ejecutar make en /var/yp/ en el servidor maestro. Esto actualizará las bases de datos y empujará los datos (usando yppush) a los auxiliares (esclavos).
El programa rpc.ypxfrd puede acelerar la transacción entre el amo y el esclavo copiando los archivos desde el amo, en ves de reconstruirlos en el esclavo. rpc.ypxfrd se debe comenzar al mismo tiempo que ypserv y únicamente en el amo. Este programa solamente es necesario si usted tiene mapas muy grandes.
Todo mundo sabe que el NIS no es seguro. Sin embargo los servicios son muy útiles una ves que usted extienda su red a más de un solo anfitrión. Por lo tanto, usted debe de implementar algunas medidas de seguridad adicionales.
Existen contraseñas que son fáciles de adivinar, estos son nombres de dominios NIS predecibles. Los candidatos obvios son los nombres de las máquinas, y es posible probar el dominio NIS con ypwhich.
El nombre de dominio NIS es mostrado en varios lugares, especialmente en el directorio /var/yp y en sus subdirectorios. Éstos no deben ser legibles para nadie, con excepción del administrador (root) y no deben ser exportados vía NFS.
No sería desagradable usar tcp_wrapper en adición a /var/yp/securenets para controlar los procesos del portmap.
Es también una ventaja no tener rutas por defecto en el servidor NIS y usar solamente enrutamiento estático para los clientes y para los servidores auxiliares. De esta manera, el servidor no puede usar contestar solicitudes que provengan de anfitriones desconocidos.
Las reglas de un cortafuegos en el ruteador son medidas muy efectivas para controlar el acceso a los servidores NIS.
Estas medidas de seguridad no mejoran la seguridad del NIS por si mismo, sino el ambiente al rededor de él. A pesar de estos problemas, el NIS es una herramienta muy valiosa.
NIS-HOWTO : como todos los HOWTOs excelente y extensa documentación.
http://www.suse.de/~kukuk/ : Trabajos acerca del NIS y del NIS+. La página contiene varios FAQs
The Network Administrators' Guide (La Guía del Administrador de Redes) la cual puede ser encontrada en http://www.linuxdoc.org/LDP/nag
|
Contactar con el equipo de LinuFocus
© Frédéric Raynal, FDL LinuxFocus.org |
Información sobre la traducción:
|
2003-03-20, generated by lfparser version 2.34