¿Cómo puedo crear un usuario SFTP en CentOS?

8

Me gustaría dar acceso SFTP temporal a un tipo de soporte. ¿Cómo creo un usuario SFTP? ¿Y cómo puedo eliminarlo una vez que el trabajo está hecho?

Además, ¿cómo especifico un directorio de inicio para ellos? ¿Puedo evitar que accedan a ciertos subdirectorios dentro de su directorio de inicio?

Usamos CentOS 6.3 y fzSftp

OC2PS
fuente
Depende de su configuración que nos proporcione su archivo de configuración podría ayudar.
Kiwy
¿Qué configuraciones particulares debo publicar?
OC2PS
el uno de ustedes ftp deamon
Kiwy
¿Estás seguro de que quieres FTP o SFTP? La razón por la que le pregunto es que usted enumeró fzsftp (filezilla sftp), que es el cliente que Filezilla usa para las conexiones SFTP.
slm
Ah! Me conecté a través de FileZilla a SFTP, por lo tanto, enumeré fzsftp ... pensé que este era mi servidor. SFTP estaría bien, si me pueden ayudar con eso. ¡Gracias!
OC2PS

Respuestas:

14

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 sshdno 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_configarchivo.

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 sshdservidor:

$ 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 sshdpara activarlos una vez más.

slm
fuente
¡Agradable! ¿Cómo puedo restringir al usuario a un directorio en particular y evitar que el usuario acceda a un par de subdirectorios dentro de ese directorio?
OC2PS
enlace al usuario dentro de su carpeta de inicio y agregue un enlace simbólico dentro de los diferentes directorios que desea permitir
Kiwy
@ OC2PS: lo anterior muestra un método para modificar los usuarios, también puede modificarlos en su directorio de inicio. Por lo general, separo a estos usuarios en un área designada para que sea obvio cuando miro /home/...quién es realmente un usuario en un sistema. Aunque ejecuto un servidor SFTP real para el trabajo, mis necesidades son ligeramente diferentes.
slm
Cuando sudo useradd -D userX, obtengo Uso: useradd [opciones] INICIAR SESIÓN
OC2PS
@ OC2PS intente useradd userX. Lo siento, leí mal la página del manual useradd.
slm