JailKit – Enjaular usuarios y servicios

JailKit
seguridad
Hace un tiempo atras, queria probar como seria hacer un server dentro de un server y millones de cosas mas. Hoy comparto con ustedes JailKit que no es mas que un herramienta, un paquete que te permita enjaula o chroot a un servicio o usuario.

Instalacion

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xfv jailkit-2.17.tar.gz
cd jailkit-2.17
./configure
make
make install
Ahora ya si todo va bien tendremos las herramientas jk_* en nuestro sistema. Escribiendo jk y pulsando TAB dos veces veremos algunas.

Una vez compilada creamos la carpeta principal que sera la raiz de nuestra jaula:
mkdir /home/chroot
chown root:root /home/chroot

En realidad no hace falta -R ya que no tendremos nada dentro. Añadimos un usuario al sistema llamado enjaulado y le metemos la password.

adduser enjaulado

Eso creará un directorio para el usuario en /home/chroot. No nos preocupa de momento esto.

Añadimos a la jaula comandos básicos y bash así como editores de texto como nano y utilidades de red:
jk_init -v /home/jaula/ basicshell
jk_init -v /home/jaula/ editors
jk_init -v /home/jaula/ ssh
jk_init -v /home/jaula/ netutils
jk_init -v /home/jaula/ jk_lsh

Con el jail kit init estamos definiendo que programas y posibilidades va a tener el usuario enjaulado. Pueden ser muchas más y se ven en el fichero /etc/jailkit/jk_init.ini

Aparte de basicshell, editors, netutils podemos meterle estas otras si nos interesa:

uidbasics
netbasics
logbasics
jk_lsh
limitedshell
cvs
git
scp
sftp
ssh
rsync
procmail
basicshell
midnightcommander
extendedshell
terminfo
editors
netutils
apacheutils
extshellplusnet
openvpn
apache
perl
xauth
xclients
vncserver
xterm

Pero eso ya depende de lo que queramos que el usuario pueda tener. Un server apache enjaulado puede estar bien.

Ahora vamos a mover el contenido del usuario enjaulado (actualmente en /home/enjaulado) a dentro de la jaula (/home/chroot/home/enjaulado). Esto se hace con el comando jk_jailuser y los siguientes argumentos:

jk_jailuser -m -j /home/chroot enjaulado

En el fichero /etc/passwd veremos que la cosa ha cambiado:
cat /etc/passwd | grep "enjaulado"
enjaulado:x:1002:1003:,,,:/home/jaula/./home/chroot:/usr/sbin/jk_chrootsh

Y ejecutamos el demonio de la jaula:

jk_socketd

Con el comando pstree podemos ver que realmente es un demonio que pende de init.
jk_cp -v -f /home/chroot /bin/bash

Aún no hemos terminado pero casi. Ahora queda cambiar la shell del usuario enjaulado editando el fichero /etc/passwd Por ejemplo le vamos a asignar /bin/bash dejándolo así:

enjaulado:x:1002:1003:,,,:/home/chroot/./home/enjaulado:/bin/bash

Solamente cambiando lo del final que antes era /usr/sbin/jk_chrootsh por /bin/bash También en el fichero /home/chroot/etc/passwd

El usuario ya puede acceder vía ssh si todo va bien.

Con Información de elbinario.net

Deja un comentario

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

*