O Security Enhanced Linux (SELinux) é um módulo de segurança do kernel Linux que impõe políticas obrigatórias de controle de acesso. Isso permite limitar um processo aos arquivos, diretórios e portas que sua política permite explicitamente. Isso pode bloquear o acesso mesmo quando as permissões de arquivo padrão concedem acesso.
Sobre esta tarefa
Plataformas suportadas
O MongoDB fornece uma política SELinux para uso com mongod. Isso está disponível para MongoDB Enterprise e MongoDB Community em sistemas que usam:
Red Hat Enterprise Linux ou distribuições relacionadas
MongoDB instalado com o gerenciador de pacote
Configuração suportada
Se seu sistema do MongoDB usar um valor personalizado para qualquer uma das seguintes configurações, você não poderá usar a política do SELinux do MongoDB :
Portas de conexão: porta MongoDB padrão
Diretório de dados:
dbPathDiretório de registro:
pathCaminho do ID do processo:
pidFilePath
Cobertura da política
A política do SELinux do MongoDB abrange apenas mongod. Se você quiser usar o SELinux em um sistema que também use mongos, mongosh ou mongocryptd, será necessário configurar uma política personalizada.
Compatibilidade com versões anteriores
Você deve executar o seguinte comando no diretório no qual a política do SELinux foi clonada anteriormente antes de fazer o downgrade para uma versão anterior do MongoDB :
sudo make uninstall
Personalizar políticas do SELinux
Você pode personalizar a política do SELinux do MongoDB com o comando semanage. Por exemplo, para adicionar a porta 30000 ao mongod_port_t, execute o seguinte comando:
sudo semanage port -at mongod_port_t -p tcp 30000
Isso configura o SELinux para permitir conexões TCP nas portas padrão do MongoDB e na porta 30000.
Antes de começar
Certifique-se de ter os pacotes de pré-requisitos instalados em seu sistema:
sudo dnf install git make checkpolicy policycoreutils \ selinux-policy-devel
Aplicação
O SELinux impõe políticas por padrão, o que significa que ele bloqueia processos que violam suas restrições configuradas. Em ambientes de desenvolvimento, os usuários às vezes desativam o SELinux ou o configuram para registrar, mas permitir todas as operações. Antes de começar, verifique se o SELinux está aplicando suas políticas.
Para verificar em qual modo o SELinux está, execute o seguinte comando:
getenforce
Enforcing
Se o comando retornar Permissive, você poderá redefini-lo para aplicá-lo com o comando setenforce:
sudo setenforce 1
Para tornar a alteração persistente, defina a variável SELINUX no arquivo /etc/selinux/config:
SELINUX=enforcing
Passos
O SELinux agora usa a política do MongoDB , permitindo que você execute mongod enquanto o SELinux está no modo de imposição.