GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo crear un usuario SSH encarcelado con Jailkit en Debian 9 (Stretch)

Este documento describe cómo instalar y configurar Jailkit en el servidor Debian 9 (Stretch). Jailkit es un conjunto de utilidades para limitar las cuentas de usuario a archivos específicos usando chroot() o comandos específicos. Configurar un shell chroot, un shell limitado a un comando específico o un demonio dentro de una cárcel chroot es mucho más fácil y puede automatizarse usando estas utilidades.

Se sabe que Jailkit se usa en dispositivos de seguridad de red de varias empresas líderes de 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 daemon.

1 nota preliminar

Este tutorial se basa en el servidor Debian 9, por lo que debe configurar una instalación básica del servidor Debian antes de continuar con este tutorial. El sistema debe tener una dirección IP estática. Uso 192.168.0.100 como mi dirección IP en este tutorial y server1.example.com como nombre de host.

2 Instalar Jailkit

Primero descargaremos e instalaremos el Jailkit. Al momento de escribir esta guía, la última versión disponible de Jailkit es la 2.20. Lo descargaré y lo instalaré de la siguiente manera:

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

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

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

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

echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb

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

rm -rf /tmp/jailkit*

3 Encarcelar a un usuario

Ahora crearemos un usuario que será encarcelado usando Jailkit como:

adduser srijan

[email protected]:~#adduser srijan
Agregando usuario `srijan' ...
Agregando nuevo grupo `srijan' (1001) ...
Agregando nuevo usuario `srijan ' (1001) con el grupo `srijan' ...
Creando el directorio de inicio `/home/srijan' ...
Copiando archivos de `/etc/skel' ...
Ingrese nuevo Contraseña UNIX:<--contraseña
Vuelva a escribir la nueva contraseña de UNIX:<--contraseña
passwd:la contraseña se actualizó correctamente
Cambiando la información de usuario para srijan
Ingrese el nuevo valor o presione ENTER para el valor predeterminado
        Nombre completo []:<--ENTER
        Número de habitación []:<--ENTRAR
        Teléfono del trabajo []:<--ENTRAR
        Teléfono particular []:<--ENTRAR
        Otro []:<--ENTRAR
¿Es correcta la información? [S/n] <--S
[correo electrónico protegido]:~#

En mi caso estoy creando el usuario srijan, puedes usar cualquier nombre.

A continuación, comprobaremos la información sobre el usuario srijan en /etc/passwd como:

egrep srijan /etc/passwd
[correo electrónico protegido]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
[correo electrónico protegido]:/tmp #

A continuación, encarcelaremos al usuario creado. Cree un directorio /jail para el entorno Jail:

mkdir /jail

Ahora proporcionaremos a la Cárcel algunos de los entornos de programas predeterminados como:

jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp

También podemos dar otros valores, la lista completa del entorno Jail se puede consultar en el archivo

nano /etc/jailkit/jk_init.ini

Ahora Jail está listo, simplemente agregue el usuario dentro del entorno:

jk_jailuser -m -j /jail/ srijan

Nuevamente verifique los valores en /etc/passwd para el usuario srijan:

egrep srijan /etc/passwd
[email protected]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/jail/./home/srijan:/usr/sbin/jk_chrootsh
[ correo electrónico protegido]:/tmp#

Ahora nuestro usuario ha sido agregado en el entorno Jailed. Conectaré el servidor Debian con bash terminal con su IP 192.168.0.100:

ssh [email protected]
[email protected]:~$ ssh [email protected]
No se puede establecer la autenticidad del host '192.168.0.100 (192.168.0.100)'.
La huella dactilar de la clave ECDSA es 3d:ca:91:67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7.
¿Está seguro de que desea continuar con la conexión (sí/no)? sí
Contraseña de [email protected]:
Linux server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64

Los programas incluidos con el sistema Debian GNU/Linux son software libre;
los términos de distribución exactos para cada programa se describen en los
archivos individuales en /usr/share/doc/*/copyright.

Debian GNU/Linux viene SIN GARANTÍA EN ABSOLUTO, en la medida
permitida por la ley aplicable.
Conexión a 192.168.0.100 cerrada.
[email protected]:~$

La conexión se está cerrando porque el usuario no tiene un shell de registro, agréguelo en el archivo de configuración para Jail:

nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
#srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash

Agregará el aviso de bash para el usuario encarcelado srijan. Ahora intente nuevamente el inicio de sesión ssh con el usuario srijan y podrá iniciar sesión:

ssh [email protected]

Ahora verifique el contenido del directorio raíz, notará que tiene contenidos como este:

ls /
[correo electrónico protegido]:~$ ls /
bin  dev  etc  home  lib  lib64  usr
[correo electrónico protegido]:~$

4 Ejecutar servicios y comandos en un entorno enjaulado

Jail se puede utilizar para ejecutar servicios en un entorno Jailed. Supongamos que queremos ejecutar cualquier servicio en el entorno Jailed, entonces usaremos el comando jk_chrootlaunch para eso:

jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'

Aquí estoy iniciando el servicio de Apache. Del mismo modo, puede ejecutar cualquier servicio o demonio con él en un entorno Jailed.

Supongamos que queremos ejecutar un comando en particular en un entorno Jail, entonces usaremos jk_cp. Probémoslo en el entorno Jailed cuando ejecutemos cal y luego se muestra de la siguiente manera:

cal
[correo electrónico protegido]:~$ cal
bash:cal:comando no encontrado
[correo electrónico protegido]:~$

Significa que el entorno Jail no conoce el comando cal, ahora lo agregaré en Debian Server de la siguiente manera:

jk_cp  -v -j /jail/ /usr/bin/cal
[email protected]:~# jk_cp  -v -j /jail/ /usr/bin/cal
Crear enlace simbólico /jail/usr/bin/cal a ncal
Copiar /usr/bin/ncal a / jail/usr/bin/ncal
Crear enlace simbólico /jail/lib/x86_64-linux-gnu/libncurses.so.5 a libncurses.so.5.9
Copiar /lib/x86_64-linux-gnu/libncurses .so.5.9 a /jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 ya existe, no lo tocará
/jail/lib/x86_64-linux-gnu/libc.so.6 ya existe, no lo tocará
/jail/lib/x86_64-linux-gnu/libdl.so.2 ya existe, no lo hará tócalo
/jail/lib64/ld-linux-x86-64.so.2 ya existe, no lo tocará
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 ya existe, no lo tocará
/jail/lib/x86_64-linux-gnu/libc.so.6 ya existe, no lo tocará
/jail/lib/x86_64-linux-gnu/libdl. so.2 ya existe, no lo tocará
/jail/lib64/ld-linux-x86-64.so.2 ya existe, no lo tocará

Vuelva a ejecutar el comando cal en el entorno Jailed:

cal
[email protected]:~$ cal
  abril de 2019
Do Lu Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
                     
[email protected]:~$


Así que hemos agregado el comando para el entorno Jailed. ¡Felicidades! Ahora hemos configurado con éxito el entorno Jail en Debian 9 :)

5 Enlaces

  • Debian:https://www.debian.org/
  • Kit de cárcel: https://olivier.sessink.nl/jailkit/

Debian
  1. Cómo cifrar el directorio con EncFS en Debian 9 Stretch Linux

  2. Cómo configurar el servidor FTP en Debian 9 Stretch Linux

  3. Cómo actualizar Debian 8 a Debian 9 Stretch

  4. Cómo crear un usuario Sudo en Debian

  5. ¿Cómo crear un nuevo usuario con acceso Ssh?

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

Cómo instalar Debian 9 Stretch – Tutorial paso a paso con capturas de pantalla

Cómo instalar NextCloud en Debian 9 Stretch con LAMP

Cómo crear solo un usuario SFTP en Debian 11

Cómo instalar Go en Debian 9 Stretch

Cómo crear un usuario Sudo en Ubuntu y Debian