O que é SELinux (Security-Enhanced Linux)?

Copiar URL

O Security-Enhanced Linux (SELinux) é uma arquitetura de segurança para sistemas Linux® que oferece aos administradores mais controle sobre quem pode acessar o sistema. Ele foi originalmente desenvolvido pela Agência de Segurança Nacional (NSA) dos Estados Unidos como uma série de patches para o kernel do Linux usando módulos de segurança do Linux (LSM).  

O SELinux foi lançado para a comunidade open source em 2000 e foi integrado ao upstream do kernel do Linux em 2003.

Teste um sistema operacional com SELinux grátis

O SELinux define controles de acesso para as aplicações, processos e arquivos em um sistema. Ele usa políticas de segurança, que são conjuntos de regras que indicam ao SELinux o que pode ou não ser acessado conforme as permissões de uma política. 

Quando uma aplicação ou processo solicita o acesso a um objeto, como um arquivo, o SELinux verifica um cache de vetor de acesso (AVC), onde são armazenadas as permissões de cada elemento.

Caso o SELinux não consiga tomar uma decisão sobre o acesso, ele enviará uma solicitação ao servidor de segurança. Esse servidor verifica o contexto de segurança da app ou processo e do arquivo com base no banco de dados de políticas do SELinux. A permissão é concedida ou negada. 

No último caso, a mensagem "avc: denied" é exibida em /var/log.messages.

A nuvem é mesmo segura? Responda à nossa avaliação

Como configurar o SELinux 

Há diversas maneiras de configurar o SELinux para proteger seu sistema. As mais comuns são a política direcionada ou a segurança multinível (MLS).

A primeira maneira é a opção padrão, abrangendo diversos processos, tarefas e serviços. A MLS pode ser muito complicada e costuma ser usada apenas por organizações governamentais. 

Para saber a melhor opção para seu sistema, observe o arquivo /etc/sysconfig/selinux. Ele tem uma seção que mostra se o SELinux está no modo permissivo, no modo obrigatório ou desativado, além de indicar qual política deve ser carregada.

Rótulos e imposição de tipo do SELinux 

No SELinux, a imposição de tipo e os rótulos são conceitos importantes.

O SELinux funciona como um sistema de rotulagem, ou seja, cada arquivo, processo e porta em um sistema têm um rótulo associado. Isso cria uma forma lógica de agrupar os elementos. O kernel gerencia os rótulos durante a inicialização.

Os rótulos têm o formato usuário:função:tipo:nível (nível é opcional). O usuário, a função e o nível são usados em implementações mais avançadas do SELinux, como a MLS. Para a política direcionada, o tipo de rótulo é o mais importante. 

O SELinux usa a imposição de tipo para aplicar uma política definida no sistema. Essa parte da política do SELinux define se o tipo de processo em execução pode acessar um arquivo rotulado de determinado tipo.

Como ativar o SELinux

Se o SELinux estiver desativado no seu ambiente, edite /etc/selinux/config e defina SELINUX=permissive. Como o SELinux não estava ativado, não coloque-o no modo obrigatório logo, pois o sistema provavelmente terá rótulos incorretos que podem impedir sua inicialização.  

Para forçar o sistema a refazer os rótulos do sistema de arquivos, crie um arquivo vazio chamado .autorelabel no diretório raiz e execute a reinicialização. Se o sistema tiver muitos erros, será necessário reiniciar no modo permissivo para que a inicialização tenha êxito. Após refazer todos os rótulos, configure o SELinux para o modo obrigatório usando /etc/selinux/config e reinicie ou execute setenforce 1. 

Para um sysadmin menos familiarizado com a linha de comando, há ferramentas gráficas disponíveis para gerenciar o SELinux. 

O SELinux também oferece uma camada extra de proteção para os sistemas que usam distribuições Linux. Ele deve permanecer ativado para proteger seu sistema caso ele seja comprometido.

Veja como o Red Hat® Enterprise Linux pode melhorar a segurança do seu ambiente

Recursos da Red Hat

Tradicionalmente, os sistemas Linux e UNIX usavam o DAC. O SELinux é um exemplo de sistema MAC para Linux. 

No DAC, os arquivos e processos têm proprietários. Um arquivo pode ter um usuário, um grupo ou outro elemento como proprietário. Os usuários podem alterar as permissões nos próprios arquivos.

Em um sistema DAC, o usuário raiz tem controle de acesso total. Com o acesso raiz, é possível acessar os arquivos de todos os usuários e executar qualquer ação no sistema. 

No entanto, em sistemas MAC como o SELinux, há uma política de acesso administrativo definida. Mesmo que as configurações do DAC sejam alteradas no diretório de usuário, para manter o sistema seguro, basta ter uma política do SELinux em vigor que impeça o acesso de outro usuário ou processo ao diretório. 

As políticas do SELinux podem ser específicas e abranger um grande número de processos. Você pode fazer alterações no SELinux para limitar o acesso entre usuários, arquivos, diretórios e mais.

Aprenda a gerenciar ambientes Linux com técnicas e ferramentas modernas

Quando você recebe um erro no SELinux, isso indica que algo precisa ser ajustado. Provavelmente, será um destes quatro problemas:

  1. Os rótulos estão errados. Se for este o caso, use as ferramentas para corrigir os rótulos.
  2. Uma política precisa ser corrigida. Talvez você precise informar o SELinux sobre uma mudança feita ou ajustar uma política. Para isso, use booleanos ou módulos de política.
  3. Há um erro na política. Neste caso, o erro precisa ser resolvido.
  4. O sistema foi comprometido. O SELinux protege seus sistemas em vários cenários, mas ainda existe a possibilidade de que um deles esteja corrompido. Se você suspeitar de que este é o caso, tome medidas imediatamente.

O que são booleanos?

Os booleanos são configurações que ativam ou desativam as funções no SELinux. Há centenas de definições para recursos do SELinux, muitas delas já predefinidas. Execute getsebool -a para descobrir os booleanos configurados no seu sistema.

O Red Hat Enterprise Linux é a principal plataforma open source Linux do mundo. Ela permite que você reduza riscos, reforce políticas e configurações de segurança e simplifique estratégias de conformidade. No

Red Hat Enterprise Linux, as funções do sistema são uma coleção de Ansible® roles que oferecem fluxos de trabalho consistentes para aperfeiçoar a execução de tarefas manuais. As funções do sistema ajudam a automatizar os fluxos de trabalho de segurança, mantê-los ao longo do tempo com recursos mínimos, além de simplificarem os requisitos de governança e conformidade. Com a função do sistema SELinux, você pode automatizar a implantação e o gerenciamento do SELinux. Isso inclui: 

  • Ativar o SELinux com modos obrigatório ou permissivo para garantir a consistência dos controles.
  • Personalizar booleanos de política SELinux, contextos de arquivo, portas e logins para atender aos seus requisitos.
  • Utilizar a função do sistema para reconciliar contextos de arquivo nos diretórios ou arquivos especificados.

Leia mais sobre as funções do sistema do Red Hat Enterprise Linux

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

O que é gerenciamento de segredos?

O gerenciamento de segredos é um método para garantir a proteção das informações confidenciais necessárias para realizar suas operações diárias.

O que é o controle de acesso baseado em função (RBAC)?

O controle de acesso baseado em função é uma maneira de gerenciar o acesso de um usuário a sistemas, redes ou recursos com base na função dele dentro de uma equipe ou empresa de maior porte.

Shift left e shift right

Realizar shift left e shift right é implementar testes contínuos em cada estágio do ciclo de vida de desenvolvimento do software.

Segurança: leitura recomendada

Artigos relacionados