Ativar o SELinux no contêiner Centos7 LXC com o host do Ubuntu 14.04

3

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!)

  • Definindo SELINUX = impondo em / etc / selinux / config
  • Removendo o link simbólico para / bin / false que o modelo apontou / usr / sbin / selinuxativado para e restabeleceu o arquivo original
  • Definir / selinux / impor a 1
  • Instalou o pacote com o selinux-policy-targeting que estava ausente anteriormente
  • Verificado meu kernel suporta o SELinux
  • Criado /.autorelabel para tentar rotular novamente o sistema de arquivos, que parece não ter sido selecionado em uma reinicialização do contêiner (o arquivo ainda está lá)
  • Tentou usar fixfiles para reclassificar para fs manualmente, o que resulta em um erro informando que o SELinux não está ativado.

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.

    
por Dave Birch 03.08.2015 / 16:31

2 respostas

8

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

    
por 03.08.2015 / 16:40
3

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.

    
por 03.08.2015 / 18:29

Tags