Acceso no chroot
Si no tiene una configuración de servidor FTP, y confía en el usuario que iniciará sesión, para no hurgar demasiado en su servidor, me inclinaría a darles una cuenta para SFTP en el sistema.
La wiki de CentOS mantiene un sencillo tutorial titulado: Configuración simple de SFTP que hace que esto sea bastante sencillo .
Digo que es indoloro porque literalmente solo tienes que crear la cuenta y asegurarte de que el firewall permita el tráfico SSH, asegúrate de que SSH esté ejecutando el servicio y listo.
Si aún sshd
no se está ejecutando:
$ /etc/init.d/sshd start
Para agregar un usuario:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
Cuando haya terminado con la cuenta:
$ sudo userdel -r userX
Acceso chroot
Si, por otro lado, desea limitar este usuario a un directorio designado, el servidor SFTP incluido con SSH (openssh) proporciona una configuración que también facilita su activación. Es un poco más de trabajo pero no demasiado. Los pasos se tratan aquí en este tutorial titulado: Cómo configurar Chroot SFTP en Linux (Permitir solo SFTP, no SSH) .
Realice estos cambios en su /etc/ssh/sshd_config
archivo.
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Ahora tendrá que hacer el árbol de directorio chrooteado donde este usuario quedará bloqueado.
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
Los permisos deben tener el siguiente aspecto:
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
Los directorios de nivel superior como este:
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
No olvides reiniciar el sshd
servidor:
$ sudo service sshd restart
Ahora cree la cuenta userX:
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
Puede verificar que la cuenta se haya creado correctamente:
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
Cuando haya terminado con la cuenta, elimínela de la misma manera anterior:
$ sudo userdel -r userX
... y no olvide eliminar los cambios en el archivo de configuración que realizamos anteriormente, luego reinicie sshd
para activarlos una vez más.