JanelasMacSoftwareConfiguraçõesSegurançaProdutividadeLinuxAndroidDesempenhoConfiguraçãoApple Tudo

Como Proteger o Fedora Usando o SELinux

Editado 3 Semanas atrás por ExtremeHow Equipe Editorial

FedoraSegurançaSELinuxSistema OperacionalFirewallConfiguraçãoRedeIniciantesUsuários AvançadosComputadores

Como Proteger o Fedora Usando o SELinux

Tradução atualizada 3 Semanas atrás

Security-Enhanced Linux (SELinux) é uma arquitetura de segurança integrada ao kernel do Linux que oferece um mecanismo de controle de acesso obrigatório (MAC) versátil. O Fedora, sendo uma das distribuições Linux mais populares, utiliza o SELinux para aumentar sua segurança, controlando o acesso a programas e arquivos. Neste guia detalhado, exploraremos como proteger sistemas Fedora usando o SELinux, como gerenciar suas políticas, lidar com cenários comuns e maximizar seus benefícios de segurança.

Entendendo o modo SELinux

O SELinux opera em três modos diferentes, cada um dos quais fornece diferentes níveis de segurança. Vamos examiná-los:

Verificando o status do SELinux

Antes de fazer qualquer alteração, é importante verificar o status atual do SELinux no seu sistema Fedora. Isso pode ser feito usando o seguinte comando no terminal:

$ sestatus

Este comando fornecerá informações sobre o modo atual, versão da política e outros detalhes do estado do SELinux. Entender se o seu sistema está em modo de imposição, permissivo ou desabilitado ajudará a prosseguir.

Alternando modos do SELinux

Alternar entre os modos do SELinux é simples, mas requer privilégios administrativos (root). Para alterar os modos, edite o arquivo localizado em /etc/selinux/config e atualize a linha SELINUX= para enforcing, permissive ou disabled.

# Este arquivo controla o estado do SELinux no sistema.
# SELINUX= pode ter um dos três valores:
#     enforcing - A política de segurança SELinux é aplicada.
#     permissive - O SELinux imprime avisos em vez de aplicar.
#     disabled - O SELinux está totalmente desabilitado.
SELINUX=enforcing
# SELINUXTYPE= pode ter um dos dois valores:
#     targeted - Processos direcionados são protegidos,
#     minimum - Modificação da política direcionada.
#     MLS - Proteção de Segurança de Nível Múltiplo.
SELINUXTYPE=targeted

Após fazer as alterações, reinicie o sistema para aplicá-las. Você também pode usar o comando setenforce para alternar temporariamente entre os modos de imposição e permissivo sem reiniciar:

# Defina o SELinux para o modo de imposição
$ sudo setenforce 1
# Defina o SELinux para o modo permissivo
$ sudo setenforce 0

Tipos de políticas do SELinux

O SELinux usa um conjunto de políticas para definir controle de acesso. Os dois tipos principais de políticas são segurança direcionada e de nível múltiplo. O Fedora geralmente usa política direcionada, que oferece segurança direcionada para processos-chave:

Gerenciando booleanos do SELinux

Booleanos do SELinux são interruptores que ativam ou desativam regras específicas da política SELinux sem modificar a própria política. Isso permite maior flexibilidade por meio de ajustes temporários. Para listar todos os booleanos disponíveis, use o comando:

$ semanage boolean -l

Cada booleano possui uma descrição, um valor atual e um valor padrão. Para alterar o valor de um booleano, use o comando setsebool:

# Ative um booleano
$ sudo setsebool httpd_enable_homedirs on
# Desative um booleano
$ sudo setsebool httpd_enable_homedirs off

Para garantir que as alterações sejam mantidas após reinicializações, adicione a opção -P:

$ sudo setsebool -P httpd_enable_homedirs on

Contexto e rótulos no SELinux

A segurança global no SELinux gira em torno de contextos e rótulos. Arquivos, diretórios e processos no Fedora têm um contexto único composto por um usuário, função, tipo e nível. Entender os contextos e rotulá-los adequadamente é crucial para manter a segurança do SELinux. Você pode visualizar o contexto dos arquivos usando o comando ls -Z:

$ ls -Z /var/www/html

Se você precisar alterar a referência a um arquivo, use o comando chcon:

$ sudo chcon -t httpd_sys_content_t /var/www/html/index.html

É importante notar que as alterações manuais nos contextos com chcon podem ser revertidas em operações de relabeling. Para fazer alterações permanentes, você usaria políticas e o comando semanage fcontext.

Resolução de problemas do SELinux

Trabalhar com o SELinux pode, às vezes, levar a erros de permissão. Isso é frequentemente um sinal de que as regras de política estão sendo aplicadas corretamente, mas pode interromper o fluxo de trabalho se inesperado. Aqui está como você pode resolver problemas de permissões do SELinux:

  1. Verifique os logs: O SELinux registra a maioria das negações de acesso em /var/log/audit/audit.log. Você pode usar ausearch para analisar:
  2. $ ausearch -m avc -ts recent
  3. Gere um relatório: Use o comando sealert do solucionador de problemas do SELinux para obter informações de diagnóstico detalhadas:
  4. $ sudo sealert -a /var/log/audit/audit.log
  5. Ajuste o modo de imposição: Para verificar se um aplicativo está com problemas devido ao SELinux, mude temporariamente para o modo permissivo e monitor as syslogs.

Criando políticas personalizadas do SELinux

Embora as políticas padrão do Fedora cubram muitos cenários, usuários avançados podem criar políticas personalizadas do SELinux para atender a casos de uso únicos. Para isso, você escreverá arquivos de política (geralmente terminando em .te) e os compilará usando as ferramentas checkmodule e semodule_package:

# Escreva sua política em um arquivo .te
module mycustom 1.0;
require {
    type user_home_t;
    type httpd_t;
    class file { read write };
}
# Permitir que o processo httpd leia e escreva arquivos de home do usuário
allow httpd_t user_home_t:file { read write };

Em seguida, compile e instale seu módulo personalizado:

$ checkmodule -M -m -o mycustom.mod mycustom.te
$ semodule_package -o mycustom.pp -m mycustom.mod
$ semodule -i mycustom.pp

Restaurando o contexto padrão do SELinux

Se o contexto de um arquivo ou diretório estiver incorreto, isso pode causar problemas de acesso. Você pode usar o comando restorecon para restaurar o contexto padrão do SELinux:

$ sudo restorecon -Rv /path/to/directory

Este comando redefine recursivamente o contexto para coincidir com a política padrão para esse caminho.

Conclusão

O SELinux adiciona uma camada de segurança essencial a qualquer sistema Fedora. Quer você seja um indivíduo protegendo sua configuração doméstica ou um gerente de empresas mantendo a segurança em toda a organização, entender as capacidades do SELinux é de extrema importância. Ao se familiarizar com os modos, políticas, booleanos, contextos e criação de políticas do SELinux, você pode utilizar esta poderosa ferramenta de segurança para garantir que o seu sistema Fedora permaneça robusto contra ataques e acessos não autorizados.

Se você encontrar algo errado com o conteúdo do artigo, você pode


Comentários