Qual é a maneira segura de permitir que o Java 7 seja executado no SELinux?

9

Versão resumida: Qual é a maneira mais segura de permitir que o Java 7 seja executado (com?) no SELinux?

Versão longa:

Desculpe antecipadamente se eu usar terminologia incorreta. Eu sou realmente apenas um desenvolvedor de Java com um conhecimento limitado de habilidades em Linux.

Acabei de instalar o Java 7 no CentOS versão 5.3 (Final) que aparentemente tem o Security Enhanced Linux. Após a conclusão da instalação (que "instalei" ao descompactar o arquivo tar.gz do Oracle em /usr/java/jdk/jdk1.7.0_25 ), executei java -version e recebi este erro:

Error: dl failure on line 864
Error: failed /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so,
      because /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so:
      cannot restore segment prot after reloc: Permission denied'

Eu encontrei alguns artigos afirmando que isso pode ser devido ao SELinux e tentar setenforce 0 e ver se o problema desaparece. Eu corri o comando e o Java funcionou. Mas esses mesmos artigos dizem que deixar setenforce 0 em um host conectado à Internet é perigoso e meu host está conectado à Internet.

Existem outros artigos que sugerem esta próxima abordagem, mas também dizem que pode ser perigoso, por isso ainda não tentei.

chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so

... no comando acima, o caminho no final do comando é substituído pelo caminho do meu JDK.

O que eu não consigo encontrar é algo "oficial" (que pode significar muitas coisas) sobre como rodar o Java 7 (com o?) SELinux com segurança. Alguém tem alguma informação para mim?

Editar: descobri um artigo que se referia à edição de /etc/selinux/config . Eu configurei como mostrado na amostra abaixo. Isso permite que o Java seja executado, mas suponho que agora tenho algumas falhas de segurança.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=permissive
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted
    
por John Fitzpatrick 02.08.2013 / 15:23

1 resposta

2

  1. Limpar a instalação atual

  2. Faça o download do arquivo RPM ( link )

    yum -y localinstall /path/to/downloaded-java.rpm
    

o resto será cuidado.

    
por 06.08.2013 / 10:11