Como exportar un directorio mediante NFS para un cliente específico en RHEL7

por


Publicado en: junio 6, 2018



En este artículo explicaremos como exportar un directorio a través de la red mediante NFS para un cliente específico, con el fin de que sólo este tenga acceso a los recursos compartidos.

Para esto utilizaremos una configuración básica, además, al final del artículo se discutirá un tema importante sobre cómo implementar más seguridad al utilizar NFS.

Para nuestro laboratorio utilizaremos los siguientes servidores:

  • Servidor NFS: 192.168.2.60 server1
  • Cliente NFS: 192.168.2.70 server2

Configuración para el Servidor NFS (server1)


Procedemos a instalar los paquetes necesarios en el servidor NFS:

[[email protected] ~]# yum install nfs-utils

Seguidamente habilitamos e iniciamos el servicio NFS:

[[email protected] ~]# systemctl enable nfs-server
[[email protected] ~]# systemctl start nfs-server

Debemos configurar el firewall para permitir el tráfico al puerto NFS, recibir solicitudes de montaje “mountd” y mapear direcciones “rpc-bind”, después de esto se debe recargar el firewall para que los cambios se vean reflejados.

[[email protected] ~]# firewall-cmd --permanent --add-service={nfs,mountd,rpc-bind}
success
[[email protected] ~]# firewall-cmd --reload
success

Ahora creamos el directorio que deseamos compartir, en nuestro caso será el directorio /sharenfs.

[[email protected] ~]# mkdir /sharenfs

El archivo de configuración para exportar directorios mediante NFS se encuentra en /etc/exports, procedemos a configurar la exportación del directorio /sharenfs para el cliente con la ip 192.168.122.70 con permisos de lectura y escritura.

[[email protected] ~]# echo "/sharenfs 192.168.2.70(rw,sync,no_root_squash)" >> /etc/exports

Opciones de configuración:

  • rw: Permiso de escritura y lectura a la carpeta compartida.
  • sync: Sincronización de cambios de inmediato.
  • no_root_squash: El root en el servidor cliente tendrá el mismo nivel de acceso a los archivos compartidos como root en el servidor nfs.

Nota: Si queremos compartir el directorio con una serie de clientes, separamos estos con una coma, también se puede utilizar los nombres de los hosts, por ejemplo:

[[email protected] ~]# echo "/sharenfs 192.168.2.70,192.168.2.80(rw)" >> /etc/exports
[[email protected] ~]# echo "/sharenfs server2.example.com(rw)" >> /etc/exports

Después de configurar el archivo exports y luego de cualquier modificación se debe recargar la tabla de exportación con el siguiente comando:

[[email protected] ~]# exportfs -arv
exporting 192.168.2.70:/sharenfs

Configuración para el Cliente NFS (server2)


Procedemos a instalar los paquetes necesarios en el servidor cliente:

[[email protected] ~]# yum install nfs-utils

Ahora verificamos la lista de recursos exportados por el servidor NFS con el comando showmount.

[[email protected] ~]# showmount -e 192.168.2.60
Export list for 192.168.2.60:
/sharenfs 192.168.2.70

Procedemos a crear el punto de montaje donde queremos montar el recurso.

[[email protected] nfs]# mkdir /mnt/nfs

Podemos montar el recurso compartido de manera persistente o temporal las diferencias entre ambos métodos son las siguientes:

Temporal: Si realizamos un reinicio del servidor cliente no se montará automáticamente el recurso.

[[email protected] ~]# mount -t nfs 192.168.2.60:/sharenfs /mnt/nfs

Persistente: Si realizamos un reinicio del servidor cliente se montará automáticamente el recurso, la opción “_netdev” indica que en caso de reinicio se va a montar el recurso después de cargar la configuración de red, esto evita errores en el montaje.

[[email protected]~]# echo "192.168.2.60:/sharenfs /mnt/nfs nfs _netdev 0 0" >> /etc/fstab
[[email protected]~]# mount -a

Nota: Si desea cambiar el método de montaje de temporal a persistente, debe desmontar primeramente el recurso con el siguiente comando “umount /mnt/nfs”.

Verifique que monto el recurso de manera correcta, ejecutando el comando “df -hT”, este también mostrara el espacio disponible del recurso.

[[email protected]~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   xfs       6.2G  3.1G  3.1G  50% /
devtmpfs                devtmpfs  482M     0  482M   0% /dev
tmpfs                   tmpfs     497M  144K  497M   1% /dev/shm
tmpfs                   tmpfs     497M  7.0M  490M   2% /run
tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  172M  843M  17% /boot
tmpfs                   tmpfs     100M   12K  100M   1% /run/user/0
192.168.2.60:/sharenfs nfs4      6.2G  3.2G  3.1G  51% /mnt/nfs

También es importante probar que tenga permisos de escritura sobre él directorio, como se muestra a continuación:

[[email protected] ~]# cd /mnt/nfs/
[[email protected] nfs]# touch holamundo.txt
[[email protected] nfs]# ls
holamundo.txt

Esta implementación de NFS es básica, tenga en cuenta que usted también puede realizar exportaciones de NFS con kerberos, esto le permite implementar autentificaciones mediante claves y cifrado para mayor seguridad, ya que por defecto el contenido enviado mediante NFS se transfiere en texto claro y no seguro.

Referencias

Para más información sobre NFS con Kerberos puede consultar el siguiente enlace:

Para mas información sobre opciones y configuración de NFS consulte este enlace:

Autor del Artículo

Álvaro Campos Castro

Álvaro Campos Castro

System Administrator.

  • Ingeniero en Sistemas de Información. UNA.
  • Red Hat Certified System Administrator (RHCSA®)
  • Red Hat Certified Engineer (RHCE®)