Compartiendo carpetas en red con NFS
En 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.
Añ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)
Respecto 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