Servidor sFTP con jaulas en Ubuntu

He decidido convertir el PC de casa (Ubuntu) en un pequeño servidor de datos y quiero evitar hacer uso de la triste carpeta/unidad de red compartida de toda la vida y montar algo mejor. Lo que pretendo es poder acceder con conexiones seguras sFTP (FTP+SSH) a un espacio delimitado para cada usuario y con los permisos justos, de manera que ni los datos del resto de usuarios ni los del servidor corran peligro. En mi caso serán tres usuarios los que crearé, pero aquí solo lo haré con uno, ya que para más basta con repetir el procedimiento una y otra vez. En primer lugar instalamos el servidor SSH.

$apt-get install openssh-server

Podemos comprobamos que ha funcionado la instalación conectándonos a nosotros mismos (#ssh 127.0.0.1). En este punto ya podríamos acceder al sistema desde cualquier otro ordenador de la red indicando tan solo un nombre de usuario y la IP del servidor, como por ejemplo #sftp terminal1@ipservidor. Lógicamente el usuario en este caso "terminal1" debería existir en el equipo remoto para que nos acepte la conexión. Vamos a ver como crear ahora un usuario (para el caso usaré ´terminal1´, solo tenéis que sustituir este por el nombre real que queráis usar) con permisos concretos y con acceso delimitado a una zona del servidor, o lo que se conoce como una jaula. Creamos el usuario.

$useradd terminal1

Creamos la carpeta o jaula donde enviaremos al usuario cuando se loguee.

$mkdir /jaula/terminal1

Modificamos esta carpeta para que pertenezca a root y con los permisos justos para que este pueda operar.

$chown root:terminal1 /jaula/terminal1
$chmod 755 /jaula/terminal1

Dentro de esta si es necesario podemos crear una carpeta en la que el usuario ya tenga permisos de lectura y escritura.

#cd terminal1
$mkdir datos
$chown terminal1:terminal1 datos
$chmod 755 datos

Asignamos la jaula al directorio del usuario terminal1.

$usermod -d /jaula/terminal1 terminal1

Le asignamos una shell.

$usermod -s /bin/false terminal1

Y le definimos un password.

$passwd terminal1

Por último vamos a modificar el archivo de configuración del servidor SSH.

$nano /etc/ssh/sshd_config

Es recomendable editar la siguiente linea para impedir que se pueda acceder con una cuenta root.

PermitRootLogin no

Buscamos la linea Subsystem sftp y la eliminamos o comentamos para en su lugar dejarla como la siguiente:

Subsystem sftp internal-sftp

Y añadimos al final del archivo...

Match User terminal1
	ChrootDirectory /jaula/terminal1
	ForceCommand internal-sftp

Reinicamos el servidor de SSH ¡y listos!

$/etc/init.d/ssh restart

Hecho esto ya podemos acceder a nuestro espacio con el usuario terminal1.

#sftp terminal1@ipservidor

Como veréis el usuario una vez logueado es enviado a su espacio, donde dispone de permisos para leer y escribir, pero sin poder salir de ahí. Por último solo nos queda dar de alta la conexión sFTP en los equipos donde vayamos a querer conectarnos, por medio de LUGARES > CONECTAR CON EL SERVIDOR, o en Windows usando Filecilla o cualquier otro programa que permita conectar a servidores sFTP. Una vez hecho esto ya podremos trabajar remotamente con los archivos del servidor como si de una unidad más se tratara, o loguearnos desde un terminal y trabajar desde ahí.

27-03-2009


Comentarios:

29-03-2009 | arekkusu prueba

24-05-2010 | David Fantastico...funciona no se que tal de seguro es pero para ir aprendiendo va muy bien gracias

23-09-2010 | Emilio Tengo un problema. He conseguido configurar todo el SFTP correctamente, pero cuando intento subir un archivo desde otra máquina, me dice que Permiso Denegado. Si cambio los permisos de la carpeta, y le pongo a 777, directamente, ni conecta.

¿A que puede ser debido?

11-10-2010 | Narcis Garcia Leí tu guía sobre la parte servidor de SFTP, y he aprendido de un montón de tutoriales como este. He aquí mi compendio para configurar mejor clientes y servidores:

http://wiki.lapipaplena.org/index.php/Como_montar_accesos_SFTP

(con especial cuidado sobre usuarios y permisos)

08-07-2011 | Enrique Siguiendo paso a paso el documento, no funciona.

22-02-2013 | eliezer muchisimas gracias por el aporte companiero, una pieza valiosa sin duda!

Pues yo pienso que:


Suscribirse