“Enjaula” tu OpenSSH con SSHJail

El Jailing es un mecanismo para cambiar el directorio root del sistema de forma virtual, de modo que un administrador del sistema puede aislar servicios para que no accedan al sistema de ficheros real.

Esto se hace por si un hacker rompe la protección de un servicio para acceder a tu sistema a través de él. En caso de que suceda, si el servicio está “enjaulado”, el hacker sólo podrá acceder a dónde tu quieras (o sea, a nada útil ni vital).

Los servicios que se suelen atacar más son BIND, Apache, FTP, y SSH. Por lo tanto, servicios como éstos son serios candidatos a ser metidos en la jaula. En el caso que nos ocupa, se enjaula el daemon OpenSSH con SSHjail. Se trata de un parche que modifica dos ficheros de OpenSSH (session.c and version.h) y te permite, como administrador de tu sistema, enjaular el servicio SSH sin hacer ninguna reconfiguración de éste.

Para usar SSHjail necesitas el fuente de OpenSSH, las librerías de desarrollo de OpenSSL y Zlib para compilar el daemon de SSH parcheado. Para aplicar el parche debes descomprimir SSHjail y el fuente de OpenSSH y hacer algo tal como:
~# cd /usr/local
~# tar xvfz openssh-4.5p1.tar.gz
~# patch -p0

Una vez has parcheado el daemon, hay que ejecutar el script de configuración:

~# cd openssh-4.5p1
~# ./configure

En caso de que te de un error por tener una versión de Zlib demasiado antigua, te puedes saltar el control del siguiente modo:

~# ./configure --without-zlib-version-check

Por último, haz el binario e instálalo:

~# make && make install

Esto te dejará el nuevo daemon en /usr/local/sbin/sshd.

Ahora hay que configurar unas cosillas antes de ejecutar el daemon. Hay que crear el fichero /etc/sshjail.conf, en el cual se definen los usuarios que serán enjaulados. Por ejemplo:

chroot=/public/jail1
users=anze,dasa,kimy,pablo
chroot=/public/jail2
users=@testers,raul

Para este ejemplo se han creado dos jaulas, jail1 y jail2 (lo normal es tener una sola jaula, aunque puedes tener todas las que quieras). La primera línea representa el nuevo directorio root de los usuarios enjaulados, que son los de la segunda fila (por ejemplo, para pablo el root se encuentra en /public/jail1). Como se puede ver en la segunda jaula, podemos especificar un grupo de usuarios (@testers) a ser enjaulados (en jail2).

SSHjailAhora que tienes definidas las jaulas hay que configurar un entorno chroot para los usuarios. En el ejemplo se ha configurado este entorno bajo el directorio /public, donde se han creado las jaulas. Cada jaula contiene el home de cada uno de los usuarios (iguales que los homes normales del sistema), así como las librerías y binarios que tienen permitido ejecutar los “prisioneros”.
Para acabar, hay que cambiar la ruta del home en el fichero /etc/passwd para cada uno de los usuarios enjaulados .
Ahora ya está todo configurado y puedes ejecutar el daemon sshd: para el proceso que ejecuta el daemon antiguo y asegurate que se ejecute el nuevo daemon cada vez que se inicie el sistema (puedes modificar la ruta al sshd del script /etc/rc.d/sshd o poner la ruta al sshd en el fichero /etc/rc.local).

En la fuente de este post, Linux.com, podéis ampliar la información dada aquí. Entre esta información nos muestran sus pruebas de uso, además de alternativas a SSHjail.

Fuente de la noticia: Linux.com

Valora esta noticia: 1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (0 votos, media: 0,00 de 5)
Loading ... Loading ...