elfresno
Posts: 34
Joined: Sun May 21, 2017 5:19 pm

sftp enjaular usuario en punto de montaje

Sat Feb 02, 2019 4:09 am

hola les hago una consulta. cree un usuario y lo enjaule a una carpeta para sftp con openssh, hasta aca todo bien, abro el filezila y puedo ver la carpeta enjaulada y leer pero no escribir, la carpeta es un punto de montaje de pendrive y pertenece al root, asi que hago dueño de la carpeta a este usuario, pero ahora el filezila no conecta, sin embargo el pendrive es montado y el usuario es dueño. alguien quiso hacer algo asi o sabe como solucionarlo? gracias,

pd: estoy montando con etc/fstab

trasgu
Posts: 7
Joined: Mon Jan 28, 2019 3:51 pm
Contact: Website

Re: sftp enjaular usuario en punto de montaje

Mon Feb 04, 2019 5:12 pm

Hola, espero poder ayudarte. Yo hice eso que quieres hacer y lo hice de este modo:

Editamos el archivo /etc/ssh/sshd_config, donde reemplazamos la línea

Code: Select all

#Subsystem       sftp    /usr/libexec/openssh/sftp-server
Por:

Code: Select all

Subsystem       sftp    internal-sftp
Es decir, la modificamos y descomentamos. Luego al final del mismo archivo escribimos esto y fijate bien donde esta montado el usb para añadirlo aqui, pues aqui especificamos cual es el /home de sftp digamos. Yo lo he puesto directamente en /sftp pero tienes que ajustarlo a tu directorio:

Code: Select all

Match Group sftpusers
        ChrootDirectory /sftp/%u
        ForceCommand internal-sftp
Salvas y guardas el archivo.

Luego creas el directorio que sera el chroot de los usuarios del sftp, lo creas en el pendrive o donde quieras, pero que coincida con lo que has puesto en ChrootDirectory:

Code: Select all

sudo mkdir /sftp
Para añadir usuarios solamente crea sus directorios asi:

Code: Select all

sudo mkdir /sftp/elfresno
sudo mkdir /sftp/trasgu
Una vez tienes todo eso configuramos los usuarios, primero creamos el grupo al que perteneceran los usuarios:

Code: Select all

sudo groupadd sftpusers
Y luego añadimos usuarios al grupo, cuidado porque ahora queda enjaulado y no podra salir del directorio y no podra ejecutar todos los comandos del sistema:

Code: Select all

sudo usermod -g sftpusers -d /elfresno -s /sbin/nologin elfresno
O directamente los creamos si no existen, esto es mejor que lo anterior para probar:

Code: Select all

sudo useradd -g sftpusers -d /invitado -s /sbin/nologin invitado
Y para terminar damos propietario a cada directorio:

Code: Select all

sudo chown elfresno:sftpusers /sftp/elfresno
Reinicia sshd y prueba con el cliente sftp.

elfresno
Posts: 34
Joined: Sun May 21, 2017 5:19 pm

Re: sftp enjaular usuario en punto de montaje

Mon Feb 04, 2019 11:43 pm

hola , gracias por responder, segui tu guia pero no pude hacerlo funcionar, mi problema es que el punto de anclaje ya lo tengo creado en /media/pendrive y tengo un monton de scritps que usan esa carpeta, por lo que me gustaria mantenerlo. puedo cambiarle el propietario a la carpeta pero cuando reinicio vuelve a ser del root

algun consejo??

trasgu
Posts: 7
Joined: Mon Jan 28, 2019 3:51 pm
Contact: Website

Re: sftp enjaular usuario en punto de montaje

Tue Feb 05, 2019 4:26 pm

puedo cambiarle el propietario a la carpeta pero cuando reinicio vuelve a ser del root
Dices que al reiniciar cambian los permisos, como lo tienes configurado en /etc/fstab?

Lo normal sería esto:

Code: Select all

/dev/sda1      /media/discousb      ext4      defaults      0      0
Comprueba como lo tienes. Supuestamente eso solamente monta el sistema de archivos en donde le has dicho. Luego le has de dar permisos a los usuarios.

Otra forma sencilla es formatear el usb como fat32 ya que este sistema no soporta permisos. Solo sustituye ext4 por vfat en /etc/fstab.

En definitiva, comprueba el formato de archivos en que has formateado el usb (no todos permiten asignar permisos por usuario). Comprueba que has creado el directorio donde montar el usb. Comprueba que /etc/fstab esta como en la linea que puse. Comprueba permisos de los directorios.

Si has estado haciendo varias pruebas es posible que algo que hiciste antes este afectando a tu actual configuracion.

Return to “Español”