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!
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.
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
¿podrías poner en error que te da en /var/log/secure ?
Lograstes solvetar ese problema
Pero si quiero enjaular a varios usuarios en diferentes carpetas_
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