O SELinux torna o Redhat mais seguro?

10

O SELinux torna o Redhat mais seguro?

Não me lembro do número de vezes que desativei o SELinux, porque isso frustrava minha capacidade de fazer as coisas funcionarem. Muitas vezes não havia razão óbvia para que as coisas não estivessem funcionando e eu tive que procurar no Google por que.

Dado que a maioria dos usuários casuais desabilita ou enfraquece a segurança quando parece atrapalhar, com a exclusão de usuários sérios e empreendedores do Redhat, o SELinux é realmente útil?

PS. Existe alguma ferramenta que ajuda a registrar, rastrear e gerenciar problemas do SELinux em todos os aplicativos?

vfclists
fonte

Respostas:

9

Sim, o Selinux torna o sistema mais seguro. Mas você precisará entender os conceitos e ter pelo menos conhecimento básico sobre o selinux e as ferramentas de auditoria.

O Selinux está registrando em /var/log/audit/audit.log (mas assegure-se de que o auditd esteja em execução), e há várias ferramentas para resolver problemas do selinux. Provavelmente, a maneira mais simples de usar é audit2allow

rvs
fonte
17

Sim, o SELinux torna o Red Hat (e qualquer outra distribuição Linux que realmente o use) mais seguro, assumindo que ele esteja em uso.

O SELinux implementa o controle de acesso obrigatório . Permissões normais do Unix, ACLs, etc., implementam controle de acesso discricionário . Os dois se complementam.

Para funcionar, o SELinux requer uma política, definindo quais ações no sistema podem ser permitidas. Embora seja possível criar uma política de sistema inteira do zero, a maioria das distribuições Linux envia uma política com base na chamada política de referência . Isso significa, entre outras coisas, que a configuração do SELinux nas distribuições será muito semelhante. (A maioria das distribuições Linux disponibiliza a política de referência do SELinux em seus repositórios de pacotes, embora ela possa não estar instalada por padrão.)

O SELinux funciona restringindo usuários e processos para executar apenas as ações permitidas na política. Por padrão, a política é negar; portanto, se a política não permitir explicitamente uma ação, isso não acontecerá. É por isso que você costuma ter problemas com o SELinux, impedindo algo que está tentando fazer.

Pelo lado positivo, isso também impede que explorações, mesmo explorações de 0 dia, fiquem fora de controle. Por exemplo, se o seu servidor Web (Apache) for explorado, o dano será limitado apenas às coisas que o Apache pode acessar. Não seria capaz de ler seu /etc/shadowarquivo, por exemplo, mesmo com uma exploração remota da raiz. Enquanto as permissões Unix (DAC) permitem que o root leia o arquivo, o SELinux (MAC) não permite que o processo comprometido saia dos limites.

O grande problema é que deve haver um módulo de política do SELinux carregado para o serviço. Se você instalar um serviço na sua caixa que não inclua um módulo de política do SELinux, ele será executado sem limites e poderá fazer o que quiser. O SELinux não se aplica a ele.

Outra coisa que você deve saber é tudo sobre booleanos . Esses parâmetros ajustáveis ​​são fornecidos pelas políticas do SELinux para personalizá-los para instalações específicas e permitir ou negar acesso com base nas necessidades de configuração local. Por exemplo, você pode conceder ao Apache acesso aos compartilhamentos do Samba, permitir que o Samba compartilhe diretórios pessoais do usuário e muitas outras coisas potencialmente úteis que são necessárias para algumas configurações, mas não para outras.

O melhor guia do SELinux que eu vi atualmente é o Guia do Usuário do Linux com Segurança Avançada da Red Hat . Isso o ajudará a começar a funcionar rapidamente, além de preencher os detalhes do que está acontecendo. Também inclui um guia abrangente de solução de problemas que ajuda você a executar seu processo no SELinux.

É útil?

O SELinux protege contra processos (e usuários, se você os confinou) fazendo coisas inesperadas. Limita severamente o dano que uma exploração remota pode causar. Se você nunca sofreu um compromisso remoto, tem (1) sorte e (2) provavelmente é novo. Se você trabalhou um compromisso remoto, você certamente não quer que ele nunca volte a acontecer.

Não é tão útil em um ambiente doméstico , a menos que você esteja executando serviços voltados para a Internet em casa (e algumas pessoas o fazem). Nesse caso, tudo o que foi dito acima se aplica.

O SELinux pode ser a última coisa que fica entre seus dados e um invasor com uma exploração de 0 dias que realmente deseja. Se você pode usá-lo, por que não?

Michael Hampton
fonte
3

Eu acho que o SELinux apenas estende o sistema de permissões tradicionais introduzindo configurações estendidas sobre as permissões. Isso torna seu sistema mais seguro? Eu acho que depende de como você usa o SELinux em seus aplicativos. Também não sou bom no SELinux, mas a configuração precisa de mais conhecimento sobre as limitações que ele pode fornecer. Mas também apresenta muitos problemas que você precisa investigar manualmente para superar

Troydm
fonte
1
O SELinux faz muito mais do que apenas estender as permissões tradicionais do POSIX. O SELinux pode limitar o acesso a determinadas portas de rede, por exemplo.
wzzrd
3

Existe um pacote que ajuda os usuários a encontrar problemas causados ​​pelo SELinux chamado setroubleshoot. Instale-o, configure-o para executar no início. Então, quando você receber uma negação do SELinux, isso será observado em /var/log/messages. Se você também estiver conectado à GUI, receberá uma notificação.

Kevin M
fonte