Como construir regras do SELinux para um servidor Glassfish

2

Estou rodando o Glassfish 3.1 em uma solução do CentOS 6 e, por padrão, o SELinux está ativado. Instalei o JDK versão 1.6.0_29 da Sun no servidor e extraí o Glassfish 3.1.1 para /opt/glassfish-3.1.1 com um link /opt/glassfish apontando para a versão mais recente do Glassfish. Também criei um usuário do sistema chamado glassfish com um diretório inicial /home/glassfish .

Ao executar com o SELinux ativado, recebo todos os tipos de erros. Por exemplo, não consigo criar o domínio. Eu gosto do conceito do SELinux e gostaria de ter o SELinux ativado. Eu tenho os seguintes requisitos para o servidor Glassfish:

  • Ouvindo a porta 8080 e 8081
  • Outras portas 7676: JMS 8686: monitoramento JMX, 4848: console de administração
  • Encaminhamento do apache para o Glassfish por meio de mod_jk e porta 8009
  • Iniciando o OpenMQ como um processo separado que escuta o 7676 e sua porta de monitoramento JMX 7776
  • Capaz de ler e gravar arquivos em uma área específica (diferente do diretório inicial)
  • Capaz de usar / tmp / para arquivos temporários

Estou ciente da ferramenta audit2allow ao executar no modo permissivo, mas luto com a compreensão das regras geradas por essa ferramenta e achei que configurar essa regra manualmente na primeira vez ajudaria a entender melhor as regras do SELinux os exemplos simplistas que eu vi até agora.

Alguém com experiência no SELinux pode me ajudar a formar essas regras do SELinux com comentários descrevendo cada parte das regras?

    
por tronda 17.11.2011 / 09:38

1 resposta

1

Como Mlfe disse, o java é instalado pelo usuário e executado de forma não confinada, já que as políticas não os conhecem.

A criação de regras é um processo bastante, sugiro que você leia o guia do RHEL em link para informações gerais.

Existe o comando "selinux-polgengui" (fedora / rhel / centos no pacote policycoreutils-gui) que pode criar políticas adicionais para sua aplicação. Ele funciona passo a passo, o que pode cobrir seus requisitos, mas eu acho que não será fácil para java e glassfish por causa de todos os arquivos envolvidos.

Outra linha de defesa para seu aplicativo pode ser uma política java gerenciada pelo gerenciador de segurança do java vm. Consulte o link como ponto de partida.

    
por 10.02.2012 / 10:56