Editado 6 meses atrás por ExtremeHow Equipe Editorial
SegurançaSELinuxConfiguraçãoPolíticasLinha de comandoAplicaçãoSysAdminMonitoramentoMelhores PráticasControle de Acesso
Tradução atualizada 6 meses atrás
SELinux, que significa Security-Enhanced Linux, é uma arquitetura de segurança integrada no kernel que fornece um mecanismo para suportar políticas de controle de acesso de segurança. Seu objetivo é impor políticas do sistema operacional que limitem as capacidades de programas e protejam o sistema de potenciais vulnerabilidades. Configurar o SELinux no seu sistema baseado em Linux pode ajudar a alcançar um ambiente mais seguro. Este guia abrangente explica como configurar o SELinux em uma máquina Linux passo a passo.
Antes de configurar o SELinux, é importante entender os modos em que o SELinux pode operar. Esses modos determinam como o SELinux gerencia o controle de acesso no seu sistema operacional.
Para configurar o SELinux de forma eficaz, você precisa verificar seu estado atual. Isso ajudará a entender se o SELinux está ativo ou não e qual modo está usando atualmente.
Abra um terminal e insira o seguinte comando para verificar o status:
getenforce
Você também pode usar o seguinte comando para obter informações mais detalhadas:
sestatus
Este comando mostrará o status atual como Enforcing
, Permissive
ou Disabled
.
Você pode mudar o modo SELinux temporariamente ou permanentemente. Muitas vezes é útil mudar o modo temporariamente para testes ou solução de problemas, mas mudanças permanentes são necessárias para tornar a configuração permanente após uma reinicialização.
Para mudar o modo temporariamente sem reiniciar o sistema, você pode usar o comando setenforce
. Por exemplo, para mudar para o modo enforcing, execute:
sudo setenforce 1
Para mudar para o modo permissive, execute:
sudo setenforce 0
Para tornar a mudança permanente, atualize o arquivo de configuração SELinux localizado em /etc/selinux/config
. Abra este arquivo usando um editor de texto:
sudo nano /etc/selinux/config
Procure a linha que começa com SELINUX=
e altere o seu valor para enforcing
, permissive
ou disabled
dependendo das suas necessidades. Por exemplo:
SELINUX=enforcing
Salve e feche o arquivo, depois reinicie o seu sistema para efetuar as mudanças.
Políticas de SELinux definem as regras de segurança impostas pelo SELinux. Estas políticas controlam as permissões concedidas a vários usuários e serviços no sistema. As políticas mais comumente usadas são:
Para descobrir a política atualmente em uso, execute o seguinte comando no terminal:
sestatus | grep "Loaded policy name"
Para gerenciar eficazmente o SELinux, pode ser necessário instalar ferramentas e pacotes relacionados, que variam de acordo com a distribuição. Abaixo estão alguns pacotes comuns que podem ser úteis.
Use o gerenciador de pacotes apt
para instalar as ferramentas SELinux:
sudo apt update sudo apt install policycoreutils selinux-utils setools
Use o gerenciador de pacotes yum
ou dnf
para instalar as ferramentas SELinux:
sudo yum install policycoreutils selinux-policy setools
Entender como habilitar ou desabilitar políticas SELinux para serviços específicos pode ser importante para atingir o nível de segurança necessário sem interromper a funcionalidade pretendida dos serviços. SELinux usa booleanos para alternar políticas para funcionalidades específicas.
Para listar os booleanos SELinux disponíveis, execute o seguinte comando:
getsebool -a
Para mudar o valor do booleano temporariamente (até a próxima reinicialização):
sudo setsebool httpd_enable_homedirs on
Para mudar o valor do booleano permanentemente, use a opção -P
, que grava a mudança no disco:
sudo setsebool -P httpd_enable_homedirs on
SELinux usa contextos (também chamados de rótulos) para determinar permissões em arquivos e processos. Às vezes, é necessário definir ou mudar esses contextos manualmente. Você pode visualizar o contexto de um arquivo com o comando ls -Z
:
ls -Z /var/www/html
Se precisar mudar o contexto de um arquivo, use o comando chcon
. Por exemplo, para mudar o arquivo para o contexto apropriado para o servidor web:
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
Se um arquivo tiver o contexto SELinux incorreto, você pode restaurá-lo para seu contexto padrão usando o comando restorecon
:
sudo restorecon -Rv /var/www/html
Este comando restaurará recursivamente o contexto SELinux correto para o diretório especificado.
Quando o SELinux está no modo enforcing, às vezes pode bloquear ações legítimas, especialmente quando aplicativos personalizados são instalados. Resolver problemas no SELinux requer análise de logs e compreensão do porquê algo foi negado.
Mensagens do SELinux são registradas em /var/log/audit/audit.log
ou, em alguns sistemas, /var/log/messages
. Para visualizar o log, use um editor de texto ou o comando tail
:
sudo tail -n 50 /var/log/audit/audit.log
Os logs podem ser complexos e extensos, então ferramentas especializadas como audit2allow
podem ajudar a entendê-los. Esta ferramenta converte entradas de log em formatos legíveis por humanos e até sugere as políticas necessárias para permitir ações não aprovadas.
grep AVC /var/log/audit/audit.log | audit2allow -m custompolicy
O comando acima pode ajudar a criar um módulo SELinux que pode permitir uma ação específica. Tenha cuidado ao permitir ações, pois isso pode reduzir a segurança geral do seu sistema.
Configurar o SELinux no Linux envolve entender os diferentes modos, verificar o estado, mudar modos, trabalhar com políticas e booleanos, rotular arquivos e restaurar contextos. O SELinux é um sistema poderoso que melhora significativamente a segurança do seu ambiente Linux ao impor controles de acesso rigorosos. Adequadamente configurado, pode defender contra ameaças que buscam acesso não autorizado ou interrupção.
Certifique-se de monitorar constantemente os logs e manter uma política atualizada para se adaptar ao software recém-instalado e aos requisitos do sistema em mudança. O SELinux pode parecer complicado inicialmente, mas à medida que se familiariza com seus recursos, torna-se uma ferramenta indispensável para melhorar a segurança no Linux.
Se você encontrar algo errado com o conteúdo do artigo, você pode