Principais erros do SELinux - Erros, Avisos E Resolução De Problemas

selinux-erros-avisos-e-resolucao-de-problemas

Aprenda a contornar problemas, bloqueios e travamentos que podem ser causados pela ferramenta SELinux. Como descobrir os motivos e providenciar as configurações corretas para o melhor funcionamento de seu sistema operacional.

SELinux – Erros, Avisos E Resolução De Problemas

Mas o que é o SELinux? Segundo definição do site do projeto:

O SELinux é um aprimoramento de segurança para o Linux, permite que usuários e administradores tenham controle sobre o acesso aos arquivos e módulos do sistema .

O acesso pode ser limitado em variáveis como as quais usuários e aplicativos podem acessar quais recursos. Os controles de acesso padrão do Linux, como os modos de arquivo (-rwxr-xr-x), são modificáveis pelo usuário e pelos aplicativos que o usuário executa. Por outro lado, os controles de acesso do SELinux são determinados por uma política carregada no sistema, que não pode ser alterada por usuários descuidados ou aplicativos mal comportados.

O SELinux também adiciona granularidade mais fina aos controles de acesso. Em vez de apenas conseguir especificar quem pode ler, escrever ou executar um arquivo, por exemplo. Assim o SELinux permite que você especifique quem pode desvincular, anexar, mover um arquivo e assim por diante. Então o SELinux permite que você especifique o acesso a muitos recursos além de arquivos, como recursos de rede e comunicação entre processos.

O que isso influencia em seu sistema Linux?

A grosso modo, podemos dizer que ele bloqueia o acesso a arquivos, módulos ou dispositivos de forma incomum e que não foram previamente permitidos. Quando algum processo (seja de usuário, aplicativo ou outro qualquer) tenta acessar algo no sistema e o SELinux reconhece que tal processo não possui permissão para acesso, este é bloqueado. Isso algumas vezes pode causar incômodo ao usuário com travamento de tarefas e/ou recursos necessários à alguma execução.

Um exemplo prático de “problema” causado pelo SELinux:

Hoje reinstalei meu sistema Fedora 28 e percebi que o desempenho estava precário. Para terem idéia do que eu estou falando, usando o Telegram no grupo do SempreUpdate quando eu tentava procurar uma GIF para enviar meu sistema travava. Logo entendi que o motivo era o driver Nouveau que é um projeto do FreeDesktop.org para os equipamentos Nvidia.

Assim a minha solução seria instalar o driver proprietário. Este já está disponível nos repositórios de meu Fedora 28 e isso facilita a instalação. Fui ao terminal, removi o Nouveau e instalei os drivers proprietários. Reiniciei o sistema e pra minha surpresa a tela ficou preta com somente a setinha do mouse aparecendo. O sistema não estava travado, pois tinha movimento do mouse e com combinação de CTRL+ALT+Fn tinha acesso aos TTy.

Procurando nos fóruns e sites de internet sinceramente não encontrei nada que me ajudasse. Resolvi então desinstalar o driver proprietário e tentar iniciar o sistema na interface gráfica. Para minha surpresa, o KDE carregou. Desfigurado ( em 640×480) mas carregou. E já no início da DE eu recebi uma mensagem do SELinux que na verdade eu não dei muita importância. Foi um grave erro. Ali estava a solução do meu problema.

Fiz várias outras tentativas de instalação e configuração e todas foram sem sucesso. Até que resolvi olhar os logs do sistema (/var/log/messages). Lá encontrei uma dica de oque poderia estar acontecendo.

A Causa Do “Problema”:

Pesquisando em sites sobre o SELinux aprendi que, os logs dele ficam em /var/log/audit e lá pesquisando percebi que o SDDM ( gerenciador de login gráfico do meu sistema) estava sendo bloqueado.

Iniciei o sistema novamente na interface gráfica e fui ao aplicativo do SELinux para ver o que ele havia me avisado e eu não tinha dado a devida importância. A mensagem avisava que o SDDM tentava acesso ao um arquivo de configuração que foi alterado pela instalação do driver nVidia e esse acesso estava sendo bloqueado. Assim:

A Solução Do “Problema”:

Para quem sabe ler, um texto em inglês é uma solução. Atentem-se para as ultimas três linhas da mensagem de log do SELinux: “Para permitir este acesso por enquanto execute:” e as duas linhas seguintes são os comandos.

Então eu executei os dois comando e reiniciei o sistema. Para minha (não) surpresa, o sistema iniciou normalmente até a tela de login gráfico. Após login, tudo normal também.

O Que Aprendemos Com Isso?

Vejo muito por aí vários sites mostrando simplesmente como desabilitar o SELinux e então “evitar” esse “problemas” que ele causa. Pessoal, por favor, não façam isso. Pois assim vocês estarão expondo seus sistemas a vários riscos, como permitir acessos indevidos a arquivos e dispositivos que podem comprometer todo seu sistema.

O correto nesses casos é estudar os logs, verificar cada linha do /var/log/audit/audit.log e tentar executar os comandos lá descritos. Sempre estará descrito o problema e como proceder para chegar a solução.

Identificando os erros você poderá indicar os SELinux o que/onde executar o desbloqueio e liberar o acesso ao recurso necessário.

Sei que o caso que descrevi foi um erro pessoal, mas fica como exemplo para que no futuro possamos verificar as causas desses tipos de erros.

Espero que seja proveitoso para todos. Não esqueça de participar de nosso grupo no Telegram e também de nos seguir em nosso Twitter. Um abraço a todos e até a próxima!