Cómo crear jaulas CHRoot en OpenSSH y restringir el acceso de los usuarios – Parte 1 de 2
2023-5-11 00:0:17 Author: thehackerway.com(查看原文) 阅读量:19 收藏

Demostración en vídeo de este post.

OpenSSH es una de las implementación más extendidas del protocolo SSH y entre otras muchas cosas, soporta la creación de jaulas para usuarios. Esta característica resulta especialmente útil cuando se pretende restringir el acceso a ciertas cuentas de usuario en el sistema. En este post, verás cómo crear una jaula chroot con OpenSSH.

Solamente necesitas editar el fichero de configuración del servidor, el cual por defecto se encuentra ubicado en «/etc/ssh/sshd_config». En este fichero se encuentra la configuración maestra del servidor, por lo tanto, cualquier cambio que hagas debe ser válido, de lo contrario tu servidor no arrancará.
Las jaulas o “chroot” están pensadas para implantar sobre una cuenta de usuario e impedir que éste tenga acceso a información, potencialmente sensible, que se encuentra en directorios tales como «/etc», «/bin», «/usr», etc. En versiones anteriores a la 4.8 de OpenSSH, era necesario utilizar soluciones desarrolladas por terceros para poder implementar jaulas sobre los usuarios autenticados, pero en las versiones más recientes del servidor OpenSSH, es posible utilizar la directiva ChrootDirectory para “enjaular” a los usuarios autenticados en un directorio indicado y, de esta manera, impedir que tengan una imagen global de todo el sistema. Solo verán lo que se establezca en dicho fichero.

A continuación se describe el procedimiento, paso a paso, para crear una «jaula» plenamente funcional.

Paso 1: Crear la estructura de directorios.

En primer lugar, hay que crear la estructura de directorios que tendrá todo lo que le necesita el usuario para trabajar en el sistema.

Lo primero que hay que tener en cuenta, es que para que el usuario, una vez autenticado, pueda crear una sesión interactiva, necesita contar con un interprete como bash en su jaula, por ese motivo en la imagen anterior se aprecian los nodos necesarios para ello.

Paso 2. Copiar las librerías necesarias para crear una shell interactiva con bash

A continuación, es necesario establecer los permisos adecuados en el directorio de la jaula creado anteriormente y, además, crear el directorio «bin», el cual contendrá el programa «bash» que permitirá crear una sesión interactiva. Como te imaginarás, no basta simplemente con copiar el programa, es necesario incluir también sus dependencias y librerías compartidas, las cuales deben ubicarse dentro de la jaula. Para realizar todo el procedimiento, se ejecutan los comandos que ves en la siguiente imagen.

Como se puede apreciar, es necesario ejecutar el comando «ldd» para saber exactamente, cuáles son las librerías que necesita el programa «/bin/bash». Una vez tenemos el listado de dichos ficheros, basta simplemente con copiarlos dentro de la jaula, eso sí, respetando los nombres de los directorios, que en este caso son «lib/x86_64-linux-gnu» y «lib64».

El último paso para tener un entorno chroot mínimo, consiste en copiar los ficheros «/etc/passwd» y «/etc/group» dentro de la jaula y habilitar la opción «ChrootDirectory» en el fichero de configuración de OpenSSH. Además, antes de copiar dichos ficheros, es importante editar el «/etc/passwd» y cambiar el interprete que viene por defecto, que es «/usr/bin/zsh», por «/bin/bash».

Con lo anterior, ahora se puede establecer una conexión SSH y, en este caso concreto, si el usuario que intenta iniciar sesión es «kali», éste se encontrará en un entorno muy restringido y, cómo se aprecia en la siguiente imagen, no podrá ejecutar prácticamente ningún comando ya que no tiene acceso a ninguna herramienta típica en sistemas Linux, de momento.

Como se puede apreciar en la imagen anterior, se tiene acceso remoto mediante SSH y, aunque se puede interactuar con el interprete de bash, no se puede ejecutar prácticamente ninguna utilidad ya que no se encuentra disponible en la jaula. Si bien es un entorno muy seguro, no es nada funcional y a efectos prácticos, es poco útil para el usuario. En este punto, es necesario incluir las herramientas que se pretende compartir con el usuario, el administrador podrá elegir las utilidades que podrá usar el usuario «kali», aportando un entorno con el que podrá interactuar de forma totalmente controlada.

En el siguiente artículo describiré el proceso para diseñar la jaula e incluir en ella las utilidades mínimas que necesitaría cualquier usuario.

Un saludo y Happy Hack!
Adastra.


文章来源: https://thehackerway.com/2023/05/10/como-crear-jaulas-chroot-en-openssh-y-restringir-el-acceso-de-los-usuarios/
如有侵权请联系:admin#unsafe.sh