Web personal de Aitor Oliveira

Centralizar en un servidor

Introducción

Cuando tenemos una red de ordenadores, suele ser para compartir impresoras o directorios. Con esto ya podemos ir a otro ordenador de la red y continuar trabajando con un documento nuestro, siempre que lo hayamos metido previamente en el directorio compartido. Ésto se puede mejorar: si tenemos un ordenador que actúa de servidor, que está siempre encendido, que tiene las impresoras y documentos compartidos, podemos sacarle más provecho si centralizamos la gestión de los usuarios y guardamos todos los documentos en el servidor, que además nos simplificará la tarea de las copias de seguridad.

Esta centralización la podemos conseguir en Linux/Unix con NIS y NFS. Es algo parecido a lo que en Windows sería Directorio Activo (Active Directory) con perfiles móviles o IntelliMirror, pero realmente mientras tuve Windows y los perfiles móviles nunca estuve del todo contento, por problemas como borrar un archivo, ir a otro ordenador y ahí volvía a aparecer...

No puedo comprobar paso por paso lo que pongo aquí, porque por ejemplo ahora no uso NIS, estoy usando OpenLDAP (otro servicio de directorio) más que nada por probar. Esta información es la que guardo de cuando hice mi instalación, si algo va mal por favor házmelo saber.

NIS

Network Information Service (servicio de información de red), antiguamente llamado "Yellow Pages" (páginas amarillas), es un servicio de directorio desarrollado por Sun Microsystems pero que se puede encontrar en cualquier Unix o Linux. Es una base de datos con los usuarios, grupos, hosts... de la red, que es consultado por los clientes.

Servidor

Instalación en Debian:

svrzubione:/# apt-get install nis

Nos pedirá el nombre del dominio, inventa un nombre, en mi caso zubitxo.

Añadimos en /etc/defaultdomain el nombre de dominio que hayas puesto:

svrzubione:/# cat /etc/defaultdomain
zubitxo

En /etc/default/nis ponemos NISSERVER=master:

svrzubione:/# cat /etc/default/nis
...
# NIS master server.  If this is configured on a slave server then ypinit
# will be run each time NIS is started.
NISMASTER=master
...

Ajustamos /etc/ypserv.securenets a los rangos de IPs de nuestra red, y comentar o eliminar la línea que considera de nuestra red a todas las IPs:

svrzubione:/# cat /etc/ypserv.securenets
...
# Always allow access for localhost
255.0.0.0       127.0.0.0

# This line gives access to everybody. PLEASE ADJUST!
#0.0.0.0                0.0.0.0

# Nuestra red
255.255.255.0   192.168.0.0

Para configurar el servidor ejecutamos:

svrzubione:/# /usr/lib/yp/ypinit -m

Reiniciamos el servidor:

svrzubione:/# /etc/init.d/nis stop
svrzubione:/# /etc/init.d/nis start

Clientes

Lo instalamos como en el servidor:

cliente1:/# apt-get install nis

Ponemos el dominio que hemos configurado en el servidor.

Con eso ya está instalado y configurado NIS en el cliente. Pero tenemos que configurar el sistema operativo para que pregunte por los usuarios también a NIS, y no solo a los ficheros locales que guardan la lista de usuarios locales. Esto se hace configurando /etc/nsswitch.conf, hay que sustituir files por compat:

cliente1:/# cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

En este fichero es donde se indican qué bases de datos (files, nis, dns...) tiene que consultar el sistema para obtener información de diferentes servicios (passwd, group, hosts...). En redes donde no hay un servidor dns (no es el caso del ejemplo), puede ser útil usar NIS para obtener esa información, para eso hay que sustituir:

hosts:	files dns

por:

hosts:	files nis

compat es algo así como files nis que consulta a los ficheros locales y a NIS, pero que por unos problemas con shadow no se recomienda usar.

Para comprobar que funciona, se usa el comando getent passwd para listar los usuarios y getent group para los grupos. Lanzando estos comandos deberían aparecer los usuarios locales y los del dominio.

Añadir un usuario

Ahora que las cuentas de usuario están en el servidor, hay que ir al servidor a agregar un usuario, se agrega con los comandos habituales useradd, adduser u otras herramientas del entorno gráfico:

svrzubione:/# useradd -g usuarios nombre_de_usuario

Asignamos una contraseña:

svrzubione:/# passwd nombre_de_usuario
Changing password for user nombre_de_usuario.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Y la parte adicional para NIS:

svrzubione:/# cd /var/yp
svrzubione:/var/yp# make
gmake[1]: Entering directory `/var/yp/NIS-HOME-NETWORK'
Updating passwd.byname...
Updating passwd.byuid...
Updating netid.byname...
gmake[1]: Leaving directory `/var/yp/NIS-HOME-NETWORK'

NFS

Network File System (sistema de ficheros en red), que también fue desarrollado por Sun, es un sistema de ficheros distribuido que permite a los clientes acceder a ficheros de forma transparente, como si fuesen archivos locales. Su instalación también es muy sencilla en Debian:

Servidor

Instalación:

svrzubione:/# apt-get install nfs-common nfs-kernel-server

Metemos en /etc/exports los directorios que queremos compartir, y separados con espacios los rangos de direcciones o nombres a los que se les está permitido usar, y entre parentesis (pegado a lo anterior) las opciones, en este caso: rw - lectura y escritura, sync - el servidor avisa al cliente de que la petición se ha realizado sólo cuando ha terminado de escribir en disco (mayor seguridad):

svrzubione:/# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).

/export/publico         *.zubitxo(rw,sync)
/home                   *.zubitxo(rw,sync)

Refrescamos los directorios compartidos con el comando:

svrzubione:/# exportfs -rv

Clientes

Instalación:

cliente1:/# apt-get install nfs-common

En el fichero /etc/fstab están los puntos de montaje, vamos a añadir /home por NFS, a mí se me queda así:

cliente1:/# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>               <dump>  <pass>
proc            /proc           proc    defaults                0       0
/dev/hda2       /               ext3    defaults,errors=remount-ro 0    1
#/dev/hda5      /home           ext3    defaults                0       2
svrzubione:/home /home          nfs     defaults                0       2
...

He añadido svrzubione:/home, y como ves he comentado /dev/hda5, porque en mi caso tenía el /home en una partición diferente. Eso no me pasaba en otros equipos, depende de cómo esté configurado.

Antes de aplicar los cambios y montar las particiones, un comentario: cuando yo puse esto en casa, partía de haber tenido durante bastante tiempo homes diferentes en cada ordenador, por lo tanto tenía documentos repartidos por ahí. A medida que he ido configurando cada cliente he ido copiando los documentos locales al servidor. Si estáis en la misma situación, yo lo hice así:

Creamos un directorio temporal y montamos ahí el home por NFS:

cliente1:/# mkdir home.red
cliente1:/# mount svrzubione:/home /home.red

Ahora podemos mover de /home (documentos locales) a /home.red (al servidor). Habrá que mover los homes de todos los usuarios, yo he salido de la sesión gráfica y lo he hecho desde la línea de comandos, porque KDE, GNOME y otros programas guardan información en nuestro directorio personal.

cliente1:/# mv /home/* /home.red

Antes de seguir, es mejor asegurarse de que se a movido todo, incluso los ficheros ocultos. Vemos con ls -a que no hay nada:

cliente1:/# ls -a home
.  ..

Cuando /home esté vacío, desmontamos /home.red y /home, y borramos el directorio home.red:

cliente1:/# umount home.red home
cliente1:/# rmdir home.red

Y montamos todos los sistemas de ficheros según /etc/fstab:

cliente1:/# mount -a

Con un df debería aparecer /home del servidor:

cliente1:/# df
S.ficheros         Bloques de 1K   Usado    Dispon Uso% Montado en
/dev/hda2             14610964  11013972   2854792  80% /
tmpfs                   518256         4    518252   1% /dev/shm
/dev/hda1             30338328  10697016  19641312  36% /mnt/win
/dev/hdb2              2196560     40308   2156252   2% /mnt/libre
tmpfs                    10240      2848      7392  28% /dev
svrzubione:/home      38464344  11824640  24685800  33% /home

Cuando hagamos esto en varios clientes, podremos comprobar cómo todos los documentos, configuración del escritorio, papel tapiz, configuración de programas, correo... se marcha con nosotros de un ordenador a otro.

Última modificación de esta página: 26 de noviembre de 2005
La Web y sus contenidos, mientras no se mencione lo contrario, han sido creados por Aitor Oliveira Fernandez. Este trabajo está licenciado bajo Licencia Creative Commons.

Licencia Creative Commons Reconocimiento 3.0 ¡XHTML 1.0 Válido! ¡CSS Válido! Icono de conformidad con el Nivel Doble-A, de las Directrices de Accesibilidad para el Contenido Web 1.0 del W3C-WAI Debian

Buscador

Google


Tabla de contenidos

Página principal:

Artículos: Exigimos justicia | Hazlo tú mismo | Navegadores | Software Libre | Webs accesibles para todos

Entretenimiento: Juegos

Servicios: Apoyos | Descargar | JWChat | Sitios relacionados | WebMail

Web: Contactar | Datos de la Web | Mapa