Cómo enjaular (jail) a usuarios que se conecten por SSH

 
 
 

En nuestro mundillo hay muchos pero muchos secretos… honestamente no creo poder aprender lo suficiente como para conocer la mayoría, y esto está dado por el simple hecho de que Linux nos permite hacer tantas, pero tantas cosas que se nos hace difícil conocerlas todas.

Esta vez les explicaré cómo hacer algo sumamente útil, algo que muchos administradores de redes o sistemas hemos necesitado hacer, y se nos ha dificultado por simplemente no encontrar una vía medianamente simple de lograrlo:

Cómo enjaular usuarios que se conecten por SSH

¿enjaular? … WTF!

Sí. Si por algún motivo debemos darle acceso SSH a un amigo nuestro a nuestro ordenador (o servidor), siempre debemos cuidad por la seguridad y estabilidad del ordenador o servidor nuestro.

Sucede que hace poco quisimos darle acceso SSH a Perseo a un servidor nuestro, pero no podemos darle cualquier tipo de acceso pues tenemos ahí configuraciones de veras sensibles (hemos compilado muchas cosas, paquetes que hemos instalado individuales, etc…) y si alguien que no sea yo intenta hacer aunque sea el más mínimo cambio en el servidor, existe la posibilidad de que todo se vaya al traste jeje.

Entonces, ¿cómo crear un usuario con privilegios extremadamente limiados, tanto así que no pueda ni siquiera salir de su jaula (home)?

Empecemos descargando jailkit, una herramienta que nos permitirá hacer esto:

Todos los comandos siguientes son ejecutados como root

1. Primero debemos descargar a nuestro servidor JailKit.

wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz

2. Luego debemos descomprimir el paquete y entrar en la carpeta que recién nos apareció:

tar xzf jailkit-2.16.tar.gz && cd jailkit-2.16

3. Posteriormente pasamos a compilar e instalar el software (les dejo screenshot):

apt-get install make gcc

./configure
make
make install

4. Listo, ya con esto está instalado. Ahora pasamos a crear la jaula que contendrá a los futuros usuarios, en mi caso la creé en: /home/ y le llamé “chroot”, por lo que la ruta sería: /home/chroot :

mkdir /home/chroot
chown root:root /home/chroot

5. Ya la jaula está creada, pero no tiene todas las herramientas necesarias para que los futuros usuarios que estarán ahí puedan trabajar sin problemas. O sea, hasta este momento la jaula está creada, pero es solo una caja vacía. Ahora pondremos en la jaula algunas herramientas que los usuarios enjaulados necesitarán:

jk_init -v /home/chroot basicshell
jk_init -v /home/chroot ssh
jk_init -v /home/chroot jk_lsh

6. Listo, la jaula existe y ya tiene las herramientas para que el usuario las use… ahora solo nos falta… el usuario!. Vamos a crear al usuario pepe y lo pondremos en la jaula:

adduser pepe
jk_jailuser -m -j /home/chroot pepe

cat /etc/passwd | grep jk_chroot

7. Para permitir que el usuario se conecte debemos hacer un paso más.

Debemos editar el archivo /etc/passwd de la jaula, o sea, en este caso sería /home/ch_root/etc/passwd , en él comentamos la línea del usuario que creamos, y añadimos una nueva como:

pepe:x:1002:1002::/home/pepe:/bin/bash

O sea, nos quedaría así el archivo passwd:

root:x:0:0:root:/root:/bin/bash
#pepe:x:1002:1002:,,,:/home/ch_root/./home/pepe:/usr/sbin/jk_lsh
pepe:x:1002:1002::/home/pepe:/bin/sh

Noten bien los signos de puntuación duplicados y demás, es importante no soltarnos ninguno 🙂
Luego de hacer esto, ya el usuario podrá entrar sin ningún tipo de problema 😀
Y esto es todo.
La herramienta que usamos para todo esto (jailkit) usa en el backend chroot, que es en realidad lo que casi todos los tutoriales usan. No obstante usando JailKit se hace más simple enjaular 😉

 

Fuente: DesdeLinux

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 3.7 / 5. Recuento de votos: 3

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Armando Felipe Fuentes Denis 82 artículos
Director de Infraestructura en Guajiritos S.R.L.

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*