Red Hat Training

A Red Hat training course is available for RHEL 8

1.4. Arquitetura e embalagens SELinux

SELinux é um Módulo de Segurança Linux (LSM) que está embutido no kernel do Linux. O subsistema SELinux no kernel é conduzido por uma política de segurança que é controlada pelo administrador e carregada na inicialização. Todas as operações de acesso ao sistema relevantes para a segurança, em nível de kernel, são interceptadas pelo SELinux e examinadas no contexto da política de segurança carregada. Se a política carregada permitir a operação, ela continua. Caso contrário, a operação é bloqueada e o processo recebe um erro.

As decisões da SELinux, tais como permitir ou não o acesso, são armazenadas em cache. Este cache é conhecido como Access Vector Cache (AVC). Ao utilizar estas decisões em cache, as regras da política SELinux precisam ser menos verificadas, o que aumenta o desempenho. Lembre-se que as regras da política SELinux não têm efeito se as regras do DAC negarem o acesso primeiro. As mensagens brutas de auditoria são registradas no /var/log/audit/audit.log e começam com a seqüência type=AVC.

No Red Hat Enterprise Linux 8, os serviços do sistema são controlados pelo daemon systemd; systemd inicia e pára todos os serviços, e os usuários e processos comunicam-se com systemd usando o utilitário systemctl. O daemon systemd pode consultar a política SELinux e verificar a etiqueta do processo de chamada e a etiqueta do arquivo da unidade que o chamador tenta gerenciar, e então perguntar ao SELinux se o acesso é permitido ou não ao chamador. Esta abordagem fortalece o controle de acesso às capacidades críticas do sistema, que incluem iniciar e parar os serviços do sistema.

O daemon systemd também trabalha como um Gerente de Acesso SELinux. Ele recupera o rótulo do processo em execução systemctl ou o processo que enviou uma mensagem D-Bus para systemd. O daemon então procura a etiqueta do arquivo da unidade que o processo quis configurar. Finalmente, systemd pode recuperar informações do kernel se a política do SELinux permitir o acesso específico entre a etiqueta do processo e a etiqueta do arquivo de unidade. Isto significa que uma aplicação comprometida que precisa interagir com systemd para um serviço específico pode agora ser confinada pelo SELinux. Os redatores de políticas também podem utilizar estes controles de granulação fina para confinar os administradores.

Importante

Para evitar etiquetagem incorreta da SELinux e problemas subseqüentes, certifique-se de iniciar os serviços utilizando um comando systemctl start.

O Red Hat Enterprise Linux 8 fornece os seguintes pacotes para trabalhar com o SELinux:

  • políticas: selinux-policy-targeted, selinux-policy-mls
  • ferramentas: policycoreutils, policycoreutils-gui, libselinux-utils, policycoreutils-python-utils, setools-console, checkpolicy