O que pode dar errado se desativarmos o selinux [fechado]

9

Nós herdamos vários servidores usados ​​de outra equipe. Alguns deles têm o SELinux ativado, outros não. Por causa do SELinux, estamos tendo problemas para configurar o ssh sem senha, nosso servidor da web, etc. Encontramos uma solução alternativa neste site de stackexchange , que é executado:

restorecon -R -v ~/.ssh

No entanto, como não precisamos do SELinux executando para o que fazemos, pode ser mais fácil desativá-lo do que lembrar que todos executem o cmd acima em qualquer diretório que precise de permissões.

Podemos desativar o SELinux sem nenhuma repercussão no futuro ou é melhor apenas redefinir a imagem do servidor? Uma coisa a notar; nosso grupo de TI está realmente ocupado, então recriar a imagem de um servidor não está no topo da lista, a menos que seja absolutamente necessário (precisa de um bom caso de negócios) ... ou alguém suborna seu chefe com uma garrafa de uísque ou uísque.

ATUALIZAÇÃO: Obrigado pela sugestão e pelo conselho de todos. Esses servidores serão todos usados ​​como servidores de desenvolvimento internos. Não haverá acesso externo a essas máquinas, portanto a segurança não é uma grande preocupação para nós. Nossos servidores atuais que estamos usando todos (de acordo com o meu conhecimento) não têm o SELinux ativado. Alguns dos que meu gerente acabou de adquirir fazem e são esses que estamos vendo desabilitar, para que tudo em nosso cluster seja uniforme.

Classificado
fonte
1
Respondi a uma pergunta semelhante no Android.se: Quão perigoso é o fato de o SELinux estar no modo "Permissivo"? O que devo ter cuidado? . A principal diferença entre o modo "Permissivo" e a desativação do SELinux é que você não receberá mais as mensagens de log do AVC e que o SELinux não manterá o rótulo dos arquivos atualizado, portanto será necessário redefinir os arquivos antes de ativá-los novamente.
WhiteWinterWolf #
"O que poderia dar errado?"
Scai
3
@scai Essa é realmente uma boa pergunta. Como Sato Katsura aponta, o SELinux é difícil de usar de maneira eficaz. Um falso senso de segurança é prejudicial à segurança.
Rhymoid

Respostas:

14

SELinux é um recurso de segurança do sistema operacional. Ele foi projetado para ajudar a proteger algumas partes do servidor de outras partes.

Por exemplo, se você executa um servidor da web e possui algum código "vulnerável" que permite que um invasor execute comandos arbitrários, o SELinux pode ajudar a atenuar isso, impedindo o servidor da web de acessar arquivos que não é permitido ver.

Agora você pode desativar o SELinux e não deve quebrar nada. O servidor continuará funcionando normalmente.

Mas você desativou um dos recursos de segurança.

Stephen Harris
fonte
10
O SELinux funciona bem apenas quando configurado corretamente. No entanto, o SELinux é tão complicado que ninguém tem tempo e / ou conhecimento para configurá-lo corretamente e, portanto, acaba desativado ou como uma dor perpétua na parte traseira para o administrador. No entanto, vocês continuam investindo fé nele como um recurso de segurança .
Satō Katsura
3
Concordo que o selinux é um PITA para administrar, mas ainda é justo e inteiramente preciso chamá-lo de um recurso de segurança. para aqueles que querem ou precisam investir tempo em aprender e administrá-lo (não eu), é inestimável - por exemplo, administradores de sistemas para um site grande e de alto perfil, conhecido como um alvo atraente para crianças de script em todo o mundo.
cas
2
@SatoKatsura Simplesmente porque é difícil de configurar ou difícil de entender não justifica desativar um mecanismo de segurança. Desde que esse mecanismo de segurança seja realmente necessário, o que nem sempre é fácil de decidir.
Scai
@scai Eu não disse que deveria (ou não) deveria ser desativado. O que estou dizendo é que o modelo subjacente do SELinux é falho. Algumas pessoas argumentam que todos os mecanismos de segurança que podem ser desativados são falhos.
Satō Katsura
@SatoKatsura sim, é por isso que ter senhas é completamente inútil porque elas podem ser desativadas (por exemplo, com pam ou nss ou apenas com uma senha em branco). BTW, eu nunca afirmei que você disse que o selinux deveria ser desativado. Eu estava apenas contestando sua afirmação de que não é um recurso de segurança real.
cas
8

Existem visualizações variadas do SELinux. Em muitos casos, alguns aplicativos não funcionam bem com o SELinux, de modo que essa decisão é discutível (o Oracle é um exemplo).
Geralmente, o SELinux é um mecanismo de proteção para colocar mais um obstáculo no caminho de um bandido que quer subverter seu sistema.

Nas minhas funções anteriores como Administrador de Sistemas em grandes empresas ... geralmente desabilitei o SELinux. Não tive tempo de rastrear todos os erros do SELinux em todos os sistemas usados ​​por usuários, desenvolvedores e gerentes.

Antes de desabilitar as coisas, você pode querer começar redefinindo os arquivos no sistema de volta ao que deveriam ser. O método mais fácil que encontrei é inserir o comando:

 # /sbin/fixfiles onboot

OU

 # touch /.autorelabel

Em seguida, reinicie e aguarde, pois o sistema levará a mesma quantidade de tempo para verificar e redefinir os rótulos errados do SELinux no sistema. Depois disso, você pode ficar bem, pois corrige e corrige rótulos não conformes do SELinux que podem ter sido modificados antes de você tentar administrar o servidor.

No entanto, se isso não acontecer, o sistema não será prejudicado por NÃO ter o SELinux no modo de imposição. É apenas uma camada extra de proteção.

mdpc
fonte
3
discutível, não muda. Mas perfeitamente correto; nem todos os sistemas precisam do selinux.
Phyrfox
+1 por aconselhar a tentar rotular globalmente os arquivos antes de desativar o SELinux como um substituto. O SELinux destina-se a evitar software inesperado e comportamento dos usuários. Em sistemas onde não há comportamento esperado bem definido, o SELinux pode realmente causar mais mal do que bem (as políticas fornecidas pelo sistema operacional tentam ser o mais genéricas possível, mas às vezes isso não é suficiente).
WhiteWinterWolf # 13
Obrigado! /sbin/fixfiles onboottrabalhou para mim no CentOS, não é assim com touch /.autorelabel. A execução sealert -a /var/log/audit/audit.logmostra 0 alertas agora. @mdpc Qual é a diferença entre esses dois comandos?
Joseph K.
5

Simplificando, desabilitar mecanismos de controle de acesso obrigatório (MAC) como o SELinux não é uma boa idéia e pode colocá-lo em desvantagem de segurança se um bandido contornar os controles de acesso baseados em nome, implementados pelo DAC (Discretionary Access Control).

Se fosse eu, eu faria algo como

semanage fcontext -a -t ssh_home_t ~/.ssh # Adding the policy
restorecon -R -v ~/.ssh # Applying the policy

para ter certeza absoluta sobre a etiqueta de tipo atribuída recursivamente a partir de~/.ssh

sjsam
fonte
1
É estilizado "SELinux". Linux não é um acrônimo, e a parte "SE" é um inicialismo.
Rhymoid
@Rhymoid: Essa é realmente uma boa nota. Na verdade, o que escrevi foi acidental.
Sjsam
2

De um modo geral, você não deve desativar o SELinux. Existem ferramentas que podem ajudá-lo a entender o que deu errado. Meu favorito é o exemplo de uso do sealert:

sealert -a /var/log/audit/audit.log

OFC, você sempre pode configurar o SELinux no modo permissivo para depuração, mas manter o SELinux desativado ou permissivo é ensinado como falha grave de segurança pela Red Hat.

Alex Baranowski
fonte