terça-feira, 13 de setembro de 2016

LSHELL :: Criando uma shell limitada para o usuário do Linux


Fala pessoal, tudo bem? Bom, hoje vim apresentar pra vocês um recurso muito interessante para ser aplicado em servidores linux que possuem um grande acesso de diferentes usuários, onde você precisa limitar o acesso dos mesmos a alguns recursos diretamente na shell, o lshell (Limited Shell).

Basicamente, o lshell fuciona igual ao /bin/bash, mas os usuários que possuem essa shell como padrão só conseguem acessar comandos que você pre define de antemão, tanto como no usuário individual como em sudo.

Instalação do lshell 

O lshell está disponível nos repositórios da maioria das distribuições Linux e não tem segredo na instalação.
 # sudo apt-get update ; sudo apt-get install lshell -y  #Debian Like
 # sudo yum install lshell

Definindo as limitações dos usuários 

O lshell possui muitas formas de controle de acesso ao shell. E pode ser parametrizado tanto por grupos quanto por usuários individuais ou globalmente. Para isso, você precisa editar o arquivo de configuração /etc/lshell.conf. Basimente, as principais diretivas dele são as que estão abaixo:

 # vim /etc/lshell.conf  
 [global]  
 logpath     : /var/log/lshell/  
 loglevel    : 3  
 logfilename   : %y%m%d-%u #Diretorio de Logs separado por usuario. Ao meu ver, �~C© melhor.  
 #logfilename   : syslog  
   
 #Regras aplicadas para todos os usu�~C¡rios  
 [default]  
   
 #Comandos permitidos  
 allowed     : ['ls','echo','cd','ll']  
   
 #Lista de caracteres e parametros proibidos nos comandos. Forkbombs  
 forbidden    : [';', '&', '|','`','>','<', '$(', '${']  
   
 #Lista de comandos permitidos para ser usados como sudo  
 #sudo_commands  : ['ls', 'more']  
   
 #Numero de avisos de Warning antes de desconectar a shell  
 warning_counter : 5  
   
 #Aliases do Bash permitidos.   
 aliases     : {'ll':'ls -l', 'vim':'vim'}  
 
 ## Texto a ser exibido ao iniciar o lshell.
 intro      : "Ambiente restrito  '?' ou 'help' para ver a lista de comandos permitidos." 
 
 #Rodar algum script no login.  
 #login_script   : "/path/to/myscript.sh"  
   
 #Regras aplicadas para os grupos  
 [grp:usuarios]  
 allowed     : ['ls', 'cd', 'cp', 'mv', 'git']  
 forbidden    : ['poweroff', 'reboot', 'init']  
   
 [grp:aws]  
 allowed     : ['ssh', 'cd', 'rm', 'mv', 'git', 'deploymaster', 'deploystage']  
   

Adicionando/Alterando a Shell do Usuário

Alterando a Shell de um usuário já existente
 # usermod -s /usr/bin/lshell usuario  //Ou...
 # chsh -s /usr/bin/lshell usuario   

Criando um usuário com o lshell como default 
 # sudo useradd -m matheus -s /usr/bin/lshell   


Logando com o usuário, e acessando os comandos disponíveis com o 'help', podemos ver que já existe um usuário limitado


Espero ter ajudado :) 

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

1 comentários:

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com