Problema de política do SELinux

1

Como qemu & O KVM está funcionando bem com o SELinux pronto para uso. Gostaria de habilitar o SELinux para melhorar o isolamento dos hóspedes no meu servidor CentOS 6. O problema é que estou usando um software de gerenciamento de virtualização de paridade que requer que o SELinux seja desativado. Como eles nunca vão implementar, agora estou tentando fazer isso funcionar sozinho ...

Embora eu pudesse consertar todos os problemas relacionados ao libvirt / qemu (mudar a localização padrão da imagem / lvm e consertar outro problema com o audit2allow) eu fiquei com o lighttpd customizado que eles estão usando para processar vários tarefas de gerenciamento.

Eu tentei adicionar uma regra personalizada com audit2allow, mas isso não funcionou. Então, como eu não sou um especialista em SELinux, estou apenas procurando uma maneira de

  • basta colocar o lighttpd no modo permissivo (para fazer o que for necessário)
  • aplica o SELinux somente para os processos qemu / libvirt que executam as VMs

Eu já encontrei isso no semanage manpage e acho que pode ser uma solução     Comando semanage permissive -a TYPE http_r mas isso só retorna: / usr / sbin / semanage: opção ruim

Suponho que isso ocorra porque eles não estão executando o repositório de dados do repositório CentOS e, portanto, a diretiva para o lighty está faltando.

Aqui está um pequeno trecho do audit.log

type=SYSCALL msg=audit(1393761691.786:1259): arch=c000003e syscall=9
success=yes exit=140369999609856 a0=0 a1=1fa588 a2=5 a3=802 items=0
ppid=1 pid=8532 auid=4294967295 uid=500 gid=500 euid=500 suid=500
fsuid=500 egid=500 sgid=500 fsgid=500 tty=(none) ses=4294967295
comm="php" exe="/usr/bin/php" subj=system_u:system_r:httpd_t:s0
key=(null) type=AVC msg=audit(1393761691.813:1260): avc:  denied  {
name_connect } for  pid=8532 comm="php" dest=5656
scontext=system_u:system_r:httpd_t:s0
tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket type=SYSCALL
msg=audit(1393761691.813:1260): arch=c000003e syscall=42 success=no
exit=-115 a0=4 a1=7fffa6ed55f0 a2=10 a3=0 items=0 ppid=1 pid=8532
auid=4294967295 uid=500 gid=500 euid=500 suid=500 fsuid=500 egid=500
sgid=500 fsgid=500 tty=(none) ses=4294967295 comm="php"
exe="/usr/bin/php" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1393761691.969:1261): avc:  denied  { nlmsg_write }
for  pid=8552 comm="tc" scontext=system_u:system_r:httpd_t:s0
tcontext=system_u:system_r:httpd_t:s0 tclass=netlink_route_socket
    
por justlovingIT 02.03.2014 / 13:14

1 resposta

2

O comando que você está procurando é

semanage permissive -a httpd_t
    
por 02.03.2014 / 15:41