SELinux - Security Enhanced Linux

A estrutura SELinux (Security Enhanced Linux) é uma camada de segurança extra para servidores que limita as ações dos usuários e programas pela imposição de políticas de segurança por todo o sistema operacional. As restrições impostas por suas políticas fornecem segurança extra contra acesso não autorizado.

[ Hits: 64.512 ]

Por: Luiz Vieira em 07/05/2009 | Blog: http://hackproofing.blogspot.com/


Contas de usuários



Criando novas contas de usuários

Verifique se seu domínio de contexto é sysadm_r:sysadm_t role, depois basta usar o comando useradd para adicionar um novo usuário. Para verificar se seu uid é 0 e se está em sysadm_r:sysadm_t role, digite o seguinte comando:

id
uid=0(root) gid=0(root) groups=0(root) context=faye:sysadm_r:sysadm_t

Caso seu uid seja o da sua conta regular, então faça o login com "su" primeiramente e siga os comandos abaixo:

useradd -c "SE Linux test user" -m -d /home/setest -g users -s /bin/bash -u 1005 nome_de_usuário
$ finger nome_de_usuário

Login: nome_de_usuário Name: SE Linux test user
Directory: /home/nome_de_usuário Shell: /bin/bash
Never logged in.
No mail.
No Plan.
passwd nome_de_usuario
Enter new UNIX password: senha
Retype new UNIX password: senha
passwd: password updated successfully

Assim o novo usuário "nome_de_usuário" foi criado.

Configurando regras para usuários

Como exemplo, para que o usuário tenha acesso a user_r, é necessário configurar o arquivo /etc/selinux/users. Para isso, insira no final de seu arquivo:

user usuario roles { user_r };

Assim o usuário "usuário" é autorizado a ter acesso à user_r role.

Então é necessário atualizar o arquivo /etc/selinux/users executando o seguinte comando:

# make -C /etc/selinux load

Ao terminar aparecerá algo como:

Success
touch tmp/load
make: Leaving directory `/usr/share/selinux/policy/current'

Agora deve-se configurar um contexto de segurança default, o que será visto numa seção seguinte.

Editando domínios de usuários

O arquivo de configuração que contém os domínios dos usuários é /etc/selinux/domains/user.te, altere-o adicionando as seguintes linhas:

full_user_role(second)
allow system_r second_r
allow sysadm_r second_r

Também adicione o seguinte comentário:

#Ao adicionar novas regras, edite o macro in_user_role em macros/user_macros.te

Para editar o arquivo /etc/selinux/macros/user_macros.te, entre num editor de texto e procure (no final do arquivo) a string in_user_role e adicione: "role second_r types $1;"
  • A linha full_user_role(second) cria o domínio second_t e os diretórios second_home_dir_t e second_home_t;
  • O diretório second_tmp_t é criado para arquivos que estão em níveis inferiores a /tmp;
  • O diretório second_tmpfs_t é criado para dividir o espaço de memória criado no contexto tmpfs;
  • Os diretórios second_tty_device_t e second_devpts_t são criados para rotular os "tty devices" e os "pseudo tty devices".

Agora que já criamos um novo domínio de usuário (second_t), criaremos um novo usuário para usá-lo.

Criando um novo usuário (newuser) para o novo domínio criado

Com o próprio comando useradd, crie um novo usuário e o adicione a /etc/selinux/users, que só tenha acesso a regra second_r. Execute o comando:

# make -C /etc/selinux load

Para aplicar o policiamento:

Deve-se configurar o domínio default para a nova regra, editando o arquivo /etc/security/default_type e adicionando a linha:

second_r:second_t

Agora é necessário rotular manualmente o arquivo /home/newuser executando o seguinte comando:

# find /home/newuser | xargs chcon -h system_u:object_r:second_home_t ; chcon -h system_u:object_r:second_home_dir_t /home/spike

Agora que o novo usuário foi criado, tente fazer o login como sendo ele.

Página anterior     Próxima página

Páginas do artigo
   1. Conceitos iniciais
   2. Pré-requisitos
   3. Instalando o SELinux
   4. Contas de usuários
   5. Regras
Outros artigos deste autor

ARP Poisoning: compreenda os princípios e defenda-se

Instalação do Wonderland Server

Forense em Máquinas Virtuais

Virtualização: VMware ou VirtualBox no Ubuntu 9.04 com kernel 2.6.29-11?

Resenha do livro: Praticando a Segurança da Informação

Leitura recomendada

AUDIT: Auditoria de arquivos no Linux para conhecer quem fez alterações em arquivos

Segurança da Informação no Brasil, qual é nossa realidade?

Rootkit: Uma nova ameaça?

Replicação com OpenLDAP

Integrando ModSecurity ao NGINX e Apache

  
Comentários
[1] Comentário enviado por rl27 em 27/08/2009 - 16:35h

Parabéns Luiz!
Seu artigo ficou bem legal. Foi mais direto ao ponto.
Agora dá pra começar a estudar SELinux. :)
Na verdade comecei esses dias estudar o GNU/Linux com mais seriedade.
Redes e segurança da informação me interessam muito. Já tinha lido algumas coisas sobre SELinux. mas seu artigo deu uma clareada legal.
Valeu!
Abraço

[2] Comentário enviado por ferrarini em 07/10/2012 - 13:12h

parabéns


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts