Configuración e Instalación
Configurar acceso SFTP con ProFTPd
sudo nano /etc/proftpd/conf.d/sftp.conf
Agregar lo siguiente linea
<
IfModule mod_sftp.c
>
SFTPEngine on
Port 2222
SFTPLog /var/log/proftpd/sftp.log
# Configure both the RSA and DSA host keys, using the same host key
# files that OpenSSH uses.
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPAuthMethods publickey
SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u
# Enable compression
SFTPCompression delayed
<
/IfModule
>
SFTP Sobre SSH
Configurar el servicio SSH para permitir conexiones SFTP
- Editamos el archivo /etc/ssh/sshd_config, donde reemplazamos la línea
#Subsystem sftp /usr/lib/openssh/sftp-server
Por:
Subsystem sftp internal-sftp
En el mismo archivo, agregamos al final:
Match Group sftpusers
ChrootDirectory /home/sftp/usuarioX
ForceCommand internal-sftp
Creando directorios para servicio y home de usuarios
Crear el directorio que será el chroot de los usuarios.
mkdir /home/sftp/
chmod 755 /home/sftp/
Crear el directorio que será el home del usuario que utilizará el servicio.
mkdir /home/sftp/usuarioX/
chmod 755 /home/sftp/usuarioX/
Creamos el grupo (sftp) y usuario (redorbita)
groupadd sftp
useradd -g sftp -s /bin/false -d /home/sftp/usuarioX usuarioX
passwd usuarioX
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente
Configurando el enjaulado de usuarios
nano /etc/ssh/sshd_config
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/usuarioX
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/usuarioX
ForceCommand internal-sftp
Restringir el acceso a Usuarios
Finalmente se reinicia el servicio FTP
/etc/init.d/ssh restart
Pruebas de conexión
Miguel:~$ sftp [email protected]
[email protected]'s password:
Connected to 192.168.0.2.
sftp> pwd
Remote working directory: /incoming
sftp> cd /etc
Couldn't canonicalise: No such file or directory
sftp>
La idea es que como el usuario esta sobre chroot no salga del directorio que le hemos creado (como figura arriba) de lo contrario va a poder ingresar al raiz del S.O.
Descargar
Para poder conectarte con un cliente FTP como FileZilla, ir al siguiente link: