Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
25.08.2025

O que é o SELinux e como ele pode aumentar a segurança no Linux?

Quando se trata de proteger servidores Linux, a maioria dos administradores pensa no básico: manter os pacotes actualizados, configurar firewalls, limitar o acesso SSH. No entanto, um dos mecanismos de segurança mais poderosos é frequentemente ignorado – SELinux (Security-Enhanced Linux). Não se trata apenas de um complemento; é uma estrutura de segurança ao nível do kernel concebida para travar as intrusões antes de estas aumentarem. Tanto para VPS como para servidores dedicados, o SELinux pode significar a diferença entre um incidente menor e um comprometimento total do sistema.

O que é o SELinux?

SELinux é um módulo de segurança do kernel Linux que impõe o Controlo de Acesso Obrigatório (MAC).

  • Sob o modelo tradicional DAC (Discretionary Access Control), o acesso é determinado pelos proprietários dos ficheiros, e o root tem poder irrestrito.
  • Sob o MAC (SELinux), o acesso é governado por políticas de segurança de todo o sistema. Mesmo o root está sujeito a restrições.

Inicialmente desenvolvido pela NSA em colaboração com a Red Hat, o SELinux foi integrado no kernel Linux no início dos anos 2000 e agora é padrão em distribuições empresariais como RHEL, CentOS, Fedora, AlmaLinux e Rocky Linux.

O problema: onde a segurança tradicional do Linux falha

O modelo clássico de permissão do UNIX (DAC) tem fraquezas críticas:

  • O root é todo-poderoso. Qualquer exploit que se transforme em root compromete todo o sistema.
  • Comprometimento do serviço = comprometimento do sistema. Um módulo Apache ou um script PHP pirateado pode aceder a dados sensíveis.
  • Os vectores de ataque modernos contornam o DAC. Web-shells, explorações de escalonamento de privilégios e fugas de contentores são comuns.

Cenário do mundo real:
Uma vulnerabilidade de upload de CMS permite que um atacante solte um web-shell. Sem o SELinux, o atacante pode ler config.php, extrair credenciais de banco de dados e comprometer toda a pilha. Com o SELinux, o processo do servidor web (httpd_t) é confinado e não pode aceder a ficheiros fora do seu domínio designado.

Como o SELinux funciona

Cada processo, arquivo, porta e socket tem um contexto de segurança (label).
Políticas definem quais contextos podem interagir.

Exemplo:

  • O Apache roda no domínio httpd_t.
  • Os arquivos do site são rotulados como httpd_sys_content_t.
  • A política permite que o httpd_t leia apenas os ficheiros httpd_sys_content_t.

Se o Apache tentar ler /etc/shadow (shadow_t), o kernel nega o pedido e regista a violação.

Modos de operação

  • Enforcing: as políticas são aplicadas, as violações são bloqueadas.
  • Permissive: as violações são registadas mas não são bloqueadas (útil para testes).
  • Desativado: O SELinux é desligado (não recomendado).

Melhor prática: comece em Permissive, revise os logs, ajuste as políticas, e então mude para Enforcing para produção.

Por que o SELinux é importante para hospedagem e DevOps

  • Isolamento de processos: limita os danos quando um único serviço é comprometido.
  • Aplicação do privilégio mínimo: mesmo o root não pode contornar as restrições da política.
  • Forense e visibilidade: todas as acções negadas são registadas (/var/log/audit/audit.log).
  • Segurança de contentores: impede que os contentores Docker/Podman saiam dos seus limites.
  • Conformidade: necessária em ambientes regulamentados (PCI DSS, HIPAA, implantações de nível militar).

Tipos de política

  • Direcionada (padrão): restringe apenas os serviços voltados para a rede (Apache, Nginx, Postfix, Dovecot).
  • Estrita: aplica MAC a todos os processos.
  • MLS/MCS: políticas avançadas para segurança de vários níveis ou de nível governamental.

Para a maioria das cargas de trabalho de servidores VPS e dedicados, a Política Direcionada é o melhor equilíbrio entre usabilidade e proteção.

Exemplos práticos

Verificar o status do SELinux

getenforce sestatus

Restaurar contextos de arquivo após mover arquivos da web

restorecon -Rv /var/www/html

Listar etiquetas de segurança de ficheiros

ls -Z /var/www/html

Permitir ligações de saída de serviços Web (por exemplo, chamadas API)

setsebool -P httpd_can_network_connect 1

Rever as acções negadas nos registos

ausearch -m avc -ts recent

Conclusão

SELinux é mais do que uma caraterística de segurança adicional; é uma estrutura fundamental que redefine como o Linux impõe o controlo de acesso. Ao confinar processos, reduzir o impacto de vulnerabilidades e fornecer trilhas de auditoria detalhadas, o SELinux transforma um sistema Linux em um ambiente muito mais resiliente. Embora exija uma configuração e compreensão cuidadosas, os benefícios de segurança que traz para as infra-estruturas de servidor modernas tornam-no um componente essencial para qualquer implementação de produção.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills