Jump to section

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.

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.

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 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 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, em que 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. Ele deve permanecer ativado para proteger seu sistema caso ele seja comprometido.

Você conhece bem o Linux?

Teste seu conhecimento e ganhe selos no jogo de perguntas Legends of Linux.

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.

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 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.

Leitura recomendada

Artigo

O que é Linux?

O Linux é um sistema operacional open source composto por um kernel, que é sua base, e ferramentas, aplicações e serviços empacotados com ele.

Artigo

O que é SELinux?

O Security-Enhanced Linux (SELinux) é uma arquitetura de segurança para sistemas Linux® que permite que administradores tenham mais controle sobre quem pode acessar o sistema.

Artigo

O que é o kernel do Linux?

O kernel é o componente principal de um sistema operacional Linux e a interface central entre o hardware e os processos executados por um computador.

Leia mais sobre o Linux

Soluções Red Hat

Uma plataforma estável e comprovada, versátil o suficiente para lançar novas aplicações, virtualizar ambientes e criar uma nuvem híbrida mais segura.

Guia de subscrições do Red Hat Enterprise Linux

Leia o guia de subscrições do Red Hat Enterprise Linux e escolha a melhor subscrição para seu caso de uso. Aprenda a gerenciá-la e aproveite ao máximo todos os benefícios oferecidos.

Conteúdo adicional

EBOOK

Inovação e eficiência operacional com o Linux

Faça o download deste ebook se quiser ver mais informações sobre o Red Hat Enterprise Linux versão 9.