[TUTORIAL] Montaje manual de archivos remotos vía NFS y SSHFS

Spanish Forum

Moderator: tomeu

Post Reply
User avatar
Wibol
Level 5
Level 5
Posts: 584
Joined: Fri Nov 27, 2015 7:00 am
Location: España

[TUTORIAL] Montaje manual de archivos remotos vía NFS y SSHFS

Post by Wibol »

Montar sobre nuestro equipo local el contenido de una carpeta ubicada en una máquina remota, nos facilita enormemente el acceso y manipulación del mismo de igual modo que lo hacemos con los que residen en nuesto disco duro.

Vamos a compartir la carpeta /home/jose/Descargas de los equipos remotos "Servidor1" con IP fija privada 192.168.1.2 y "Servidor2" con IP fija pública 123.123.123.123 a las que deseamos acceder desde "Cliente1" conectado a nuestra red local, montando dichos recursos en los directorios locales /mnt/Servidor1/Multimedia/ y /mnt/Servidor2/Multimedia/.

Por motivos de seguridad y para evitar problemas de permisos, es preferible no compartir las carpetas de los servidores directamente, sino hacer un clonado de las mismas en el directorio del sistema /srv que está destinado a ello. No se trata de duplicar los archivos en disco, sino el sistema de archivos, así que esto no supone una duplicación del tamaño en disco. Los cambios realizados en cualquiera de las carpetas, se replicarán instantaneamente en la otra. Es algo similar a un enlace simbólico. Por este motivo, la carpeta a compartir será /srv/Descargas.

Para ello, en los equipos servidor creamos sudo mkdir -p /srv/Descargas, editamos sudo nano /etc/fstab para añadir la línea /home/jose/Descargas /srv/Descargas none bind 0 0 y lo hacemos efectivo con sudo mount -a. Por último comprobamos que ahora este directorio es una réplica del original usando sudo ls /srv/Descargas/.
* Los valores en color rojo deben sustituirse por los adecuados a cada caso.

Protocolo NFS

Network File System tiene un rendimiento excelente aunque carece de encriptado en la conexión, lo que lo convierte en una opción ideal para el acceso remoto a servidores de nuestra red local, donde la seguridad ya está garantizada por otros medios.

En equipos servidor:

Instalamos desde el repositorio el servicio apt install nfs-kernel-server y lo habilitamos con sudo systemctl enable --now nfs-kernel-server. A continuación especificamos qué carpeta queremos hacer accesible editando el archivo sudo nano /etc/exports y añadiendo la linea /srv/Descargas/ 192.168.1.0/24(rw,sync,no_subtree_check). Agregamos una por cada carpeta que queremos hacer accesible.

Code: Select all

# /etc/exports: the access control list for filesystems which may be exported
#		to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/srv/Descargas/ 192.168.1.0/24(rw,sync,no_subtree_check)
De esta forma compartimos el directorio /srv/Descargas/ de "Servidor1" en modo lectura-escritura con todos los clientes de nuestra red local, y reiniciamos el servicio para que tome los nuevos valores con sudo service nfs-kernel-server restart para Mint 17.X e inferioes o sudo systemctl restart nfs-kernel-server para Mint 18.X y superiores. Tras configurar el firewall con sudo ufw allow nfs, estará disponible.
En cuanto a los permisos, siempre prevalecen los más restrictivos. Es decir, si compartimos un directorio con la opción "rw" pero éste sólo tiene permiso de lectura en su sistema de archivos local, el recurso será de sólo lectura para el resto de la red.

En equipos cliente:

Para que los clientes sean capaces de acceder a dicho directorio es necesaria la instalación desde el repositorio del paquete apt install nfs-common y crear la carpeta donde haremos el montaje con sudo mkdir -p /mnt/Servidor1/Multimedia/.

Ahora ya podemos establecer la conexión:

Code: Select all

sudo mount 192.168.1.2:/srv/Descargas/ /mnt/Servidor1/Multimedia/
Podemos simplificar el uso de comandos en la terminal con alias.

Podemos comprobar que todo fue bien haciendo ls /mnt/Servidor1/Multimedia/ o pegando dicha dirección en el explorador de archivos, y desmontarlo una vez hemos acabado con sudo umount /mnt/Servidor1/Multimedia/.

Existe la posibilidad de realizar el Montaje bajo demanda de archivos remotos de manera que todo este proceso se lleve a cabo automáticamente cuando lo necesitemos y se desmonte al dejar de usarlo, optimizando así el uso de recursos.

Protocolo SSHFS

Secure Shell Filesystem establece conexiones encriptadas aunque ofrece peor rendimiento que el anterior. Por este motivo está especialmente recomendado para el acceso a máquinas que se encuentran fuera de nuestra red local, donde nuestros datos estarían más expuestos.

En equipos servidor:

Es necesaria la instalación del paquete apt install openssh-server, comprobar que está abierto el puerto 22 con sudo ufw allow ssh y que la máquina admite conexiones SSH usando ssh juan@123.123.123.123 desde un cliente.

En equipos cliente:

El montaje es realizado en el cliente por el usuario root y por lo tanto, cuando intenta autenticarse frente al servidor mediante OpenSSH, busca las claves en el home de ese usuario. Podemos generar un nuevo par como root y copiarla a la máquina remota o simplemente copiar sudo cp ~/.ssh/id_rsa* /root/.ssh/ la de nuestro usuario actual a /root/, el cual ya figura en la lista remota de equipos conocidos.

Instalamos el paquete apt install sshfs y creamos la carpeta donde haremos el montaje con sudo mkdir -p /mnt/Servidor2/Multimedia/ y establecemos la conexión:

Code: Select all

sudo sshfs -o allow_other jose@123.123.123.123:/srv/Descargas/ /mnt/Servidor2/Multimedia/
Podemos simplificar el uso de comandos en la terminal con alias.

Podemos comprobar que todo fue bien haciendo ls /mnt/Servidor2/Multimedia/ o pegando dicha dirección en el explorador de archivos, y desmontarlo una vez hemos acabado con sudo fusermount -u /mnt/Servidor2/Multimedia/.

Existe la posibilidad de realizar el Montaje bajo demanda de archivos remotos de manera que todo este proceso se lleve a cabo automáticamente cuando lo necesitemos y se desmonte al dejar de usarlo, optimizando así el uso de recursos.

Antes de realizar una consulta, no olvides:
Post Reply

Return to “Español (Spanish)”