Administrando o SELinux no Oracle Linux
Descreve o SELinux e fornece orientação sobre como administrar o SELinux no Oracle Linux.
A segurança tradicional do Linux é baseada em uma política de Controle de Acesso Discricionário (DAC). No modelo DAC de segurança do sistema, o acesso a recursos como arquivos e processos é baseado exclusivamente na identidade e propriedade do usuário. Se houver malware ou software danificado no sistema, ele poderá fazer qualquer coisa com arquivos e recursos que o usuário que iniciou o processo tenha permissão para fazer. Se o usuário for root ou o aplicativo estiver em execução com privilégios elevados (setuid ou setgid para root), o processo terá o controle de acesso root sobre todo o sistema de arquivos.
Para resolver este problema, a Agência de Segurança Nacional criou o Security Enhanced Linux (SELinux) para fornecer um maior nível de controle sobre arquivos, processos, usuários e aplicativos no sistema operacional Linux. O aprimoramento do SELinux para o kernel Linux implementa a política de Controle de Acesso Obrigatório (MAC), que permite definir uma política de segurança que configura permissões granulares para todos os usuários, programas, processos, arquivos e dispositivos. As decisões de controle de acesso do kernel se baseiam na sensibilidade dos recursos de uma perspectiva de segurança e não apenas na identidade do usuário autenticado.
Quando ocorre acesso relevante à segurança, como quando um processo abre um arquivo, o SELinux intercepta a operação no kernel. Se uma regra de política MAC permitir a operação, ela continuará. Caso contrário, o SELinux bloqueia a operação e retorna um erro ao processo. O kernel verifica e impõe regras de política DAC antes das regras MAC, portanto não verifica as regras de política do SELinux se as regras DAC já tiverem negado acesso a um recurso.
Descrições do Pacote SELinux
O SELinux contém vários pacotes, cada um contendo utilitários específicos que você pode usar para administrar o SELinux nos sistemas Oracle Linux. Alguns pacotes são instalados por padrão, enquanto outros pacotes são opcionais.
A tabela a seguir lista os pacotes do SELinux instalados por padrão com o Oracle Linux.
|
Pacote |
Descrição |
|---|---|
|
|
Fornece utilitários como |
|
|
Fornece a API que os aplicativos SELinux usam para obter e definir contextos de segurança de processos e arquivos e para obter decisões de política de segurança. |
|
|
Contém associações Python para desenvolvimento de aplicativos SELinux. |
|
|
Fornece a Política de Referência do SELinux, que é usada como base para outras políticas, como a política de destino do SELinux. |
|
|
Fornece a política direcionada do SELinux, em que objetos fora dos domínios direcionados são executados no DAC. |
|
|
Fornece os utilitários |
A tabela a seguir lista pacotes SELinux úteis que não são instalados por padrão. Instale todos os pacotes necessários usando o comando dnf.
|
Pacote |
Descrição |
|---|---|
|
|
Traduz os níveis do SELinux, como |
|
|
Fornece utilitários Python para operar SELinux, como |
|
|
Fornece o utilitário de sandbox para criar sandboxes do SELinux para executar comandos em um domínio do SELinux restrito. |
|
|
Fornece uma política rigorosa de Segurança Multinível (MLS) como uma alternativa à política direcionada do SELinux. |
selinux-policy-doc
|
Fornece páginas manuais para muitos elementos de política do SELinux. |
|
|
Permite que você exiba mensagens do |
|
|
Traduz mensagens de negação de acesso do SELinux em descrições detalhadas que você pode exibir na linha de comando usando o comando |
|
|
Fornece a distribuição de ferramentas e bibliotecas SETools da Tresys Technology, que você pode usar para analisar e consultar políticas, monitorar e relatar logs de auditoria e gerenciar o contexto do arquivo. |
Para obter mais informações, consulte o SELinux Project Wiki para documentação da comunidade e o selinux(8) e outras páginas de manual de comando do SELinux.
Utilitários SELinux
A tabela a seguir descreve os principais utilitários que você pode usar para administrar o SELinux e os pacotes que os contêm.
|
Utilitário |
Pacote |
Descrição |
|---|---|---|
|
|
|
Gera regras |
|
|
|
Analisa logs de negação para explicar por que o acesso foi bloqueado e recomenda ajustes relevantes do SELinux. |
|
|
|
Exibe estatísticas do AVC (Access Vector Cache) do SELinux. |
|
|
|
Altera ou remove a categoria de segurança de um arquivo ou usuário. |
|
|
|
Altera o contexto do SELinux de arquivos e diretórios. |
|
|
|
Corrige o contexto de segurança para sistemas de arquivos. |
|
|
|
Relata o modo SELinux atual. |
|
|
|
Relata valores boolianos do SELinux. |
|
|
|
Carrega uma nova política do SELinux no kernel. |
|
|
|
Consulta a política do sistema e exibe o contexto de segurança padrão associado ao caminho do arquivo. |
|
|
|
Redefine o contexto de segurança em um ou mais arquivos. |
|
|
|
Daemon que verifica a criação de arquivo e define o contexto de arquivo padrão. |
|
|
|
Executa um comando dentro do contexto especificado. |
|
|
|
Executa um comando em um sandbox do SELinux. |
|
|
|
Atua como a interface do usuário para o sistema |
|
|
|
Verifica políticas do SELinux. |
|
|
|
Exibe o contexto do SELinux a partir de um arquivo, programa ou entrada de usuário. |
|
|
|
Compara políticas do SELinux. |
|
|
|
Consulta políticas do SELinux. |
|
|
|
Exibe todos os contextos do SELinux que são acessíveis por um usuário. |
|
|
|
Exibe o contexto padrão do SELinux para um usuário. |
|
|
|
Indica se o SELinux está ativado. |
|
|
|
Gerencia políticas do SELinux. |
|
|
|
Gerencia módulos de política do SELinux. |
|
|
|
Exibe as dependências entre pacotes de políticas do SELinux. |
|
|
|
Expande um pacote de módulos de política do SELinux. |
|
|
|
Vincula pacotes de módulos de política do SELinux. |
|
|
|
Cria um pacote do módulo de política do SELinux. |
|
|
|
Consulta políticas do SELinux. |
|
|
|
Exibe o modo SELinux e a política SELinux que estão em uso. |
|
|
|
Altera o modo SELinux. |
|
|
|
Define valores boolianos do SELinux. |
|
|
|
Define o contexto de segurança para um ou mais arquivos. |
Definindo Modos do SELinux
O SELinux é executado no modo enforcing ou permissive:
-
enforcing -
O kernel nega acesso a usuários e programas se eles não receberem permissões por regras de política de segurança do SELinux. Todas as mensagens de negação são registradas como negações AVC (Cache de Vetor de Acesso). Este é o modo padrão.
-
permissive -
O kernel não impõe regras de política de segurança, mas o SELinux envia mensagens de negação para um arquivo de log. Isso permite que você veja quais ações seriam negadas se o SELinux estivesse em execução no modo
enforcing. Use este modo para ajudá-lo a implementar o SELinux em um sistema de forma eficaz.
Para exibir o modo SELinux atual, execute o seguinte comando:
getenforce
Para definir o modo atual como enforcing, execute o seguinte comando:
sudo setenforce enforcing
Para definir o modo atual como permissive, execute o seguinte comando:
sudo setenforce permissive
O valor que você define para um modo usando setenforce não persiste nas reinicializações. Para configurar o modo SELinux padrão, edite o arquivo de configuração para SELinux, /etc/selinux/config e defina o valor da diretiva SELINUX como enforcing ou permissive.
Desativando o SELinux
Você pode desativar totalmente o SELinux definindo o parâmetro de kernel selinux como zero.
A Oracle não recomenda a desativação do SELinux em sistemas de produção. Use o modo permissive.
Instalando a Documentação da Política
O SELinux é complexo, com muitas opções para configurar acesso, usando políticas. Você pode obter informações detalhadas sobre as políticas disponíveis nas páginas manuais que o pacote selinux-policy-doc fornece. Esta tarefa mostra como acessar essas informações.
A documentação da política também contém informações sobre usuários e atribuições. Por exemplo, você pode ler mais sobre o usuário user_u sem privilégios do SELinux e a atribuição user_r na página manual user_selinux(8). A documentação da política descreve as restrições que se aplicam a diferentes contextos de segurança e quais opções Boolianas estão disponíveis para personalizar a política de um ambiente.