El servidor FTP (File Transfer Protocol) es el que nos da la facilidad de poder subir y bajar archivos de nuestro servidor remoto.
Esta vez me pidieron crear un usuario FTP para un sitio web que no contaba con interfase de administración y el trabajo con el servidor normalmente se realiza por medio de SSH( Secure Shell) la cual nos proporciona una consola de comandos para poder gestionar el servidor.
Pero agregándole complejidad, el requerimiento fue que ese nuevo usuario solo pueda interactuar con la carpeta a la cual se le asigne como puede ser /var/www/html/enjaular y no pueda ver absolutamente nada mas que lo que este dentro de esa carpeta por lo cual lo primero que se me ocurrió es “enjaular al usuario” para lo cual utilizaría chroot, mi método tenia lógica pero antes se necesitaba modificar algunas directivas, para lo cual este método se puede acercar a lo que se estaba buscan y quizás les sirva de ayuda.
1. creamos el usuarios y le asignamos el directorio sin acceso a shell
root@neotrons:/# useradd promocion -d /var/www/html/enjaulado -s /sbin/nologin
root@neotrons:/# passwd enjaulado
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente
Verificando permisos:
root@neotrons:/# chmod 755 /var/www/html/enjaulado root@neotrons:/# vi /etc/vsftpd/vsftpd.conf
En la ultima linea agregar:
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
root@neotrons:/# touch /etc/vsftpd/chroot_listluego ir a /etc/passwd y copiar la linea donde se encuentra la configuración del usuario “enjaulado” lo cual al ser el ultimo usuario creado debe estar al final de la linea:
root@neotrons:/# vi /etc/passwd enjaulado:x:501:501::/var/www/html/enjaulado:/bin/bashluego copiarla en el archivo /etc/vsftpd/chroot_list
root@neotrons:/# vi /etc/vsftpd/chroot_list enjaulado:x:501:501::/var/www/html/enjaulado:/bin/bashguardar el archivo y reiniciar el servicio vsftpd
/etc/init.d/vsftpd restart por tanto cuando ingresemos por nuestro cliente FTP “/var/www/html/enjaulado” tendrá o aparecera como nuestra Raiz “/”
Muchas gracias. Esta es la guía más simple y efectiva que he visto para crear usuarios enjaulados. Como complemento, recomendaría crear la carpeta de usuario dentro de /home/"usuario" (para tener un orden) y luego configurar un VirtualServer en Apache apuntando hacia dicho recurso.
ResponderEliminarUn saludo cordial
Enrique
que bueno que te aya servido solo para acotar tienes razón en lo del /home/user solo que el requerimiento exacto era que ese usuario pueda acceder a la carpeta /www/html/carpteta
ResponderEliminarSaludos luego de tiempo que no entraba en miblog que bueno que te aya servido
Buena información, recomiendo su blog.
ResponderEliminarUn saludo.