Selinux para iniciantes usando o CentOS

Selinux para iniciantes usando o CentOS
Desenvolvido pela NSA para impedir o acesso e as intrusões malévolas, o Linux ou o Selinux, com segurança, é um recurso de controle de acesso avançado que é enviado com a maioria dos distritos Linux modernos. O Selinux é definido como o sistema de controle de acesso obrigatório (MAC) desenvolvido como um substituto para o Sistema de Controle de Acesso Discricionário (DAC).

O Selinux pode parecer assustador e muito difícil de implementar na maioria dos sistemas modernos. No entanto, a configuração do Selinux tem enormes benefícios, tanto na imposição de segurança quanto de problemas.

Este tutorial discutirá vários conceitos implementados por Selinux e explorará vários métodos práticos de implementar o Selinux.

Nota: Antes de começarmos, é bom usar os comandos neste tutorial como usuário root ou usuário do grupo Sudoers.

Instale os pacotes Selinux

Vamos instalar vários pacotes Selinux, que por sua vez ajudarão a trabalhar com políticas de Selinux.

Antes de continuarmos a instalar os pacotes Selinux, é bom verificar que estão instalados no sistema atual.

Na maioria das instalações de distribuições REHL, alguns pacotes são instalados por padrão. Esses pacotes incluem:

  1. SETOOLS - Este pacote é usado para monitorar logs, políticas de consulta e gerenciamento de arquivos de contexto.
  2. PolicyCoreutils -Python - fornece utilitários principais do Python para gerenciar o Selinux
  3. Policicoreutils - Este pacote também fornece utilitários para gerenciar o Selinux.
  4. MCSTRANS - McStrans fornece daemon de tradução do Selinux, que traduz vários níveis em formatos fáceis que podem ser entendidos facilmente.
  5. Setools -Connsole - semelhante ao setols.
  6. Selinux -Policy - fornece uma referência para configurar a política do Selinux
  7. Selinux-Policy-Targeted-semelhante à policéia do Selinux
  8. Libselinux -Utils - Selinux Libselinux Utilitários que ajudam a gerenciar o Selinux
  9. SetroubleLeshaot -Server - Ferramentas para solucionar problemas de Selinux

Para verificar quais pacotes já estão instalados no seu sistema, você pode usar o comando rpm -qa e transmitir o resultado para grep for selinux como:

rpm -qa | Grep Selinux
Libelinux-Utils-2.9-4.EL8_3.x86_64
RPM-PLUGIN-SELinux-4.14.3-4.EL8.x86_64
Selinux-policy-Targeted-3.14.3-54.EL8_3.2.Noarch
Python3-Libselinux-2.9-4.EL8_3.x86_64
Selinux-Policy-3.14.3-54.EL8_3.2.Noarch
Libelinux-2.9-4.EL8_3.x86_64

Isso deve fornecer uma saída de todos os pacotes instalados para suporte a Selinux

Se não todos os pacotes Selinux estão instalados no seu sistema, use Yum para instalá -los como mostrado no comando abaixo:

Yum Instalar policicoreUtils PolicicoreUtils-python-Utils Selinux-Policy Selinux-policy-Target LibSelinux-Utils SetroubleLes-Setols Setools Setools-Cononsole Mcstrans

Modos e estados Selinux

Vamos agora começar a brincar com os modos Selinux, especificamente, Selinux.

Modos Selinux

Quando ativado, o Selinux pode ser três modos possíveis:

  • Aplicação
  • Permissivo
  • Desabilitado

Modo de aplicação

Se o modo Selinux for cumprir, ele garantirá que nenhum acesso não autorizado ao sistema por qualquer usuário ou processos seja negado. O modo de aplicação também mantém os registros de quaisquer tentativas de acesso não autorizado.

Modo permissivo

O modo permissivo age como um estado de Selinux parcialmente habilitado. Nesse modo, nenhum acesso é negado, pois a Selinux não aplica suas políticas neste modo. No entanto, o modo permissivo mantém um registro de qualquer tentativa de violação política. Esse modo é muito eficiente para testar antes de habilitá -lo completamente, pois usuários e componentes ainda podem interagir com o sistema, mas ainda coletando toras. Isso permite que você ajuste seu sistema de maneiras que você achar adequado.

Modo desativado

O modo desativado também pode ser visto como um estado deficiente em que o Selinux está desativado e não oferece nenhuma segurança.

Estados de Selinux

Depois que o Selinux é instalado em um sistema. Pode ter estados binários: habilitado e desativado. Para ver o estado de Selinux, use o comando:

getenforce
Desabilitado

A saída acima indica que o Selinux está atualmente desativado.

Você também pode usar o comando sestatus, como mostrado abaixo:

Sestatus
Status do Selinux: desativado

Ativar e desativar o Selinux

Os estados e a configuração do Selinux são tratados pelo arquivo de configuração localizado em/etc/Selinux/config. Você pode usar o comando CAT para visualizar seu conteúdo.

gato/etc/selinux/config
#Este arquivo controla o estado de Selinux no sistema.
#Selinux = pode levar um desses três valores:
#enforcing - A política de segurança do Selinux é aplicada.
#Permissive - Selinux impressa avisos em vez de aplicar.
#Disabled - Nenhuma política do Selinux é carregada.
Selinux = Aplicação
#SelinuxType = pode levar um desses três valores:
# direcionado - os processos direcionados estão protegidos,
# mínimo - modificação da política direcionada. Somente processos selecionados estão protegidos.
# MLS - Proteção de segurança de vários níveis.
SelinuxType = direcionado

Na saída acima, temos duas diretivas principais ativadas. A diretiva Selinux especificou o modo em que o Selinux está configurado. A Diretiva SelinuxType especifica o conjunto de políticas do Selinux. Por padrão, o Selinux usa uma política segmentada que permite personalizar permissões de controle de acesso. A outra política é segurança multinível ou MLS.

Você pode encontrar, política mínima em algumas versões.

CD/etc/Selinux/
[ls -l
Total 4
-RW-R-R-- 1 raiz da raiz 548 16 de fevereiro 22:40 Config
DRWXR-XR-X 1 raiz da raiz 4096 16 de fevereiro 22:43 MLS
-RW-R-R-- 1 raiz de raiz 2425 21 de julho de 2020 Semanage.conf
DRWXR-XR-X 1 raiz 4096 de fevereiro 22:40 Alvo

Vamos agora ver como ativar o Selinux no sistema. Recomendamos primeiro definir o modo Selinux como permissivo e não forçado.

nano/etc/Selinux/config

Agora edite a diretiva Selinux como:

Selinux = permissivo

Depois de salvar o arquivo, emita uma reinicialização do sistema.

reinício

NOTA: Recomendamos definir a diretiva Selinux para permissiva antes de aplicar o Selinux.

Depois de reiniciar o sistema, verifique se há todos os logs relatados por Selinux in/var/log/mensagens.

Em seguida, verifique se você não tem erros e aplica a Selinux definindo a diretiva para aplicar em/etc/selinux/config

Finalmente, você pode visualizar o status do Selinux usando o comando sestatus:

Status do Selinux: Ativado
Selinuxfs Mount:/sys/fs/Selinux
Diretório raiz do Selinux: /etc /Selinux
Nome da política carregada: direcionado
Modo atual: aplicação
Modo do arquivo de configuração: erro (sucesso)
Política MLS Status: Ativado
Política Deny_unknown Status: permitido
Verificação de proteção de memória: real (segura)
MAX Kernel Policy Version: 31

Você também pode usar o comando setEnforce para alternar entre vários modos Selinux. Por exemplo, para definir o modo como permissivo, use o comando:

Setenforce permissivo

Este modo é temporário e será restaurado para um no arquivo de configuração após uma reinicialização.

Sestatus
Status do Selinux: Ativado
Selinuxfs Mount:/sys/fs/Selinux
Diretório raiz do Selinux: /etc /Selinux
Nome da política carregada: direcionado
Modo atual: permissivo
Modo do arquivo de configuração: aplicação
Política MLS Status: Ativado
Política Deny_unknown Status: permitido
Verificação de proteção de memória: real (segura)
MAX Kernel Policy Version: 31

Política e contexto de Selinux

Para evitar confusão para iniciantes do Selinux, não vamos mergulhar profundamente em como as políticas do Selinux são implementadas, mas simplesmente tocem nele para lhe dar uma ideia.

O Selinux funciona implementando políticas de segurança. Uma política de Selinux refere -se a uma regra usada para definir direitos de acesso para todos os objetos do sistema. Objetos se referem a usuários, processos, arquivos e funções.

Cada contexto é definido na forma do usuário: função: tipo: nível.

Por exemplo, crie um diretório em seu diretório doméstico e visualize seu contexto de segurança do Selinux, como mostrado nos comandos abaixo:

mkdir ~/linuxhint_dir
LS -Z ~/ | Grep Linuxhint

Isso exibirá a saída como mostrado abaixo:

UNNFINED_U: Object_R: user_home_t: S0 Linuxhint_dir

Você também pode encontrar outros diretórios com os contextos de segurança como:

Sistema: _u: object_r: user_home_t: s0

Você pode perceber que a saída acima segue a sintaxe do usuário: Função: Tipo: Nível.

Conclusão

Esse foi um tutorial para iniciantes para Selinux usando o CentOS 8. Embora o tutorial tenha sido projetado para iniciantes, é mais do que suficiente para colocar os pés correndo em Selinux e remover a natureza intimidadora do Selinux.

Obrigado pela leitura.