Como restringir o acesso SSH para o usuário com LSHELL (Limited Shell)

Como restringir o acesso SSH para o usuário com LSHELL (Limited Shell)

LSHELL ou LIMITED shell é escrito em Python para limitar o usuário para um conjunto específico de comandos e diretórios. Você pode criar o ambiente do usuário com acesso limitado, também pode ativar os comandos desativados sobre o acesso SSH.

Instale o shell limitado

Use o seguinte comando para instalar o pacote Lshell em seu sistema baseado em Debian. Para outro sistema operacional, você precisa pesquisar no Google para o pacote de lshell para sua distribuição.

$ sudo apt-get install lshell 

Mudar o usuário para Lshell

Agora defina o lshell como shell padrão para os usuários para os quais você é necessário. Por exemplo, para mudar a concha do usuário Sarah.

$ sudo chsh sarah alterando o shell de login para sarah digite o novo valor ou pressione Enter para o shell de login padrão [/bin/lshell]:/usr/bin/lshell  

Você também pode definir o LSHELL como shell padrão para o usuário durante a criação da conta de usuário como seguinte.

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

Configure o LSHELL

Agora comece com a configuração do LSHELL. Editar arquivo de configuração lshell /etc/lshell.conf. Existem 4 seções básicas no arquivo de configuração.

  • [Global]: Nesta seção, definemos as configurações que se aplicavam globalmente. Por exemplo, logs.
  • [padrão] : Nesta seção, definimos valores padrão que aplicaram todos os usuários e grupos. As configurações desta seção podem ser substituídas com configurações específicas do usuário e grupo.
  • [NOME DE USUÁRIO] : Nesta seção, especificamos configurações específicas do usuário. As configurações desta seção aplicadas apenas ao usuário
  • [GRP: GroupName]: Nesta seção, especificamos configurações específicas do grupo. As configurações da seção aplicadas a todos os usuários do grupo

A [padrão] O perfil é aplicado para todos os usuários que usam Lshell. Você pode criar [nome de usuário] seção ou um grupo [GRP: GroupName] Seção para personalizar usuários e preferências específicas do grupo.

A ordem prioritária é Do utilizador >> Grupo >> Padrão. A seção do usuário tem maior prioridade e o padrão tem menor prioridade.

[global] LogPath:/var/log/lshell/loglevel: 2 [padrão] permitido: ['ls', 'pwd', 'cd', 'gat', 'cp'] proibido: [';', '&', '|', ", '>', '<', '$(', '$'] 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: roda] warning_counter: 5 overssh: - ['ls']] [Raj] permitido: 'all' - ['su', 'rm', 'mv'] caminho: ['/etc', '/usr'] - ['/usr/local'] home_path: '/home/raj' [Sarah] permitido: + ['ping'] - ['ls'] caminho: - ['/usr/local'] rigoroso: 1 scpforce: '/home/sarah/uploads/' 

Por exemplo, o usuário 'RJA' e o usuário 'Sarah' pertencem ao grupo 'Wheel' Unix:
Roda de grupo:

  • Os usuários do Grupo de Rodas têm um contador de aviso para 5
  • Usuários do Grupo de Rodas não são permitidos o comando 'LS'.

Usuário Raj:

  • Pode acessar /etc e /var, mas não /usr /local
  • Pode acessar todos os comandos em seu caminho comandos executados - su, rm, vm
  • tem um contador de aviso para 5 [padrão]
  • tem seu caminho em casa definido para '/home/raj'

Usuário Sarah:

  • Pode acessar /casa e /usr, mas não /usr /local
  • é permitido comando padrão 'ping', mas não 'ls'
  • O rigidez é definido como 1 (ele não tem permissão para digitar um comando desconhecido)
Nome da opçãoExplicação
LogPath Diretório de log (default/var/log/lshell/)
Loglevel Defina o nível de log como 0, 1, 2, 3 ou 4 (0: sem troncos, 1: Menos detalhados, 4: registre todos os comandos)
LogFileName Configurar o nome do arquivo de log (o padrão é %u i.e. nome de usuário.registro)
permitido Lista dos comandos permitidos ou 'All' para permitir todos os comandos no caminho do usuário
proibido Uma lista de caráter ou comandos proibidos - negar vim, pois permite escapar do LSHELL
sudo_commands Uma lista de comando permitido usar com sudo (8)
warning_counter Número de avisos quando o usuário insere um valor proibido antes de sair do LSHELL, definido como -1 para desativar.
apelido Lista de aliases de comando (semelhante à diretiva Alias ​​do Bash)
Introdução Introdução Texto para imprimir (ao entrar no LSHELL)
incitar Configure seu Promt usando %u ou %h (padrão: nome de usuário)
Prompt_short Definir classificar o prompt atual atualização do diretório (padrão: 0)
cronômetro um valor em segundos para o cronômetro de sessão
caminho Lista de caminho para restringir o usuário "geográfica"
home_path Defina a pasta doméstico do seu usuário
Env_Path Defina a variável de ambiente $ caminho do usuário
permitido_cmd_path uma lista de caminho; Todos os arquivos executáveis ​​dentro desse caminho serão permitidos
Env_vars Adicione variáveis ​​de ambiente
SCP Permitir ou proibir o uso de SCP (definido como 1 ou 0)
SCP_UPLOAD Proibir o upload SCP
SCP_DOWNLOAD Proibir o download do SCP
sftp Permitir proibir o uso de SFTP (definido como 1 ou 0)
Overssh Lista de comando permitido executar o SSH
estrito registro de restrição. 1 para qualquer comando desconhecido é considerado proibido e 0 como desconhecido
scpforce Arquivos de força enviados através do SCP para um diretório específico
history_size Arquivo de histórico Tamanho máximo
History_File Defina o nome do arquivo do histórico (padrão é/home/%u/.lhistory)
login_script Defina o script para executar no login de usuários