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 o Linux Security Modules (LSM).  

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

Experimente 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 baseado em permissões armazenadas, 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.

Sua nuvem é segura? Faça uma 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 e 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 aplicaçã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 oferece 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, no qual 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, reinicialize-o 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 reinicialize 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. E deve permanecer ativado para proteger seu sistema caso ele seja comprometido.

Otimize a segurança do Linux com a Red Hat

Acesse a biblioteca de conteúdos 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. Embora o SELinux proteja seus sistemas em vários cenários, ainda existe a possibilidade de que um deles seja corrompido. Se você suspeitar de que esse é 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 localizar 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 e em grande escala, 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.

Mais informações sobre as funções do sistema do Red Hat Enterprise Linux

Produto

Red Hat Enterprise Linux 10

Descubra como o Red Hat Enterprise Linux 10 enfrenta os desafios mais críticos da TI moderna, desde a carência de habilidades em Linux até a segurança pós-quântica.

Todos os testes de soluções Red Hat

Com os nossos testes de solução gratuitos, você ganha experiência hands-on, prepara-se para uma certificação ou avalia se uma determinada solução é adequada para sua organização.

Leia mais

O que é computação confidencial?

A computação confidencial utiliza recursos de hardware para proteger os dados enquanto são processados, e não apenas quando estão em repouso ou em trânsito.

O que são o SPIFFE e o SPIRE?

O SPIFFE e o SPIRE são dois projetos open source usados no gerenciamento de identidades em ambientes de computação dinâmicos e variados. Juntos, eles solucionam muitos problemas de segurança.

O que é Zero Trust?

Descubra mais sobre Zero Trust, uma abordagem para projetar arquiteturas de segurança com base na premissa de que toda interação começa em um estado não confiável.

Segurança: leitura recomendada

Artigos relacionados