Selinux
precisa estar em execução em seu host físico, porque Selinux
é executado no lado do kernel e seu contêiner compartilha o kernel com o host físico.
O contêiner é um processo normal executado em outro namespace
Estou tentando configurar um contêiner LXC para testes que estão executando o CentOS 7 com o SELinux habilitado para atender aos requisitos de um teste que estou tentando executar.
Apesar de todos os meus esforços, ainda não consigo obter a saída de getenforce para retornar qualquer coisa, exceto "Disabled".
O contêiner foi criado inicialmente usando o seguinte comando lxc:
sudo lxc-create -n <name> -t download -- -d centos -r 7 -a amd64
Eu configurei o arquivo de configuração do container para usar o fedora.common.conf para resolver problemas com uma inicialização lenta e executei alguns outros bits de bootstrapping, mas nada que eu possa pensar afetaria o SELinux.
Eu tentei / verifiquei o seguinte para tentar ativá-lo (e provavelmente mais algumas coisas que esqueci!)
Eu ainda não fui tão longe a ponto de habilitar o SELinux no host, já que tenho certeza de ter visto contêineres do docker rodando o CentOS7, que conseguem executá-lo sem que o host necessite do SELinux instalado ou em execução.
Eu pesquisei tudo o que posso pensar e fiz uma pesquisa por aqui e não consegui encontrar nenhuma outra sugestão de por que não consigo ativar o SELinux nesse contêiner do LXC, alguém pode ajudar?
Estou quase pronto para desistir e criar um host do CentOS7 para executar meus containers do CentOS7, mas realmente espero que isso não seja necessário.
O SELinux não é namespaced, portanto, contêineres individuais não podem ter suas próprias políticas separadas do SELinux. O SELinux sempre parecerá estar "desativado" em um contêiner, embora esteja sendo executado no host.
Para mais informações, consulte Introdução aos contêineres Linux .
Se forem as políticas do SELinux que você está testando, use uma máquina virtual completa.