GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo restringir el acceso SSH para usuarios con LShell (Shell limitado)

LShell o Limited Shell está escrito en python para limitar al usuario para un conjunto específico de comandos y directorios. Puede crear un entorno de usuario con acceso limitado, también puede habilitar comandos de desactivación sobre el acceso SSH.

Instalar Shell limitado

Use el siguiente comando para instalar el paquete LShell en su sistema basado en Debian. Para otro sistema operativo, debe buscar en Google el paquete de lshell para su distribución.

$ sudo apt-get install lshell

Cambiar usuario a LShell

Ahora configure LShell como shell predeterminado para los usuarios para los que es necesario. Por ejemplo, para cambiar el caparazón del usuario sarah.

$ sudo chsh sarah

Changing the login shell for sarah
Enter the new value, or press ENTER for the default
	Login Shell [/bin/lshell]: /usr/bin/lshell 

También puede configurar lshell como shell predeterminado para el usuario durante la creación de la cuenta de usuario de la siguiente manera.

$ sudo adduser --shell /usr/bin/lshell raj

Configurar LShell

Ahora comience con la configuración de lshell. Edite el archivo de configuración de lshell /etc/lshell.conf . Hay 4 secciones básicas en el archivo de configuración.

  • [global] : En esta sección definimos la configuración que se aplica globalmente. Por ejemplo, registros.
  • [predeterminado] : En esta sección establecemos valores predeterminados que se aplican a todos los usuarios y grupos. La configuración de esta sección se puede anular con la configuración específica del usuario y del grupo.
  • [NOMBRE DE USUARIO] : En esta sección especificamos la configuración específica del usuario. La configuración de esta sección se aplica solo al usuario
  • [grp:NOMBRE DEL GRUPO] : En esta sección especificamos la configuración específica del grupo. La configuración de esta sección se aplica a todos los usuarios del grupo

Un [predeterminado] El perfil se aplica a todos los usuarios que utilizan lshell. Puede crear [nombre de usuario] sección o un grupo [grp:groupname] sección para personalizar las preferencias específicas de los usuarios y grupos.

El orden de prioridad es Usuario>> Grupo>> Predeterminado . La sección de usuario tiene la prioridad más alta y la predeterminada tiene la prioridad más baja.

[global]
logpath         : /var/log/lshell/
loglevel        : 2

[default]
allowed         : ['ls','pwd','cd','cat','cp']
forbidden       : [';', '&', '|','`','>','<', '$(', '${']
sudo_commands   : ['ls', 'more']
warning_counter : 2
aliases         : {'ll':'ls -l', 'vim':'rvim'}
prompt          : "%[email protected]%h"
timer           : 0
path            : ['/home', '/usr']
env_path        : ':/usr/bin/usr/local/bin'
env_vars        : {'foo':1, 'bar':'helloworld'}
scp             : 1 # or 0
sftp            : 1 # or 0
overssh         : ['rsync','ls']
strict          : 0
history_file    : "/home/%u/.lshell_history"

[grp:wheel]
warning_counter : 5
overssh         : - ['ls']

[raj]
allowed         : 'all' - ['su','rm','mv']
path            : ['/etc', '/usr'] - ['/usr/local']
home_path       : '/home/raj'

[sarah]
allowed         : + ['ping'] - ['ls']
path            : - ['/usr/local']
strict          : 1
scpforce        : '/home/sarah/uploads/'

Por ejemplo, el usuario 'rja' y el usuario 'sarah' pertenecen al grupo UNIX 'rueda':
Rueda de grupo:

  • Los usuarios del grupo de ruedas tienen un contador de advertencia establecido en 5
  • Los usuarios del grupo de ruedas no tienen permitido el comando 'ls'.

Usuario raj:

  • Puede acceder a /etc y /var pero no a /usr/local
  • Puede acceder a todos los comandos en su PATH excepto los comandos:su, rm, vm
  • tiene un contador de advertencia establecido en 5 [predeterminado]
  • ha establecido su ruta de inicio en '/home/raj'

Usuario Sara:

  • Puede acceder a /home y /usr pero no a /usr/local
  • está permitido el comando predeterminado 'ping' pero no 'ls'
  • la rigurosidad se establece en 1 (no se le permite escribir un comando desconocido)

Linux
  1. Cómo crear un usuario SFTP sin acceso Shell en CentOS 8

  2. ¿Cómo restringir a los usuarios de SSH a un conjunto predefinido de comandos después de iniciar sesión?

  3. ¿Cómo puedo crear un usuario con acceso de solo lectura a todos los archivos? (es decir, root sin permisos de escritura)

  4. Cómo restringir el acceso a Internet para un usuario en particular en la LAN usando iptables en Linux

  5. Acceso solo a tunelización ssh

Cómo permitir o denegar el acceso SSH a un usuario o grupo en particular en Linux

Cómo restringir el acceso SSH a ciertos usuarios en Linux

Cómo crear un usuario SFTP para una raíz de documentos del servidor web

¿Cómo habilitar SSH (acceso de shell) para la cuenta de cPanel existente?

Cómo agregar una clave SSH para acceder a cPanel SSH

¿Cómo deshabilitar el inicio de sesión SSH para el usuario raíz en Linux?

    Nombre de la opción Explicación
    ruta de registro directorio de registro (predeterminado /var/log/lshell/ )
    nivel de registro establecer el nivel de registro en 0, 1, 2, 3 o 4 (0:sin registros, 1:menos detallado, 4:registrar todos los comandos)
    nombre del archivo de registro configure el nombre del archivo de registro (el valor predeterminado es %u, es decir, nombredeusuario.log)
    permitido lista de los comandos permitidos o 'todos' para permitir todos los comandos en la RUTA del usuario
    prohibido una lista de caracteres o comandos prohibidos:negar vim, ya que permite escapar de lshell
    sudo_commands una lista de comandos permitidos para usar con sudo(8)
    contador_de_advertencia número de advertencias cuando el usuario ingresa un valor prohibido antes de salir de lshell, establecido en -1 para deshabilitar.
    alias lista de alias de comandos (similar a la directiva de alias de bash)
    introducción texto de introducción para imprimir (al ingresar lshell)
    mensaje configure su promt usando %u o %h (predeterminado:nombre de usuario)
    prompt_short establecer la actualización del directorio actual del indicador de ordenación (predeterminado:0)
    temporizador un valor en segundos para el temporizador de sesión
    ruta lista de rutas para restringir al usuario “geográficamente”
    ruta_inicio establecer la carpeta de inicio de su usuario
    env_path establecer la variable de entorno $PATH del usuario
    ruta_cmd_permitida una lista de rutas; todos los archivos ejecutables dentro de esta ruta serán permitidos
    env_vars añadir variables de entorno
    scp permitir o prohibir el uso de scp (establecido en 1 o 0)
    scp_upload prohibir la carga de scp
    scp_download prohibir la descarga de scp
    sftp permitir o prohibir el uso de sftp (establecido en 1 o 0)
    oversh lista de comandos permitidos para ejecutar sobre ssh
    estricto rigurosidad en el registro. 1 para cualquier comando desconocido se considera prohibido y 0 como desconocido
    scpforce forzar archivos enviados a través de scp a un directorio específico
    historial_tamaño tamaño máximo del archivo de historial
    archivo_historial establecer el nombre del archivo de historial (el valor predeterminado es /home/%u/.lhistory)
    login_script defina el script para que se ejecute en el inicio de sesión del usuario