Cómo usar Shell restringido para limitar el acceso de los usuarios a un sistema Linux


Aprenda a evitar que los usuarios de Linux ejecuten ciertos comandos y los confinen a su directorio principal mediante el uso de rbash.

Cómo usar Shell restringido para limitar el acceso de los usuarios a un sistema Linux
Aprenda a evitar que los usuarios de Linux ejecuten ciertos comandos y los confinen a su directorio principal mediante el uso de rbash.

Tiene usuarios que inician sesión en su sistema Linux. Esos usuarios podrían no tener derechos de sudo, pero posiblemente podrían tener rienda suelta para hurgar en la mayor parte del árbol de directorios del sistema. No quieres eso. ¿Por qué? Aunque es posible que esos usuarios no puedan editar la gran mayoría de sus archivos de configuración, ciertamente no desea que esos usuarios los vean. Lo mismo es cierto para los datos de sus clientes: desea que se bloqueen.

Pero, ¿cómo evita que los usuarios puedan acceder a la jerarquía de su directorio sin tener que modificar los permisos de cada archivo y carpeta en el sistema, lo que podría complicar las cosas seriamente?

VER: Seguridad de Windows 10: una guía para líderes empresariales (TechRepublic Premium)

Una forma es mediante el uso de una herramienta llamada Restricted Bash (rbash). Con rbash puede evitar que un usuario:

  • Usando el comando cd

  • Modificación de los valores de $ PATH, $ SHELL, $ BASH_ENV o $ ENV

  • Ejecutando programas que contienen un /

  • Redirigir la salida usando>,> |, <>,> &, &>, y >>

  • Salga del modo restringido dentro de los scripts

  • Desactiva el modo restringido

Lo que necesitarás

Cómo crear un usuario de prueba

Vamos a crear un usuario de prueba en un sistema. Llamaremos a ese usuario vega. Queremos crear el usuario de modo que su shell sea rbash. Esto se hace con el comando:

sudo useradd -m vega -s /bin/rbash

Luego deberá darle una contraseña al nuevo usuario con el comando:

sudo passwd vega

Cuando se le solicite, escriba y verifique una contraseña para el nuevo usuario.

Cómo crear un directorio

Ahora vamos a crear un directorio para el nuevo usuario que albergará los únicos comandos que el usuario puede ejecutar. Digamos, por ejemplo, que queremos permitir que el usuario emita los comandos mkdir, ls y ssh. Primero creemos el directorio con el comando:

sudo mkdir /home/vega/bin

A continuación, crearemos enlaces en ese directorio recién creado para los comandos que el usuario puede ejecutar (nuevamente mkdir, ls y ssh). Para hacer esto, emita los comandos:

sudo ln -s /bin/mkdir /home/vega/bin
sudo ln -s /bin/ls /home/vega/bin
sudo ln -s /bin/ssh /home/vega/bin

Cómo prevenir la modificación del perfil

Ahora debemos asegurarnos de que el nuevo usuario no pueda modificar su archivo .profile. Antes de que podamos cambiar los permisos y la propiedad del .profile, deberá iniciar sesión como ese usuario, para que se cree el archivo. Después de iniciar sesión, vuelva a iniciar sesión como usuario con privilegios de sudo.

Cambie la propiedad y los permisos del archivo con los comandos:

sudo chown root. /home/vega/.profile
sudo chmod 755 /home/vega/.profile

Pruebas

Inicie sesión en el servidor con la cuenta vega y emita el comando:

cd /

Debería estar informado de que tiene restricciones para usar el comando cd (Figura A)

Figura A

<a href = "https://tr3.cbsistatic.com/hub/i/r/2020/02/13/c93f67d5-5e9b-4330-bdea-287cfea26423/resize/770x/f8b751f8663f503a09345df8d527ca4d/rbash-error.jpg" target = "_ blank" data-component = "modalEnlargeImage" data-headline = "

Sin dados con el comando cd.

"data-credit =" "rel =" noopener noreferrer nofollow ">rbash-error.jpg

Sin dados con el comando cd.

Puede probar cualquier comando que desee, pero solo mkdir, ls y ssh funcionarán para el usuario de vega.

Y así es como puede restringir en gran medida a los usuarios en un sistema Linux con rbash. Esta es una forma realmente útil de controlar qué comandos pueden ejecutar sus usuarios y cómo pueden moverse dentro de la estructura del directorio.

Ver también

<a href = "https://tr2.cbsistatic.com/hub/i/r/2018/08/21/5b0fadf4-924e-4d41-9d8e-3d880e8aa434/resize/770x/3f4bdcc145ad5aa48278a7f5d8b20f48/linuxhero.jpg" target =linuxhero.jpg "target = _blank "data-component =" modalEnlargeImage "data-headline ="

"data-credit =" Imagen: Jack Wallen "rel =" noopener noreferrer nofollow ">linuxhero.jpg "src =" https://tr2.cbsistatic.com/hub/i/r/2018/08/21/5b0fadf4-924e-4d41-9d8e-3d880e8aa434/resize/770x/3f4bdcc145ad5aa48278a7f5d8b20fjpg/linux.h20

Imagen: Jack Wallen



Enlace a la noticia original