Lunes, Octubre 03, 2022
A- A A+

MONTAR CARPETAS REMOTAS SEGURAS CON SSHFS EN UBUNTU / LINUX

sshfs nos permite montar una carpeta con fuse utilizando la conexion segura a traves de ssh, tanto a carpetas de un equipo servidor en nuestra red local como a un equipo servidor al que tuvieramos que acceder a traves de internet.

Para ello debemos de disponer que el equipo o servidor que comparte la carpeta tenga el servicio ssh funcionando, y utilizar fuse desde el pc cliente para montar localmente en este ultimo el acceso como una carpeta remota.

Paso 1. En el Servidor.

Instalamos el servidor ssh. (si ya lo teneis instalado podeis ir directamente al Paso 2)

Si queremos hacerlo de forma guiada usaremos Tasksel e instalamos openssh de los paquetes que trae. Si vuestra distro Linux no tiene Tasksel o os gusta saber como se hace manualmente seguiremos los siguientes pasos ya que necesitamos tener instalado openssh-server:

sudo apt-get install openssh-server
La configuración del server ssh se encuentra en el archivo /etc/ssh/sshd_config. Antes de modificarlo es recomendable crear un respaldo:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
Tambien podemos proteger nuestro respaldo contra escritura:
sudo chmod a-w /etc/ssh/sshd_config.original
Ademas tambien podemos cambiar el puerto que por defecto ssh usa el 22. y para ello buscamos la linea que dice:
Port 22
y ponemos el puerto deseado, por ejemplo 3434. Esto es una forma de esconder el acceso y mejorar un poquito mas la seguridad de nuestro server. Si sois de los fanaticos de la seguridad siempre se pueden usar las ssh keys, llaves ssh dicho de forma coloquial. Si quereis hacerlo, aquí encontrareis como implementar las llaves ssh.
Una vez que hemos realizado todos los cambios en /etc/ssh/sshd_config guardamos y cerramos el archivo y reiniciamos el servidor ssh del siguiente modo:
sudo /etc/init.d/ssh restart
Para verificar que todo ha salido bien nos conectamos remotamente desde un terminal y escribimos lo siguiente:
ssh nombre_usuario@direccion_equipo_remoto
por ejemplo, si el usuario es Ariadna, la dirección ip del equipo remoto es 192.168.1.25 y el puerto de transferencia ha sido cambiado a 3434, el comando sería:
ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -p3434
En el caso de que no hayais modificado el puerto 22 podeis omitir -p3434.

Paso 2. En el Equipo Cliente.

Nos Conectamos por sshfs

Ubuntu trae fuse instalado por defecto, por lo que no es necesario instalarlo. Lo que sí debemos hacer es que nuestro usuario forme parte del grupo fuse. Lo agregamos escribiendo lo siguiente en la terminal:
sudo gpasswd -a $USER fuse
$USER  se pone tal cual, de este modo será interpretado por el sistema como el nombre de usuario con el que estamos actualmente trabajando.

El siguiente paso es instalar sshfs:

sudo apt-get install sshfs

Y ya esta, ahora ya solo nos falta montar la carpeta remota.

Si lo que queremos es acceder a la carpeta llamada Musica del Servidor vamos a crear una carpeta llamada  MI_musica en el pc cliente  y luego vinculamos ambas del siguiente modo:

sshfs nombre_usuario@direccion_equipo_remoto:Musica MI_musica
Si utilizamos los datos anteriormente propuestos quedaría así:
ssshfs Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:Musica  MI_musica -p3434
OJO, Recordad que lo del puerto lo podemos omitir si no lo hemos modificado.
Pues ala, ya esta, ya tenemos acceso a la Carpeta remota Musica del Servidor desde la carpeta local MI_musica del pc Cliente de forma segura con ssh.

Que por lo que fuera era una conexion temporal y la deseas desconectar, pues tan sencillo como el siguiente comando:
fusermount -u MI_musica
Si por el contrario nos interesa hacer la conexión permanente, entonces desde consola editamos el fichero fstab con nuestro editor habitual (yo uso nano)
sudo nano /etc/fstab

y le añadimos la siguiente linea

 sshfs nombre_usuario@direccion_equipo_remoto:Musica MI_musica  fuse comment=sshfs,noauto,users,exec,reconnect 0 0

ahora guardamos y salimos de fstab y ya tenemos implementado el montaje cada vez que arranque nuestro equipo. Logicamente este segundo metodo, con montaje permanente, nos pediria la password cada vez que reiniciemos el sistema.

Si no queremos que nos pida la pasword entonces tenemos que tener configurado un "passorword-less login" o conectarnos usando un certificado rsa de la siguiente manera.

$ ssh-keygen -t rsa

Con esto tenemos ya generado nuestro par de claves.

2.2.- Ahora le pasamos nuestra clave pública al servidor al que queremos conectarnos automáticamente

$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@miservidor

Si por lo que fuera queremos desmontar la unidad permanente, a parte de quitar la linea en el fichero fstab usaremos el comando umount.

umont /mnt/MI_musica

Como podeis ver, sshfs es extremadamente fácil de implementar y transparente en su manejo una vez implementado.Te permite montar una carpeta remota de tu red local o de la oficina en tu escritorio de casa, reconociéndolo como local, pero sin el agobio de hacer nada aparte de habilitar el ssh en la máquina remota.

Bueno, esto ha sido todo por hoy.

Be linux my Friend.