Liberando acessos ao ldconfig com SELinux enforced

Publicado por Davidson Rodrigues Paulo em 21/09/2007

[ Hits: 10.354 ]

Blog: http://davidsonpaulo.com/

 


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.


Outras dicas deste autor

Liberando NFS no firewall do Fedora

Como desmontar um compartilhamento NFS travado

Como ser mais produtivo

Script para manter VPN PPTP ativa

Remover rodapé dos erros do Squid sem recompilar

Leitura recomendada

Ativando o Multilib (forma fácil) no Slackware

Slackware Current - Teclado e mouse não funcionam [Resolvido]

Mantendo sua conexão discada ativa

Kitty Terminal - Instalação de Temas

Menu clássico no Unity

  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts