Cómo restringir el acceso SSH para el usuario con LSHELL (shell limitado)

Cómo restringir el acceso SSH para el usuario con LSHELL (shell limitado)

Lshell o Limited Shell está escrito en Python para limitar el usuario para un conjunto específico de comandos y directorios. Puede crear un entorno de usuario con acceso limitado, también puede habilitar los comandos de deshabilitar a través del acceso SSH.

Instalar concha limitada

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

$ sudo apt-get install lshell 

Cambiar el usuario a LSHELL

Ahora establezca el lshell como shell predeterminado para los usuarios para el que se le requiera. Por ejemplo, para cambiar el caparazón del usuario Sarah.

$ sudo chsh sarah Cambio del shell de inicio de sesión para Sarah Ingrese el nuevo valor, o presione Entrar para el shell de inicio de sesión predeterminado [/bin/lshell]:/usr/bin/lshell  

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

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

Configurar LSHELL

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

  • [global] : En esta sección define la configuración que se aplicó a nivel mundial. Por ejemplo, registros.
  • [por defecto] : En esta sección establecemos valores predeterminados que aplicaron 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 configuraciones específicas del usuario. Esta sección Configuración aplicada solo al usuario
  • [GRP: GroupName]: En esta sección especificamos configuraciones específicas del grupo. Esta sección Configuración aplicada a todos los usuarios del grupo

A [por defecto] El perfil se aplica para todos los usuarios utilizando LSHELL. Puedes crear [nombre de usuario] sección o un grupo [GRP: Nombre de grupo] Sección para personalizar a los usuarios y agrupar preferencias específicas.

El orden prioritario es Usuario >> Grupo >> Por defecto. La sección de usuario tiene la más alta prioridad y el valor predeterminado tiene la más baja prioridad.

[global] logPath:/var/log/lshell/loglevel: 2 [por defecto] permitido: ['ls', 'pwd', 'cd', 'cat', 'cp'] prohibido: [';', '&', '|', ", '>', '<', '$(', '$'] 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: rueda] advertencia_counter: 5 oversh: - ['ls'] [Raj] permitido: 'all' - ['su', 'rm', 'mv'] ruta: ['/etc', '/usr'] - ['/usr/local'] home_path: '/home/raj' [Sarah] permitido: + ['ping'] - ['ls'] ruta: - ['/usr/local'] Strict: 1 scpforce: '/home/sarah/uploads/' 

Por ejemplo, el usuario 'RJA' y el usuario 'Sarah' pertenecen al grupo UNIX 'Wheel':
Rueda grupal:

  • Los usuarios de Wheel Group tienen un mostrador de advertencia establecido en 5
  • Los usuarios de Wheel Group no se les permite el comando 'LS'.

RAJ de usuario:

  • Puede acceder /etc y /var pero no /usr /local
  • Puede acceder a todos los comandos en su ruta comandos de ejecución: SU, RM, VM
  • tiene un contador de advertencia establecido en 5 [predeterminado]
  • tiene su camino de casa establecido en '/home/raj'

Usuario Sarah:

  • Puede acceder /hogar y /usr pero no /usr /local
  • se permite el comando predeterminado 'ping' pero no 'ls'
  • La rigma se establece en 1 (no se le permite escribir un comando desconocido)
Nombre de opciónExplicación
periódico Directorio de registro (default/var/log/lshell/)
nivel de registro Establezca el nivel de registro en 0, 1, 2, 3 o 4 (0: sin registros, 1: menos detallado, 4: registro todos los comandos)
LogFileName Configurar el nombre del archivo de registro (el valor predeterminado es %u i.mi. nombre de usuario.registro)
permitido Lista de los comandos permitidos o 'todos' para permitir todos los comandos en la ruta del usuario
prohibido Una lista de personajes o comandos prohibidos: negar Vim, ya que permite escapar de Lshell
sudo_commands Una lista de comando permitido usar con sudo (8)
advertencia_counter 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 a Lshell)
inmediato Configure su PROMT usando %U o %H (predeterminado: nombre de usuario)
apurn_short Establecer la actualización del directorio actual de ordenación (predeterminado: 0)
Temporizador un valor en segundos para el temporizador de sesión
camino Lista de ruta para restringir al usuario "geográfico"
casa_path Establezca la carpeta de inicio de su usuario
env_path Establezca la ruta de la variable de entorno $ del usuario
permitido_cmd_path una lista de ruta; Se permitirán todos los archivos ejecutables dentro de esta ruta
env_vars Agregar variables de entorno
SCP Permitir o prohibir el uso de SCP (establecido en 1 o 0)
scp_upload Prohibir la carga SCP
scp_download Descargar la descarga de SCP
sftp Permitir prohibir el uso de SFTP (establecido en 1 o 0)
sobreshal Lista de comando permitido ejecutar sobre SSH
estricto Registro de registro. 1 para cualquier comando desconocido se considera prohibido y 0 como desconocido
scpforce Force los archivos enviados a través de SCP a un directorio específico
History_Size Historial Archivo Tamaño máximo
History_file Establecer el nombre del archivo del historial (predeterminado es/home/%u/.Lhistory)
Login_script Definir el script para ejecutarse al inicio de sesión del usuario