Como restringir o acesso SSH para o usuário com LSHELL (Limited Shell)
- 925
- 201
- Wendell Legros
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ção | Explicaçã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 |
- « Como atualizar para o Fedora 23 do Fedora 22 usando o DNF
- Cliente authz_coreerror negado pela configuração do servidor »