Este blog tiene por objetivo el levantamiento de dos servidores: FTP y NFS

Servidores en Linux

INSTALACION Y CONFIGURACION DEL SERVIDOR NFS

Instalación de NFS

$ sudo aptitude install portmap nfs-kernel-server nfs-common

Para la configuración de un servidor de NFS se necesitan editar tres ficheros: /etc/exports, /etc/hosts.deny y /etc/hosts.allow.

$ sudo gedit /etc/exports

Contiene una linea por directorio a compartir. La estructura de dicha linea es:

directorio equipo1(opcion11,opcion12) equipo2(opcion21,opcion22)

donde:

directorio: Es el directorio a compartir.

equipox: Clientes que tendrán acceso al directorio compartido. Estos equipos se podrán indicar por su IP o dirección DNS(por ejemplo: mi_equipo.ral.com o 192.168.0.69). Se recomienda usar la IP.

optionxx: Son las opciones que nos permitirán tener acceso a esos directorios con determinados privilegios.

ro | rw :Con la opción ro el directorio será compartido de solo lectura. Esta opción está por defecto.y con la opción rw se permitirá tanto acceso de lectura como de escritura.

sync | async :sync es la opción recomendada, ya que se ha de respetar el protocolo NFS, es decir, no se responden a las peticiones antes de que los cambios realizados sean escritos al disco. Con la opción async se permite mejorar el rendimiento y agilizar el funcionamiento global, pero supone un riesgo de corrupción de archivos o del sistemas de ficheros en casos de caídas del servidor y/o errores de éste.

root_squash | no_root_squash | all_squash indica que un cliente identificado como roott endrá acceso al directorio con privilegios de un usuario anónimo. Si seleccionamos la opción no_root_squashevitaremos esto, y si indicamos all_squash, entonces aplicaremos esto último a todos los usuarios, no sólo root.
Un ejempo de fichero /etc/exports es el siguiente:


Con este fichero indicaremos que queremos compartir los directorios /home/usuario/datos y /tmp a los hosts de la red 192.168.1.2; /home/vivi/carpeta se podrá acceder como solo lectura(rw) y se comunica al usuario los cambios realizados sobre los archivos cuando realmente se han ejecutado (sync) y todoslos usuarios tienen acceso a este directorio con privilegios de usuario anónimo.

$ sudo gedit /etc/hosts.deny


En este fichero pondremos todas las restricciones posibles para hacer mas seguro el sistema. Para ello denegaremos el acceso a portmap, ya que si se deniega portmap, aunque permitas nfs, no se podrá compartir porque éste depende de portmap. Por lo que solo se tendrá acceso a portmap por aquellos equipos que estén definidos en el fichero /etc/hosts.allow. El fichero /etc/hosts.deny quedará:



$ sudo /etc/hosts.allow

En este fichero debe indicar a quienes permitimos el acceso al servicio de nfs y portmap. Se pueden indicar hosts individuales o una red.

Una vez configurados los ficheros pasamos a arrancar el servicio portmap y rpc.nsfd:

$ sudo /etc/init.d/nfs-common restart
$ sudo /etc/init.d/nfs-kernel-server restart
$ sudo /etc/init.d/portmap restart


NOTA: Tanto el fichero /etc/hosts.deny como el /etc/hosts.allow no es necesario que tengan contenido alguna, pero se recomienda que sean configurados para la seguridad de los datos.

Configuración en el cliente

En el cliente montaremos el directorio exportado por el servidor, para ello ejecutaremos el siguiente comando:

$ mount -t nfs mi_equipo:/tmp /home/cliente/temp

Con el comando anterior montamos el directorio /tmp exportado por el host mi_equipo en el directorio /home/usuario1/temp que previamente habremos creado. A este comando se le puede pasar una serie de opciones, la estructura genérica con las opciones sería:

mount -t nfs -o opcion[:usuario] dir_remoto dir_local

Las opciones son ro, rw, root_squash, no_root_squash, entre otras.
Si queremos que el directorio remoto se monte al arranque del cliente deberemos añadir la siguiente linea al fichero /etc/fstab:

mi_equipo:/tmp /home/cliente/temp nfs defaults,rw 0 0

Esa linea indica que se monte en el directorio /home/cliente/temp el directorio remoto /tmp (el directorio que exporta el servidor que se ha puesto como ejemplo).

Consejos

Es conveniente que los datos de los usuarios se almacenen de forma centralizada en el servidor en lugar de hacerlo en los PCs de los usuarios. Ésto permite al usuario acceder a sus archivos aunque utilice un PC diferente al habitual, además, será más sencillo realizar copias de seguridad y si el PC del usuario se estropea, no perderá información. Lo ideal es que los PCs de usuario no almacenen la carpeta home de cada usuario sino que dicha carpeta esté compartida en el servidor. El servidor así mismo deberá centralizar las cuentas de usuario mediante un servidor LDAP y los PCs clientes deberán estar configurados para montar el home de forma remota y autentificar a los usuarios a través del servidor LDAP.

Para su uso práctico en el centro educativo, además de exportar la carpeta /home para que cada usuario tenga acceso a su espacio de trabajo, se pueden crear en el servidor tres carpetas de uso común cuyos permisos dependan del tipo de usuario. En una de ellas deberán tener permisos de lectura y escritura todos los usuarios: alumnos y profesores. A dicha carpeta se la puede llamar comun-alumnos y serviría para que los alumnos intercambien archivos entre ellos y con los profesores. En otra carpeta, deberían tener permisos de lectura y escritura solamente los profesores. Se podría llamar comun-profesores y serviría para que los profesores se intercambien archivos confidenciales entre sí. Finalmente, en otra carpeta deberían tener solo permisos de lectura los profesores y los alumnos. Se podría llamar documentos-centro y serviría para que el administrador mantenga un repositorio de documentos o aplicaciones de propósito general para el centro, aunque esto último quizás sea más adecuado hacerlo mediante un servidor web.





No hay comentarios: