como eu construo / aplico um arquivo de política do selinux, no redhat 7?

1

Estou tentando instalar o RabbitMQ no Redhat Linux 7 (RHEL7). Eu segui as instruções no site do RabbitMQ e ele foi instalado corretamente. No entanto, ele não será executado porque o SELinux está impedindo que o Erlang se vincule à porta 25672.

Encontrei os arquivos de políticas do SELinux no repositório do SELinux no github, mas não sei como criá-los e aplicá-los.

Minha pesquisa no google não foi bem-sucedida, pois continuo fazendo referências a outras distribuições do Linux ou ao uso do audit2allow.

Como eu aplico os arquivos de política rabbitmq do link à minha caixa RHEL7?

    
por Derick Bailey 13.01.2015 / 17:51

2 respostas

0

Deu uma olhada para ver o contexto que sua porta usa:

# seinfo --portcon=25672
    portcon tcp 25672 system_u:object_r:rabbitmq_port_t:s0
    portcon tcp 1024-32767 system_u:object_r:unreserved_port_t:s0
    portcon udp 1024-32767 system_u:object_r:unreserved_port_t:s0

Então, eu olhei para ver o que poderia acontecer:

# sesearch -A -s rabbitmq_t -t rabbitmq_port_t
Found 5 semantic av rules:
   allow rabbitmq_t rabbitmq_port_t : tcp_socket { name_bind name_connect } ; 
   allow nsswitch_domain port_type : tcp_socket { recv_msg send_msg } ; 
   allow nsswitch_domain port_type : udp_socket { recv_msg send_msg } ; 
   allow rabbitmq_t port_type : tcp_socket { recv_msg send_msg } ; 
   allow rabbitmq_t port_type : udp_socket { recv_msg send_msg } ; 

Por isso, suspeito que você precise reclassificar seu executável rabbitmq como rabbitmq_exec_t para que ele possa ser vinculado à porta. Sua parte da política de base no RHEL7. (É por isso que você deve usar pacotes em vez de compilar do zero)

    
por 30.09.2016 / 22:34
0

Estas são as instruções para aplicar uma política personalizada para Splunk no RHEL7. Deve ser praticamente o mesmo para o seu aplicativo, basta seguir as instruções e usar os arquivos de políticas do repositório do fedora. Obviamente, faça isso em um ambiente de desenvolvimento primeiro para verificar se ele funciona para sua aplicação.

Aqui estão as principais instruções copiadas textualmente:

  1. Faça o download / upload desta política para o seu servidor (e extraia o zip - se não estiver usando um clone do git), então cd no diretório
  2. yum install policycoreutils-python setools-console selinux-policy-devel
    
  3. cp splunk.if /usr/share/selinux/devel/include/services/
    
  4. make -f /usr/share/selinux/devel/Makefile DISTRO=rhel7
    
  5. semodule -i splunk.pp
    
  6. semanage permissive -a splunk_t
    
  7. restorecon -R /opt/splunk
    
  8. restorecon /etc/init.d/splunk
    
  9. /etc/init.d/splunk restart
    
por 30.09.2016 / 22:21