Instalar servidor SFTP enjaulado GNU/Linux

SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo del nivel de aplicación que proporciona la funcionalidad necesaria para la transferencia y manipulación de archivos sobre un flujo de datos fiable. Se utiliza comúnmente con SSH para proporcionar la seguridad a los datos, aunque permite ser usado con otros protocolos de seguridad. Por lo tanto, la seguridad no la provee directamente el protocolo SFTP, sino SSH o el protocolo que sea utilizado en su caso para este cometido.

Instalamos openssh

root@red-orbita:~# apt-get install openssh-server openssh-client

 

Creamos los directorios y asignamos los permisos donde van acceder los usuarios los cuales tengan permiso.

 

root@red-orbita:~# mkdir /home/sftp
root@red-orbita:~# mkdir /home/sftp/redorbita
root@red-orbita:~# chmod 755 /home/sftp
root@red-orbita:~# chmod 755 /home/sftp/redorbita

 

 

Creamos el grupo (sftp) y usuario (redorbita)

root@red-orbita:~# groupadd sftp
root@red-orbita:~# useradd -g sftp -s /bin/false -d /home/sftp/redorbia redorbita
root@red-orbita:~# passwd redorbita
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente

Configurar Enjaulado SFTP.

accedemos al archivo de configuración

root@red-orbita:~# vi /etc/ssh/sshd_config

Buscamos la siguiente linea y la comentamos (Ponemos delante #), de la siguiente forma:

#Subsystem sftp /usr/lib/openssh/sftp-server

Nos damos al final del documento ( Para ir al final con vi :$ ) y añadimos lo siguiente:

Subsystem sftp internal-sftp

Si queremos enjaular al grupo el cual pertenece nuestros usuarios (En mi opinión la mejor forma) enjaulariamos el raíz que creamos anteriormente.
Quedaría de la siguiente forma:

Match group sftp
ChrootDirectory /home/sftp
ForceCommand internal-sftp

En cambio si queremos enjaular a un usuario en concreto añadiríamos lo siguiente:

UsePAM yes
Match user redorbita
ChrootDirectory /home/sftp/redorbita
ForceCommand internal-sftp

Reiniciamos ssh

root@redorbita:~# /etc/init.d/ssh start
Starting OpenBSD Secure Shell server: sshd.

Ahora toca acceder con nuestro cliente ftp favorito…

Aceptamos la clave.

Listo, ya lo tenemos

 

Un saludo, rokitoh!

 

6 comentarios en “Instalar servidor SFTP enjaulado GNU/Linux”

  1. hola, muy buen tutorial, con el logro crear los usuarios, sin embargo me puedo salir del directorio al cual lo estoy enjaulando, me podrías ayudar a resolver esto, no se que estoy haciendo mal y llevo días con este problema, te agradecería mucho si me ayudaras.

  2. Siguiendo todos tus pasos no me puedo conectar….

    Estado: Esperando para reintentar…
    Estado: Conectando a localhost…
    Respuesta: fzSftp started, protocol_version=2
    Comando: open «redorbita@localhost» 22
    Error: Connection refused
    Error: No se pudo conectar al servidor

  3. Considerar que debe de ir de la siguiente forma:

    UsePAM yes
    Subsystem sftp internal-sftp
    Match group sftp
    ChrootDirectory /home/sftp/redorbita
    ForceCommand internal-sftp

Deja una respuesta

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