Aunque Samba se ha convertido en una forma muy popular de compartir recursos en red para equipos Linux, también disponemos de la opción de utilizar NFS (Network File System), un protocolo desarrollado por Sun Systems para los sistemas Unix.
Como equipo servidor, utilizaremos un Ubuntu 12.04 LTS Server sin entorno gráfico y como cliente un Ubuntu 10.04 Desktop, aunque los pasos son fácilmente exportables a cualquier otra distribución de Linux.
En primer lugar instalaremos en el servidor los siguientes paquetes: portmap, nfs-common y nfs-kernel-server. Para ello ejecutaremos el siguiente comando, recordar hacerlo con privilegios de superusuario o directamente como root, en nuestro caso todos los pasos en el servidor los haremos como root.
# apt-get install portmap nfs-common nfs-kernel-server
Una vez realizada la instalación, comprobamos que tenemos las conexiones establecidas, mediante el comando rcpinfo.
A continuación crearemos la carpeta que compartiremos en red, en este caso, crearemos una carpeta que llamaremos compartida y le daremos permisos totales a todos los usuarios.
Para compartir este recurso en red, debemos ir al archivo /etc/exports y allí publicar la ruta, indicando los permisos correspondientes.
Si observamos la imagen anterior, vemos que en primer lugar se indica la ruta de la carpeta a compartir. A continuación, el * indica que aceptaremos conexiones de cualquier IP. Si queremos restringir la conexión a una red en concreto (o a un sólo equipo), substituiremos el asterisco por la IP del equipo o subred ( por ejemplo, 192.168.2.0/28, permitiría únicamente conexiones para equipos con IP,s comprendidas entre 192.168.2.1 y 192.168.2.14).
A continuación se indican los permisos con los que se comparte la carpeta, en este caso rw indica que se permite la lectura y escritura. Si se quisiera permitir únicamente la lectura, escribiríamos ro (read only).
El último componente no_root_squash, regula el comportamiento de la conexión del usuario root. Si no ponemos o nada, o indicamos explícitamente root_squash, cuando un usuario root se conecte al recurso, se mapeará al usuario nobody. Si por el contrario, utilizamos no_root_squash, permitimos que el usuario root de los clientes acabe como root en el sistema de ficheros. Evidentemente, esta opción únicamente la deberemos aplicar en un entorno donde el root de los clientes esté perfectamente controlado, caso contrario supondría un riesgo de seguridad.
Para finalizar la configuración del servidor, editaremos el archivo /etc/hosts.allow para permitir las conexiones a los servicios de portmap y nfs.
Para finalizar reiniciaremos el servicio para aplicar los cambios:
# /etc/init.d/nfs-kernel-server restart
Pasamos a configurar el cliente. En primer lugar, debemos instalar si no lo están portmap i nfs-common (habitualmente, suelen venir instalados por defecto en la mayoría de distribuciones).
Comprobamos que efectivamente tenemos conexión con el servidor NFS mediante la orden showmount, que además nos indicará qué recursos comparte dicho servidor.
Para mapear el recurso compartido, ejecutaremos el siguiente comando, siempre con privilegios de superusuario, en este caso compartimos la carpeta en el escritorio con el nombre remot.
Obviamente, resulta incómodo tener que mapear el recurso cada vez que iniciemos sesión. Por eso, a continuación montaremos el recurso de forma automática. De esta manera, cuando iniciemos sesión en el cliente ya tendremos el recurso disponible, sin necesidad de mapearlo cada vez. Para ello, editamos el archivo /etc/fstab:
Si reiniciamos ahora el cliente, comprobamos como ahora nos aparece el recurso compartido en el escritorio:
En posteriores artículos, veremos como integrar clientes y servidores Windows con este protocolo NFS.
Hola,
En que me beneficia usar nfs vs usar samba?
Saludos.
En principio NFS ofrece una tasa de transferencia mayor, si bien parece que con el nuevo Samba4, las tornas podrían cambiar.