Como usar SELinux

Como usar SELinux, muitos preferem desabilitar.

A segurança tradicional do Linux é baseada em uma política de Controle de Acesso Discricionário (DAC).

O DAC que fornece proteção mínima contra software corrompido ou contra malware que está sendo executado como um usuário normal ou como root. 

O acesso a arquivos e dispositivos é baseado exclusivamente na identidade e propriedade do usuário. 

Malwares ou softwares quebrados podem fazer qualquer coisa com arquivos e recursos que o usuário que iniciou o processo pode fazer. 

Se o usuário é root ou a aplicação é setuid ou setgid para root, o processo pode ter root controle acesso ao longo de todo o sistema de arquivos.

SELinux

A National Security Agency criou o Security Enhanced Linux (SELinux) para fornecer um nível mais refinado de controle sobre arquivos, processos, usuários e aplicativos no sistema operacional Linux. 

O aprimoramento do SELinux no kernel Linux implementa a política Mandatory Access Control (MAC), que permite definir uma política de segurança que fornece permissões granulares para todos os usuários, programas, processos, arquivos e dispositivos. 

As decisões de controle de acesso do kernel são baseadas em todas as informações relevantes de segurança disponíveis e não apenas na identidade do usuário autenticado.

Quando ocorre acesso relevante à segurança, como quando um processo tenta abrir 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 aplica as regras de política do DAC antes das regras MAC, portanto, ele não verifica as regras de política do SELinux se as regras do DAC já tiverem negado o acesso a um recurso.

Como usar SELinux

O como usar SELinux depende muito dos pacotes que você tem instalado no seu sistema, sim isso mesmo, afinal você precisa gerenciar o SELinux.

Vamos ver quais pacotes são necessários, vamos usar como base uma distro baseada no Red Hat Linux:

  • policycoreutils – Fornece utilidades, tais como load_policy, restorecon, secon, setfiles, semodule, sestatus, esetseboolpela exploração e gestão do SELinux.
  • libselinux – 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 sobre políticas de segurança.
  • selinux-policy – Fornece a Política de Referência do SELinux, que é usada como base para outras políticas, como a política direcionada do SELinux.
  • selinux-policy-targeted – Fornece suporte para a política segmentada do SELinux, em que os objetos fora dos domínios de destino são executados no DAC.
  • libselinux-python – Contém ligações do Python para desenvolver aplicativos do SELinux.
  • libselinux-utils – Fornece os utilitários avcstat, getenforce, getsebool, matchpathcon, selinuxconlist, selinuxdefcon, selinuxenabled, setenforce e togglesebool.

Pacotes Úteis do SELinux

Outros pacotes úteis do SELinux que não são instalados por padrão:

  • mcstrans – Traduz níveis do SELinux, como, por exemplo s0-s0:c0.c1023, para uma forma mais fácil de ler, como SystemLow-SystemHigh.
  • policycoreutils-gui – Fornece uma GUI ( system-config-selinux ) que você pode usar para gerenciar o SELinux. Por exemplo, você pode usar a GUI para definir o modo de aplicação padrão e o tipo de política.
  • policycoreutils-python – Fornece utilitários adicionais Python para operar SELinux, tais como audit2allow, audit2why , chcat , esemanage.
  • selinux-policy-mls – Fornece suporte para a rígida política de Segurança multinível (MLS) como uma alternativa à política direcionada do SELinux.
  • setroubleshoot – Fornece a GUI que permite visualizar setroubleshoot-servermensagens usando o comando sealert.
  • setroubleshoot-server – Traduz mensagens de negação de acesso do SELinux em descrições detalhadas que você pode ver na linha de comando usando o comando sealert .
  • setools-console – Fornece a distribuição de ferramentas e bibliotecas da Tresys Technology SETools, que você pode usar para analisar e consultar políticas, monitorar e relatar logs de auditoria e gerenciar o contexto do arquivo.

Administração do SELinux

Para administrar o SELinux é preciso conhecer os utilitários e quais pacotes pertencem, seguindo uma ordem de utilitário – pacote – descrição:

  • audit2allow – policycoreutils-python – Gera allow_auditregras de política do SELinux a partir de logs de operações negadas.
  • audit2why – policycoreutils-python – Gera don’t_auditregras de política do SELinux a partir de logs de operações negadas.
  • avcstat – libselinux-utils – Exibe as estatísticas do SELinux Access Vector Cache (AVC).
  • chcat – policycoreutils-python – Altera ou remove a categoria de segurança de um arquivo ou usuário.
  • findcon – setools-console – Procura por contexto de arquivo.
  • fixfiles – policycoreutils – Corrige o contexto de segurança para sistemas de arquivos.
  • getenforce – libselinux-utils – Relata o modo SELinux atual.
  • getsebool – libselinux-utils – Reporta valores booleanos do SELinux.
  • indexcon – setools-console – Contexto do arquivo de índices.
  • load_policy – policycoreutils – Carrega uma nova política do SELinux no kernel.
  • matchpathcon – libselinux-utils – Consulta a política do sistema e exibe o contexto de segurança padrão associado ao caminho do arquivo.
  • replcon – setools-console – Substitui o contexto do arquivo.
  • restorecon – policycoreutils – Redefine o contexto de segurança em um ou mais arquivos.
  • restorecond – policycoreutils – Daemon que observa a criação de arquivos e define o contexto do arquivo padrão.
  • sandbox – policycoreutils-python – Executa um comando em uma caixa de proteção do SELinux.
  • sealert – setroubleshoot-server,setroubleshoot – Atua como a interface do usuário para o setroubleshoot sistema, que diagnostica e explica as negações do SELinux AVC e fornece recomendações sobre como evitar tais negações.
  • seaudit-report – setools-console – Relatórios do log de auditoria do SELinux.
  • sechecker – setools-console – Verifica as políticas do SELinux.
  • secon – policycoreutils – Exibe o contexto do SELinux a partir de um arquivo, programa ou entrada do usuário.
  • sediff – setools-console – Compara as políticas do SELinux.
  • seinfo – setools-console – Consulta as políticas do SELinux.
  • selinuxconlist – libselinux-utils – Exibe todos os contextos do SELinux que podem ser acessados por um usuário.
  • selinuxdefcon – libselinux-utils – Exibe o contexto padrão do SELinux para um usuário.
  • selinuxenabled – libselinux-utils – Indica se o SELinux está ativado.
  • semanage – policycoreutils-python – Gerencia as políticas do SELinux.
  • semodule – policycoreutils – Gerencia módulos de políticas do SELinux.
  • semodule_deps – policycoreutils – Exibe as dependências entre os pacotes de políticas do SELinux.
  • semodule_expand – policycoreutils – Expande um pacote de módulos de política do SELinux.
  • semodule_link – policycoreutils – Links pacotes do módulo de políticas SELinux juntos.
  • semodule_package – policycoreutils – Cria um pacote de módulos de política do SELinux.
  • sesearch – setools-console – Consulta as políticas do SELinux.
  • sestatus – policycoreutils – Exibe o modo SELinux e a política SELinux que estão em uso.
  • setenforce – libselinux-utils – Modifica o modo SELinux.
  • setsebool policycoreutils – Define valores booleanos do SELinux.
  • setfiles – policycoreutils – Define o contexto de segurança para um ou mais arquivos.
  • system-config-selinux – policycoreutils-gui – Fornece uma GUI que você pode usar para gerenciar o SELinux.
  • togglesebool – libselinux-utils – Inverte o valor atual de um booleano do SELinux.

Como usar SELinux parte 2

Como usar SELinux, muitos preferem desabilitar e você?

Foi bastante conteúdo, mas isso foi só a primeira parte.

Acredito que com tanto conteúdo assim você já pode iniciar seus estudos.

Guarde cada um dos pontos mencionados aqui, se você pretende fazer algum exame de certificação a parte 2 vai te ajudar ainda mais.

No próximo artigo vou buscar trazer alguns pontos que alguns importantes sobre o SELinux.

Muitos profissionais acabam desabilitando o SELinux, mas você precisa saber como usar SELinux.

SELinux faz parte da segurança do sistema, então não desabilite o SELinux.

Até o próximo artigo, um grande abraço.

Fim do artigo.

Clique aqui para voltar aos artigos.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Begin typing your search above and press return to search. Press Esc to cancel.