LINUX

Cómo crear un usuario ssh encarcelado con Jailkit en Debian Wheezy

Hola, hoy crearemos un usuario ssh encarcelado con Jailkit en una caja Debian Wheezy. Jailkit es un conjunto de utilidades para limitar las cuentas de usuario a archivos específicos usando chroot () yo comandos específicos. Configurar un shell chroot, un shell limitado a algún comando específico o un demonio dentro de una jail chroot es mucho más fácil y se puede automatizar usando estas utilidades.

Se sabe que Jailkit se utiliza en dispositivos de seguridad de red de varias firmas líderes en seguridad de TI, servidores de Internet de varias organizaciones empresariales grandes, servidores de Internet de proveedores de servicios de Internet, así como muchas empresas más pequeñas y usuarios privados que necesitan proteger cvs, sftp, shell. o procesos demonio.

1. Instalación de JailKit

En primer lugar, descargaremos e instalaremos el Jailkit.

$ cd /tmp
$ wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
$ tar xvfz jailkit-2.17.tar.gz
$ cd jailkit-2.17

descargar y extraer jailkit

Nota: Reemplace jailkit-2.17 con la versión de jailkit que va a instalar.

Como Jailkit requiere algunos paquetes antes de su instalación, los instalaremos de la siguiente manera:

$ sudo apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold python

  instalando dependencias

Ahora que nuestro sistema está listo para instalar el Jailkit, instálelo de la siguiente manera:

$ ./debian/rules binary
$ cd ..
$ dpkg -i jailkit_2.17-1_i386.deb

instalando jailkit

Instalará el Jailkit en Debian Server, podemos eliminar los paquetes adicionales de / tmp:

$ rm -rf /tmp/jailkit*

2. Configuración del entorno de la cárcel

Debe haber un directorio donde se configurará todo el entorno de la cárcel. Hagámoslo en / opt / jail. Esto puede ser lo que sea.

$ sudo mkdir /opt/jail

La raíz debe poseer este directorio. Así que hazlo.

$ sudo chown root:root /opt/jail

3. Permitir que los programas estén disponibles dentro de la cárcel

Todos los programas que deben estar disponibles en la cárcel deben copiarse dentro de ella mediante el comando jk_init.
Ejemplo

$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp

habilitar programas para usuarios de la cárcel

Los nombres como basicshell, editors, netutils son grupos que contienen múltiples programas. Cada grupo es un conjunto de archivos ejecutables, bibliotecas, etc. que se copiarán en el shell. Por ejemplo, la sección basicshell proporciona muchos programas como bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep, etc. en la cárcel.

Para obtener una lista completa de las secciones que se pueden configurar, consulte /etc/jailkit/jk_init.ini.

4. Cree el usuario que será encarcelado

Necesita un usuario para poner dentro de la cárcel. Vamos a crear uno

$ sudo adduser arun

Tenga en cuenta que este es un usuario normal que se crea en el sistema de archivos real y no dentro de la cárcel.
En el siguiente paso, este usuario será encarcelado dentro de la cárcel.

En este punto, si echa un vistazo a / etc / passwd, verá una entrada al final que se ve así

arun: x: 1006: 1005: ,,,: / inicio / arun: / bin / bash

Este es nuestro nuevo usuario y la última parte / bin / bash indica que el usuario tiene un acceso de shell normal en el sistema, si inicia sesión.

5. Encarcelar al usuario

Ahora es el momento de poner al usuario dentro de la cárcel.

$ sudo jk_jailuser -m -j /opt/jail/ arun

Al hacer esto, el usuario arun ahora ha sido encarcelado.
Ahora, si echa un vistazo a / etc / passwd, la última entrada se vería así

arun: x: 1006: 1005: ,,,: / opt / jail /./ home / arun: / usr / sbin / jk_chrootsh
Tenga en cuenta que las 2 últimas partes que indican el usuario doméstico y el tipo de shell han cambiado. El directorio de inicio del usuario ahora se encuentra dentro del entorno de la cárcel en / opt / jail. El caparazón del usuario ahora es un programa especial llamado jk_chrootsh que proporcionará el caparazón encarcelado.

Es este shell particular llamado jk_chrootsh que lleva al usuario dentro de la cárcel, cada vez que inicia sesión en el sistema.

La configuración de la cárcel ya está casi terminada. Pero si intenta conectarse a id desde ssh, fallará así:

$ ssh arun@localhost

conexión cerrada

La conexión se cerrará. Esto sucede porque el usuario en realidad tiene un shell limitado.

6. Entregue el shell bash al usuario dentro de la cárcel

Ahora, lo importante que tendremos que hacer es proporcionar al usuario un shell bash adecuado, pero dentro de la cárcel.
Abra el siguiente archivo

$ sudo nano /opt/jail/etc/passwd

Es el archivo de contraseñas dentro de la cárcel. Se vería algo así

root:x:0:0:root:/root:/bin/bash
arunp:x:1006:1001:arun pyasi,001,,:/home/arunp:/usr/sbin/jk_lsh

cambiar jk_lsh a bash

Cambie / usr / sbin / jk_lsh a / bin / bash

root:x:0:0:root:/root:/bin/bash
arun:x:1006:1005:,,,:/home/arun:/bin/bash

Guarda el archivo y cierra.

7. Inicie sesión en la cárcel

Así que ahora es el momento de volver a iniciar sesión en la cárcel

$ ssh arun@localhost

éxito de inicio de sesión de ssh

Ahora tenemos un shell bash completamente funcional pero dentro de la cárcel. Ahora verifique el entorno moviéndose. La raíz / del entorno encarcelado es / opt / jail del sistema de archivos real. Pero solo nosotros lo sabemos, no el usuario encarcelado.

también solo los comandos que se copiaron a través de las secciones jk_cp estarán disponibles en esta cárcel. Si el inicio de sesión falla, verifique /var/log/auth.log para ver si hay mensajes de error.

Ahora intente ejecutar algún comando de red como wget o algo similar.

$ wget http://www.google.com/

Si recibe un error como este:

$ wget http://www.google.com/
--2012-06-23 12:56:43-- http://www.google.com/
 Resolving www.google.com (www.google.com)... failed: Name or service not known.
 wget: unable to resolve host address `www.google.com'

Solucionarlo ejecutando los siguientes 2 comandos:

$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_files.so.2
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_dns.so.2

La ubicación exacta de libnss_files.so y libnss_dns.so puede variar, así que verifique.

8. Ejecución de programas o servicios en la cárcel.

Ahora la configuración está completa. Las cárceles son útiles para ejecutar programas o servicios en entornos restringidos / seguros. Para lanzar un programa o demonio dentro de la cárcel, use el comando jk_chrootlaunch.

$ sudo jk_chrootlaunch -j /opt/jail -u arun -x /some/command/in/jail

La utilidad jk_chrootlaunch se puede utilizar para iniciar un proceso particular dentro del entorno de la cárcel con privilegios del usuario especificado. Si el demonio no se inicia, consulte / var / log / syslog para ver si hay mensajes de error.

Para ejecutar el programa dentro de la cárcel, el programa primero debe copiarse completamente dentro de la cárcel usando el comando jk_cp.

jk_cp: una utilidad para copiar archivos, incluidos permisos y bibliotecas, en una cárcel

Conclusión

Entonces, finalmente hemos creado un ssh encarcelado en funcionamiento con la ayuda de Jailkit en nuestro servidor Debian Wheezy, limitado a algún comando específico, o un demonio dentro de una cárcel chroot con utilidades automatizadas. Para obtener más información sobre varios comandos de jailkit, consulte la documentación en el sitio web de olivier. Si tienes algún problema, consulta o duda comenta a continuación sin dudarlo para que podamos actualizar y mejorar más nuestros blogs y contenidos.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar