Archivo categoría SFTP
Como enjaular (chroot) un usuario de SFTP
Por Ángel Carrasco - Encriptación, SFTP, SSH - 05/06/2012
Más de una vez nos hemos visto obligados a permitir el acceso de un usuario para depositar o recoger información, en especial, cuando ha sido una cantidad extremadamente grande. Para ello hay muchas soluciones. Sin embargo, debemos rescatar una vieja idea -la cuenta de FTP de toda la vida- y actualizar a las necesidades de seguridad de hoy, encriptación y enjaulamiento.
Algo que suena tan complicado se resuelve en cualquier implementación del servidor OpenSSH. Para ello debemos seguir los siguientes pasos:
El primero será crear un usuario válido del sistema:
root@lab01:~# useradd -m -s /bin/sh -d /sftp/foo foo
Tal como podemos apreciar, se va a crear el usuario foo, con una shell falsa para que no pueda conseguir acceder a línea de comando y su directorio home será /sftp/foo. En ese directorio podrá subir y bajar información pero jamás, podrá moverse a niveles superiores.
El segundo paso será configurar el servicio, para ello editaremos el fichero /etc/ssh/sshd_config y añadiremos las siguientes líneas al final:
Match user foo
ChrootDirectory /sftp/only
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
La primera línea identifica el usuario que sufrirá una configuración determinada. Si en vez de usuario, hubieramos querido configurarlo para un grupo, con cambiar user por group y foo por el nombre del grupo es suficiente.
La segunda línea indica claramente en qué directorio queremos enjaular al usuario en cuestión. Este directorio no tiene que ser su directorio home, puede ser cualquiera donde OpenSSH tenga permisos.
La tercera y cuarta impiden que el usuario tunelice puertos TCP o exporten ventanas X11.
La quinta línea es esencial ya que estamos indicando que el usuario sólo pueda acceder mediante el uso del SFTP.
Una vez concluida la edición del fichero de configuración, debemos reiniciar el servicio. De esta forma, tendremos un usuario enjaulado y al que sólo puede acceder al sistema mediante SFTP.
Espero que os sea de utilidad tanto como a mí.

