chroot con sftp y sshd

Hace ya muchos años, muchos vimos como iban desapareciendo los accesos por telnet a las maquina unix y se sustituia por un acceso encriptado, el cual nos obligaba a cambiar nuestro terminal, ya que por los años 90 no existian demasiados clientes ssh. Para windows aparecio el famoso putty.

SSH aparte de permitir el acceso remotamente a un tty de una maquina unix, implementa sftp, el cual permite la transferencia de archivos mediante los mismos comandos que ftp, pero mediante un canal encriptado.
Cuando necesitamos dar acceso a nuestras maquinas por sftp, la mayoria de los caso queremos que el usuario que lo usa, no pueda andar por nuestras maquinas a sus anchas, por lo que vamos a ver como hacer un chroot a tambien llamado jail o jaula.

Cuando creamos un chroot, lo que hacemos es encerrar al usuario en una parte del sistema de archivos, haciendole creer que se encuentra en el raiz de sistema y aunque intente ir para atras con un cd .. seguira en el mismo sitio.

Primero creamos el directorio donde queremos hacer el chroot y le cambiamos los permisos para que sean de root el propietario, tambien creamos un usuario webuser, con el home en / y como shell /bin/false, para que no pueda entrar por ssh a la maquina.

root@lnxport:~# mkdir /chroot
root@lnxport:~# chown root /chroot/
root@lnxport:~# useradd -d / -s /bin/false webuser
root@lnxport:~# passwd webuser
Introduzca la nueva contraseña de UNIX: 
Vuelva a escribir la nueva contraseña de UNIX: 
passwd: password updated successfully


Ahora hay que configurar el chroot en el fichero de configuracion de sshd

root@lnxport:~# vi /etc/ssh/sshd_config

Y añadimos al final lo siguente

Match user webuser
    ChrootDirectory /chroot
    ForceCommand internal-sftp
    AllowTCPForwarding no
    X11Forwarding no

Hacemos reload de ssh

root@lnxport:~# service ssh reload

Ahora ya podemos hacer secure ftp a nuestro chroot para verificar que todo funciona y que realmente estamos en una jaula

lnxuser@lnxport:~$ sftp webuser@lnxport
webuser@lnxport's password: 
Connected to lnxport.
sftp> ls                                                                                                                                                                                                   
sftp> pwd                                                                                                                                                                                                  
Remote working directory: /                                                                                                                                                                                
sftp> cd ..                                                                                                                                                                                                
sftp> ls                                                                                                                                                                                                   
sftp> quit

Como veis, aunque el usuario intente ir a un nivel inferior no le deja, solo podria entrar en los directorios que haya en su jaula.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *