Pular para o conteúdo

Liberando acessos ao ldconfig com SELinux enforced

Dica publicada em Linux / Configuração
Davidson Rodrigues Paulo davidsonpaulo
Hits: 11.088 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar

Liberando acessos ao ldconfig com SELinux enforced

O SELinux provê ao Linux uma arquitetura de controle de acesso mandatório robusta e flexível na maioria dos subsistemas do kernel.

Traduzindo de forma bem simplista, o SELinux é para o Linux o que um firewall é para uma rede. Da memsa forma que o firewall controla o que sai e o que entra em uma rede, o SELinux controla o que cada processo pode fazer dentro do sistema operacional.

Na prática, o SELinux pode fazer coisas como, por exemplo, impedir que até mesmo o usuário root ou determinado processo do sistema possa excluir, modificar ou até mesmo visualizar determinado arquivo ou diretório, e não preciso dizer que isso é um recurso extraordinário de segurança.

No Fedora e nas distribuições derivadas dele (como Red Hat e CentOS) o SELinux é habilitado por padrão utilizando o modo reforçado (enforced). Esse modo, extremamente restritivo, oferece um alto nível de segurança ao sistema e é altamente recomendado para servidores corporativos ou estações de trabalho em que se deseje diminuir as chances de desastre por falha humana. Para aprender a usar a SELinux, é util utilizar o modo permissivo (permissive), onde a SELinux fica inativa, porém emitindo alertas como se estivesse atuando.

Ao habilitar o nível reforçado no SELinux, alguns acessos que não deveriam ser negados o serão, impedindo que alguns processos sejam executados corretamente. Um exemplo é o ldconfig, que cria os links e o cache das bibliotecas do sistema e precisa ser executado sempre que uma nova biblioteca é adicionada ou removida ao sistema. Com o SELinux habilitado e no modo reforçado, o acesso a qualquer biblioteca que não tenha sido instalada a partir de um RPM oficial será negado ao ldconfig e a outros processos.

Para resolver o problema, primeiro excluímos todos os logs do utilitário audit:

# rm -f /var/log/audit/*

Em seguida, executamos o ldconfig, para gerar as mensagens de erro do SELinux:

# ldconfig

Agora, utilizaremos o utilitário audit2allow, que transforma mensagens de erro do audit em regras permissivas do SELinux:

# audit2allow -M local < /var/log/audit/audit.log

Será gerado um arquivo local.pp com as regras para o SELinux, que devemos carregar com o comando:

# semodule -i local.pp

Se tudo tiver sido executado corretamente, uma nova execução do ldconfig ocorrerá sem erros.

Usando o utilitário de solução de problemas SELinux (Sistema / Administração / Solução de Problemas SELinux) é possível saber como resolver boa parte dos seus problemas. Isso porque, para cada erro acusado, é mostrada uma solução em "Allowing Access". Através dessa sessão foi possível para mim resolver os problemas de acesso a algumas bibliotecas do VirtualBox, que estavam impedindo que ele fosse executado.


Como usar o Dnsmasq para criar um cache de DNS local

Você conhece o Apatar?

Livro Squid, solução definitiva

Problema: notebook hiberna ou desliga quando fonte é desconectada

Você conhece o NetbootCD?

Transformando Ubuntu em Linux Mint sem perder seus arquivos

Mintmenu no Debian Jessie

DNS Report: Checando a configuração de domínios

Comando ifconfig do Arch Linux não funciona [RESOLVIDO]

Sarg e sua funcionalidade realtime

#1 Comentário enviado por removido em 12/12/2007 - 10:27h
Davidson, tenho muito a agradecer a você por esse seu artigo.

Graças a ele não precisei descontinuar um importante projeto por achar que minha distribuição apresentava um problema no ldconfig.

É isso ai.

Viva o linux!!!
#2 Comentário enviado por davidsonpaulo em 12/12/2007 - 10:34h
Olá, Thiago,

Fico feliz por saber que minha dica foi útil. Fiquei curioso em saber qual é o seu projeto.

Um abraço.

Contribuir com comentário

Entre na sua conta para comentar.