Inicio / Linux / Cómo configurar Chroot SFTP en Ubuntu 14.04

Cómo configurar Chroot SFTP en Ubuntu 14.04

SFTP

Hace ya algunos días que me llegó una solicitud interesante que venía a decir “Necesitamos un acceso SFTP para volcaros unos datos”, sinceramente cuando la leí por primera vez no le dí la mayor importancia y me lo anoté en el listado de tareas con una prioridad baja y tarea que lleva poco tiempo, así que la aparqué a un lado.

Mi sorpresa al iniciar esta tarea fue que realmente nunca había configurado un acceso SFTP en el que el usuario en cuestión no pueda conectarse también por SSH y lógicamente lo tendría que enjaular en un directorio para que no se pasease por directorios ajenos.

¿Qué queremos hacer?

Habilitar un acceso SFTP a un usuario que sólo pueda subir ficheros a un directorio en concreto y que no tenga acceso shell.

Datos:

Grupo de usuarios: usuariossftp

Usuario: pepito

Contraseña: subidaspepito

Directorio principal: /sftp

Directorio del usuario: /sftp/subidaspepito

Acceso SFTP:

Acceso SSH: No

Crear un nuevo grupo de usuarios

Hemos decidido destinar un servidor en el que teníamos un servicio de FTP para estos menesteres así que lo primero que haremos será crear un nuevo grupo de usuarios en el que albergaremos a todos los usuarios a lo que debamos darle este tipo de acceso.

Crear un nuevo usuario

Ahora crearemos el usuario pepito que asignaremos al grupo de usuarios usuariossftp y que tendrá como directorio home /cargas; para la parte de que no se le permita SSH  modificaremos con /sbin/nologin.

El siguiente paso es asignarle una contraseña a nuestro nuevo usuario pepito.

Configurar sftp-server

Tenemos que modificar el fichero sshd_config que se encuentra en el directorio /etc/ssh/, para ello ejecutaremos lo siguiente:

Dentro de este fichero tendremos que comentar la siguiente línea (para comentar una línea basta con añadir una # al inicio de la misma).

Linea a modificar sftp-server

Nos tendría que quedar así:

sftp-server Modificada

Ahora añadimos en el mismo fichero la siguiente línea:

Como queremos que el grupo de usuarios usuariossftp, estén enjaulados en un directorio en concreto y no se nos puedan pasear por el servidor, añadimos al final del fichero las siguientes líneas:

¿Qué hemos agregado?

Explicaré línea por línea:

  1. Indica que las siguientes líneas aplicará exclusivamente a los usuarios que se encuentren dentro del grupo usuariosftp.
  2. Los usuarios del grupo usuariossftp, queremos que estén enjaulados en un directorio, pero cada usuario de este grupo, tendrá un subdirectorio asociado al nombre del usuario (%u), por tanto nuestro usuarios pepito accedera el directorio /sftp/pepito y dentro de este directorio al directorio cargas.
  3. Forzamos la ejecución de internal-sftp e ingnoramos cualquier comando que se encuentre en ~/.ssh/rc…

Crear los directorios necesarios

Tenemos que crear el directorio /sftp que hemos ido definiendo durante todo el proceso y el directorio de nuestro usuario pepito dentro del directorio /sftp.

El último directorio que crearemos será el de cargas para nuestro usuario.

Asignando los permisos correctos a los directorios creados

Reiniciar y a funcionar

Ahora ya podemos reiniciar el servicio de SSH y realizar las pruebas de que todo funciona como nosotros queremos con el usuario pepito.

 

Sobre Bosco López

/dev/null

Te puede interesar también

Logo Nagios

Cómo instalar Nagios 4 en Ubuntu 14.04

En mí canal de Youtube  comencé hace ya un tiempo una serie de vídeos sobre monitorización …

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *