jueves, 29 de octubre de 2009

Jaula Chroot en VSFTPD

Una Jaula Chroot, es un procedimiento en Linux, que cambia el directorio raiz de un usuario en particular, con el fin de forzar la utilización de otro directorio o de impedir el acceso que este pueda tener dentro de una de aplicación a otros directorios. Es muy útil ya que se puede aumentar considerablemente la seguridad en las aplicaciones y en general del SO en el que trabajemos.
vsftpd es una aplicación (Linux) que permite la transferencia de archivos a través del protocolo FTP. También existe proftpd en Linux, y Filezilla Server en Windows, entre otros por supuesto. En esta aplicacion cualquier usuario del SO, puede conectarse al servidor FTP, a menos que su acceso se encuentre limitado.
Cuando un usuario utiliza el servicio FTP por medio de un cliente destinado para tal fin, sí en la configuración del servidor, no existen reglas que garanticen la segurida
d, el usuario podría moverse en cualquier subdirectorio y llegar al directorio /. Si es un usuario sin privilegios de root, no ocasionaría ningún daño, pero podría espiar todas las carpetas en el servidor que tengan permisos de lectura, pero si este usuario tiene privilegios, entonces podría descargar archivos de cualquier directorio o borrar algún elemento:

Img 1.0: Un usuario puede desplazarse en cualquier subdirectorio /


Si copiamos las siguientes líneas en el archivo de configuración del vsftpd, que se encuentra normalmente en /etc/vsftpd:
tcp_wrappers=yes
chroot_local_user=yes

Y después de reiniciar el servicio, el cliente FTP muestra como directorio raíz, el directorio home del usuario, especificado en /etc/passwd:


mariofespinosa:x:504:506::/home/mariofespinosa:/bin/bash


Img 2.0: Un usuario sólo tiene acceso a su directorio HOME

Pero, no solamente se muestra el directorio home, sino que si el usuario intenta acceder a otro directorio escribiendo la ruta, inmediatamente aparecería un error.
Las Jaulas chroot son muy utilizadas, no sólo en aplicaciones, sino también a nivel de SO como en Ubuntu o en Debian en los cuales vienen los paquetes que permiten ejecutar este procedimiento, tengo entendido que FreeBSD se especializa en el manejo de Jaulas.


1 comentario: