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/shadow
arquivo, 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ê já 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?
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.fonte