Pular para o conteúdo

Liberando acessos ao ldconfig com SELinux enforced

Dica publicada em Linux / Configuração
Davidson Rodrigues Paulo davidsonpaulo
Hits: 11.090 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.


Mixagem ao vivo? É com o Mixxx

Fazendo o rpm voltar a funcionar depois de remover o sqlite

Livro Squid, solução definitiva

Criando backup tar multi-volume usando FIFO

Como juntar dinheiro para cursos e certificações

Um comando e tenha JAVA Oracle no Ubuntu

Geany - Dark Theme e Colorschemes - Tutorial [Vídeo]

Espelhos Debian Wheezy

Instalando Slamd64 e talvez até o Slackware 11 em HD sata

Configuração do GRUB no PCLinuxOS 2009-2 - muito interessante e prática

#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.