Vamos a ver cómo compartir directorios y archivos con un servidor NFS en Linux.
Un servidor NFS tiene una gran utilidad cuando vamos a compartir archivos y directorios, sobre todo en una red local; es utilizado para sistemas de archivos distribuidos, es decir NFS (Network File System);
En este artículo
- Instalación del Cliente NFS
- Preparar el montaje NFS en el cliente, para cada inicio del sistema
- Comprobar que el servicio rpcbind está activado y funcionando
- Montaje manual en el cliente sin reiniciar el equipo
- Seguridad para el servidor NFS
- Ver los clientes conectados al servidor NFS
- Comprobamos en el cliente NFS los recursos montados (mount / showmount / df)
- Comprobar recursos NFS con rpcinfo
- Desmontar manualmente recursos NFS montados
Instalación del Servidor NFS en Linux
En este caso utilizaremos CentOS, aunque también podríamos utilizar Debian, Ubuntu …
- Instalación de los paquetes necesarios para el Servidor NFS en CentOS:
yum -y install nfs-utils yum install rpcbind |
- Instalación en Debian/Ubuntu/Mint :
apt-get install nfs-kernel-server apt-get install nfs-common |
Iniciar y habilitar el servicio del servidor NFS
- Iniciar el servicio del servidor NFS y habilitarlo para el inicio del sistema (CentOS):
systemctl start rpcbind nfs-server systemctl enable rpcbind nfs-server |
Comprobamos Status del servicio del Servidor NFS
Compartir archivos en NFS Server por medio de /etc/exports
En el archivo /etc/exports del Servidor NFS, configuraremos los recursos compartidos:
nano /etc/exports |
y compartimos el directorio /compartido
(contenido del archivo /etc/exports ):
/compartido 192.168.8.0/24(ro,all_squash) |
El comando exportfs
Con el comando exportfs podremos manejar la tabla de los recursos compartidos/exportados que han sido declarados en el archivo /etc/exports
Tenemos algunas opciones interesantes para el comando exportfs:
- exportfs -v : muestra una lista de recursos compartidos y sus opciones configuradas en el archivo /etc/exports
- exportfs -a : Exporta todos los directorios declarados en el archivo /etc/exports
- exportfs -u : Sirve para des-exportar uno o más recursos.
- exportfs -r : re-exporta los directorios después de modificar el archivo /etc/exports
Página del Manual de Linux de exportfs
Aplicar los cambios realizados en /etc/exports
Cada vez que realicemos cambios en el archivo, hemos de ejecutar
exportfs -a |
en el servidor NFS, para aplicar los cambios
Opciones de permisos para los recursos compartidos NFS, en el archivo /etc/exports
- ro : lectura
- rw : lectura y escritura
- link_relative : convierte los enlaces simbólicos absolutos en enlaces simbólicos relativos.
- link_absolute : Lo contrario, de relativos a absolutos. Esta es la opción predeterminada.
- root_squash : trata las consultas como si vinieran del usuario nobody (lo más seguro). O sea, que evitamos que los usuarios conectados actúen como root.
- no_root_sqash : Desactiva lo anterior, y por tanto implica algo de riesgo porque habilita los privilegios de root.
- all_squash : Realiza la acción root_squash para todos los usuarios, incluido los usuarios root.
- no_all_squash : Habilita la autorización del usuario.
Permisos de los directorios compartidos por NFS: Usuario nfsnobody
Cambiamos los permisos de los directorios compartidos por NFS, y haremos propietario al usuario nfsnobody
chmod -R 755 /compartido chown nfsnobody:nfsnobody /compartido |
Podemos ver en el archivo /etc/passwd que tras instalar el servidor NFS, ya existe el usuario nfsnobody
A CONTINUACIÓN VEREMOS:
- Instalación del Cliente NFS
- Preparar el montaje NFS en el cliente, para cada inicio del sistema
- Comprobar que el servicio rpcbind está activado y funcionando
- Montaje manual en el cliente sin reiniciar el equipo
Instalación del Cliente NFS
- Instalamos el cliente NFS para utilizar el servidor NFS (en CenTOS) :
yum install nfs-utils
yum install rpcbind |
- En Debian:
sudo apt-get install nfs-common |
Preparar el montaje de los recursos NFS en el cliente, para cada inicio del sistema, con el archivo /etc/fstab
Hemos de añadir en el archivo /etc/fstab lo que queremos montar. Así que añadimos los recursos compartidos desde el servidor NFS:
Comprobar que el servicio rpcbind está activado y funcionando
Es necesario que el servicio rpcbind se encuentre en ejecución. rpcbind coordina los servicios RPC y los puertos.
Reiniciamos el cliente para comprobar que en el arranque del sistema, monta los recursos NFS del servidor remoto, especificados en su /etc/fstab
Montaje manual de recursos en el cliente NFS sin reiniciar el equipo
mount 192.168.8.114:/compartido2 /compartido2 |
Montamos en el cliente:
mount -t nfs 192.168.8.114:/compartido /compartido-centos/ |
o también , para montar con permisos , si es que lo permite el servidor NFS:
mount -o rw 192.168.8.114:/compartido2 /compartido2 |
A CONTINUACIÓN:
- Seguridad para el servidor NFS
- Ver los clientes conectados al servidor NFS
- Comprobamos en el cliente NFS los recursos montados
- Comprobar recursos NFS con rpcinfo
- Desmontar manualmente recursos NFS montados
Seguridad para el servidor NFS
Si quisieramos definir qué hosts pueden y cuales no pueden utilizar los recursos compartidos por NFS, utilizaríamos los arhivos
- hosts.deny
- hosts.allow
Ver los clientes conectados al servidor NFS
Podemos ver los clientes conectados el al servidor NFS con:
netstat | grep :nfs |
También podemos comprobar ls clientes NFS conectados con en comando :
ss -a|grep nfs |
Comprobamos en el cliente NFS los recursos montados (mount / showmount / df)
- Lo podemos hacer con
mount | grep "nombre del recurso"
- Comprobamos desde el cliente NFS los recursos montados/exportados del servidor NFS, con el comando showmount -e:
- Podemos comprobar los recursos montados en el cliente NFS con
df -h |
Comprobar recursos NFS con rpcinfo
rpcinfo nos mostrará info acerca de los procesos RPC abiertos y el puerto utilizado.
Por ejemplo con “rpcinfo -p” podemos ver los servicios relacionados con NFS, y sus puertos:
rpcinfo -p |
Desmontar recursos NFS montados
En el cliente ejecutamos:
umount nombre_recurso |
en este caso sería
umount /compartido2 |
Y así terminamos con la instalación y configuración de un servidor NFS y de un cliente NFS. El servidor NFS será de gran utilidad para exportar archivos y directorios con las restricciones y permisos adecuados.