Compartiendo carpetas en red con NFS

consola-linux-shellEn la nuestra web hemos tratado de manera extensa la compartición de archivos y carpetas con SAMBA, que nos permite compartir recursos entre máquinas Linux y Windows. En el artículo de hoy hablaremos de NFS, el protocolo de compartición en red entre sistemas GNU/Linux.

NFS es un acrónimo de Network File System (Sistemas de archivos en red) Se trata de un protocolo a nivel de aplicación, siguiendo el modelo OSI.  Se utiliza para compartir recursos en red, permitiendo que el sistema operativo cliente los vea como propios. Va incluido en todos los sistemas UNIX y la mayoría de distribuciones GNU/Linux.

NFS utiliza las listas de control de acceso (ACL) y DNS para su seguridad. Tiene que estar muy bien configurado para no tener fugas de información.

Instalación en máquina servidor

Supongamos que tenemos un servidor, donde queremos que se almacene una serie de información que tiene que estar disponible para los usuarios. Lo primero de todo es instalar los paquetes necesarios para tal.

En el servidor debemos de instalar dos paquetes:

  • nfs-kernel-server, habilita el soporte NFS para nuestro kernel
  • nfs-common, conjunto de herramientas cliente y servidor para el funcionamiento de NFS.

Procedemos a la instalación, en nuestro caso en un servidor Debian 7 Wheezy:

1
2
apt-get -y update
apt-get install nfs-kernel-server nfs-common

Una vez instalado, para poder compartir tenemos que editar el fichero /etc/exports, que es donde indicaremos los recursos compartidos, la configuración de la red y los permisos.

Cada recursos ocupa una línea, en la primera parte indicamos la ubicación del recurso, en la segunda los datos de red (IP y máscara) de los clients (hosts) , por último los permisos otorgados al recurso.

En la carpeta /mnt/Contabilidad, tenemos la subcarpeta Albaranes, que vamos compartir, en sólo lectura, para que los usuarios puedan verlos pero no modificarlos ni crear nuevos.

nfs-captura-1Añadiremos la siguiente línea al archivo /etc/exports:

/mnt/Contabilidad/Albaranes 192.168.1.0/24(ro)

Analizemos la línea, en la primera parte hemos indicado la ubicación, en la segunda la red de equipos permitida, con una máscara de 24 bits, que es lo mismo que escribir 255.255.255.0, por último (ro) que quiere decir que sólo lectura. Si fuera de lectura y escritura sería (rw)

nfs-captura-2Respecto a la parte de permisos existen unas cuantas opciones:

  • rw, exporta el directorio en modo lectura y escritura al host cliente.
  • ro, exporta el directorio en sólo modo lectura al host client.
  • no_root_squash, no mapea root al usuario anónimo.
  • all_squash, mapea todos los usuarios al usuario anónimo.
  • entre otros muchos más.

A continuación reiniciamos el servicio:

1
service nfs-kernel-server start

Para comprobar que efectivamente hemos exportado el directorio para compartir:

1
showmount --exports localhost

En el lado del cliente

Ya hemos visto con configurar la compartición vía NFS en el servidor. Ahora vamos a configurar el cliente. Sólo nos hará falta instalar el paquete nfs-common.

1
apt-get -y install nfs-common

Comprobaremos que efectivamente el directorio está compartido en el servidor, y lo podemos ver, con el comando showmounts.

1
showmount --exports 192.168.1.68

Si nos ha devuelto una respuesta correcta sólo nos queda montar la unidad modificando el archivo /etc/fstab , si en cambio nos ha dado algún error, debemos confirmas que nuestra IP está dentro de la red admitida o que el puerto en el FIREWALL para NFS, que es el 2049 esté abierto.

Añadiremos los datos a la línea del fichero:

1
192.168.1.68:/mnt/Contabilidad/Albaranes /mnt/Albaranes nfs ro 0 0

Recordamos que el archivo donde se montará la carpeta ha de existir, lo podemos crear con:

1
mkdir /mnt/Albaranes

Al escribir el comando mount ya tenemos que tener la unidad montada en el directorio /mnt/Albaranes.

Espero que el artículo haya sido de vuestro interés. Evidentemente NFS es muchísimo más extenso de lo que he comentado en el artículo, os animo a investigar.

See you soon

5 Respuestas

  1. Jobert dice:

    Hola, me parece un muy buen artículo, pero lo seria ideal que ampliarán un poco las opciones existentes?, lo digo xq existe aquella que te permite estables un velocidad de transferencia. Con sus artículos he solventado muchos detalles q me han ocurrido y se q pueden ayudar a otros, x eso mi pregunta

  1. 15 febrero, 2017

    […] su día ya hablamos de cómo trabajar con recursos NFS, por lo que debemos tener un servidor con un export configurada. Aunque en la mayoría de los casos […]

  2. 11 julio, 2017

    […] mi web personal ya os he hablado del sistema de ficheros en red NFS. En el artículo de hoy veremos cómo optimizar su rendimiento. Es el resultado de mi […]

  3. 18 febrero, 2020

    […] Además vamos a rizar el rizo, como se suele decir, y utilizaremos un cuarto host como nodo de almacenaje, donde compartiremos un recurso NFS. Para ello utilizaremos un pequeño nodo también con Debian 10, pero que tenga suficiente disco. En esta entrada no daré muchos detalles al respecto pero, para montar el nodo NFS, os podéis servir de esta entrada que escribí en su día:  Compartiendo carpetas en red con NFS. […]

Deja un comentario

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

A %d blogueros les gusta esto: