Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Slack 10.2 Kde 3.5.0
Por pedru
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

SELinux - Segurança em Servidores GNU/Linux
Linux user
brunordasilva
13/08/2012
Neste artigo demonstrarei um pouco, do conceito e prática, da tão poderosa ferramenta SELinux. Utilizei o CentOS 6 como base para meus testes. Lembrando que é um artigo mínimo, em relação a todas as opções existentes no SELinux.
Por: Bruno Rocha da Silva | Blog: http://about.me/brunorochadasilva
[ Hits: 16707 ]
Conceito: 9.9   7 voto(s)7 voto(s)7 voto(s)7 voto(s)7 voto(s) + quero dar nota ao artigo

O SELinux

O Security-Enhanced Linux - SELinux - foi desenvolvido pela Agência Nacional de Segurança dos EUA (NSA). Logo no início, seu objetivo principal era tornar-se um sistema operacional capaz de fornecer controles avançados de acesso para os órgãos militares dos Estados Unidos.

Porém, com o passar do tempo, a NSA identificou que seria mais lógico aprimorar um sistema de controle de acesso obrigatório, e adicioná-los a um sistema operacional já existente.

A opção pelo GNU/Linux surgiu devida à facilidade e flexibilidade de incorporar tal framework ao Kernel do sistema. Logo depois, sistemas que traziam a plataforma Unix, também usufruíram desta tão poderosa ferramenta.

Altamente implementado e refinado em cima da arquitetura MAC (Mandatory Access Control), provendo maior segurança a arquivos, diretórios, processos, sistema de arquivos, entre outros objetos, através de regras providas pelo SELinux.

Vale ressaltar, que este nível de segurança vai além da arquitetura DAC (Discretionary Access Control) que está associada à permissão de arquivos e ACLs (Access Control List’s) do GNU/Linux, como exemplo, as permissões MAC podem ser aplicadas até ao usuário root, limitando ações do mesmo.

Em um conceito prático, imaginemos que a conta de sistema associada ao serviço HTTP foi comprometida, o SELinux através de regras pré estabelecidas, limita este comprometimento apenas ao serviço HTTP, impossibilitando o comprometimento de outros serviços, ou até mesmo, do próprio sistema operacional.

Depois deste breve conceito, vamos à prática.

Lembrando que mais informações do SELinux, podem ser obtidas na Wiki do Projeto:
Ou, na página oficial da NSA:

Modo de operação do SELinux (conceito e prática)

Basicamente, o SELinux pode operar em três tipos diferentes, que são:
  • Enforcing – As regras do SELinux estão aplicadas, e está sendo gerado Logs de todas as operações do mesmo;
  • Permissive – As regras do SELinux estão desativadas, porém, está gerando Logs de todas as operações do mesmo (útil para Troubleshoot de aplicações);
  • Disabled - As regras e os Logs do SELinux estão completamente desativados.

Obs.: Para nossos testes, estou utilizando o CentOS 6.3.

Visualizando o status do SELinux:

# sestatus

Saída do comando:
SELinux status:            enabled
SELinux mount:            /selinux
Current mode:             enforcing
Mode from config file:   enforcing
Policy version:              24
Policy from config file:   targeted


Caso se queira visualizar apenas o Current mode do SELinux, utilize o comando:

# getenforce

Saída do comando:
Enforcing


Perceba que este comando traz apenas o modo de operação do SELinux.

Para alterarmos o modo de operação temporário do SELinux (apenas Enforcing e Permissive), utilizaremos o seguinte comando:

# setenforce MODO_DE_OPERAÇÂO

Ex.:

# setenforce permissive

Logo, visualize o status do SELinux:

# sestatus
SELinux status:            enabled
SELinux mount:            /selinux
Current mode:             permissive
Mode from config file:   enforcing
Policy version:              24
Policy from config file:   targeted


Obs.: Para desabilitar, ou alterar, o 'current mode' do SELinux por completo, é necessário editar o arquivo de configuração do SELinux (/etc/selinux/config) e alterar a variável:

'SELINUX='.


* Apenas como fonte de informação:
  • Em alguns casos com o SELinux habilitado, podemos nos deparar com serviços que, por algum motivo, não estão funcionando.
  • Alguns administradores, simplesmente desativam o SELinux por completo (Modo Disabled), para resolver o "problema".
  • Porém, para um Troubleshoot eficaz, não é necessário desativar o SELinux por completo comprometendo a segurança do sistema, e sim, deixá-lo em modo "Permissive"; com isso, as regras serão desativadas, porém, todo registro das atividades (logs) continuarão sendo armazenadas.


Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por amarildosertorio em 13/08/2012 - 11:40h:

Ótimo artigo! Valeu pela contribuição!


[2] Comentário enviado por Listeiro 037 em 13/08/2012 - 23:50h:

É mínimo, mas explica bem. Está bem organizada a explicação do funcionamento.
Inclusive fica fácil saber pelo que procurar caso seja necessitado aprofundar-se.
Existe livro de iptables em português, mas de selinux desconheço. Aqui está uma referência valiosa.

Parabéns.


[3] Comentário enviado por cromado em 14/08/2012 - 15:58h:

Good.
Ótima referência.


[4] Comentário enviado por danniel-lara em 16/08/2012 - 16:07h:

Ótimo artigo , parabéns



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.