Compartiendo archivos con NFS


El sistema NFS (Network File Sistem) fue desarrollado para permitir montar
una partición perteneciente a una máquina remota como si fuesa una partición local. Nos proporciona, por tanto, un método rápido y eficaz de compartir archivos y espacio de disco entre distintos ordenadores de una red que soporten este sistema.

Introducción al NFS
Compartiendo disco en una red local

El sistema NFS (Network File Sistem) fue desarrollado para permitir montar
una partición perteneciente a una máquina remota como si fuesa una partición
local. Nos proporciona, por tanto, un método rápido y eficaz de compartir
archivos y espacio de disco entre distintos ordenadores de una red que soporte
este sistema.

Este artículo relata mi experiencia personal al poner en marcha el NFS en
mi mini-red personal. Se puede encontrar más información de cómo configurar
NFS en el excelente
nfs-howto

, que es el que yo he utilizado en la configuración de mi sistema y la base
de este artículo.

¿Qué necesitamos?
Necesitaremos tener instalado portmap y el paquete nfs (nfs-utils) que se
puede encontrar en la mayoría de las distribuciones en el ordenador que vaya
a hacer de servidor de disco.

El portmap nos permitirá realizar conexiones RPC al servidor y es el encargado
de permitir o no el acceso al servidor a los equipos que especifiquemos.

Para saber si tenemos el portmap instalado bastará con un simple

>> ps aux | grep portmap

Deberíamos tener una salida parecida a

rpc 1261 0.0 0.1 1560 568 ? S 15:48
0:00 portmap
bulconta 2544 0.0 0.1 1916 772 pts/0 S 16:04 0:00 grep portmap

Para saber si NFS está en marcha haremos una consulta al portmap para que
nos indique qué servicios tiene en marcha

>> rpcinfo -p

Que en mi servidor proporciona la siguiente salida

programa vers proto puerto
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 1024 status
100024 1 tcp 1024 status
100011 1 udp 944 rquotad
100011 2 udp 944 rquotad
100011 1 tcp 947 rquotad
100011 2 tcp 947 rquotad
100005 1 udp 1025 mountd
100005 1 tcp 1056 mountd
100005 2 udp 1025 mountd
100005 2 tcp 1056 mountd
100005 3 udp 1025 mountd
100005 3 tcp 1056 mountd
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100021 1 udp 1026 nlockmgr
100021 3 udp 1026 nlockmgr
100021 4 udp 1026 nlockmgr
Debemos verificar que portmap proporciona el servicio nfs. De no ser así
es normalmente porque no hemos instalado el paquete nfs-utils.

Compartiendo el disco

Una vez tenemos los servicios en marcha únicamente nos falta determinar qué
queremos compartir. En mi caso me interesaba poder acceder al directorio
home y al directorio /var/db.

Debemos editar el archivo /etc/exports e introducir
/usr/local 192.168.0.0/255.255.255.0(rw)
/var/db 192.168.0.0./255.255.255.0(rw)
Con esto estamos indicando que vamos a exportar /usr/local y /var/db
permitiendo acceso a nuestro rango de direcciones locales en modo de lectura/escritura.

Aunque en mi caso este tipo de exportación es suficiente, podríamos haber
indicado únicamente un equipo o varios de ellos. Por ejemplo, si hubiese
querido dar acceso a /tmp únicamente al equipo 192.168.0.10 en modo sólo
lectura, hubiese añadido

/tmp 192.168.0.10(ro)
Un poco de seguridad
La prudencia nos aconseja editar los ficheros /etc/hosts.allow y
/etc/hosts.deny para acabar de especificar qué ordenadores de la red
pueden usar los servicios del servidor. La documentación del NFS recomienda
las siguientes entradas

/etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

/etc/hosts.allow
portmap:192.168.0.0/255.255.255.0
lockd:192.168.0.0/255.255.255.0
mountd:192.168.0.0/255.255.255.0
rquotad:192.168.0.0/255.255.255.0
statd:192.168.0.0/255.255.255.0

Para una red privada esto puede ser suficiente. De todos modos podríamos
hacer una configuración mucho más fina especificando para cada servicio las
direcciones IP que tendrán acceso a él.

Iniciar la compartición de archivos
Si hemos cambiado el fichero /etc/exports después de iniciar el servicio
NFS deberemos indicar al sistema que releea el fichero y active los cambios.
Esto lo podemos hacer reiniciando el demonio nfsd o bien mediante

>> exportfs -ra

Configuración de un equipo cliente NFS.

Ahora que ya tenemos el servidor funcionando vamos a acceder al espacio compartido
desde un ordenador cliente.

Como root ejecutamos

>> mount <servidor>:<directorio compartido> <punto de
montaje>

En mi sistema el servidor es la máquina 192.168.0.2 y el punto de montaje
lo he dispuesto en /mnt/nfs que he creado en la máquina cliente.

Así y para nuestro ejemplo bastará ejecutar como root

>> mount 192.168.0.2:/home /mnt/nfs

Un simple ls /mnt/nfs nos tendría que permitir ver que ya tenemos acceso
al disco del servidor.

Si queremos que el sistema de ficheros NFS sea montado al arrancar deberemos
añadir una entrada en el fichero /etc/fstab. En nuestro ejemplo añadiríamos

192.168.0.2:/home /mnt/nfs nfs rw,hard,intr 0 0

Según las opciones recomendadas en la documentación.

Y para finalizar.

No es tan fiero el león como lo pintan. Tener en marcha la compartición de
archivos en una red local Linux con un mínimo de seguridad es bastante sencillo.
Quedan fuera de este artículo temas como la optimización, distintas opciones
de acceso a los directorios y demás “delicatesen”. Para más información sobre
estos temas os remito a la documentación
original

.

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1255 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.