Quel est le moyen sûr d'autoriser Java 7 à s'exécuter sur SELinux

9

Version courte: Quel est le moyen le plus sûr pour permettre à Java 7 de s'exécuter sur (avec?) SELinux?

Version longue:

Désolé à l'avance si j'utilise une terminologie incorrecte. Je suis vraiment juste un développeur Java avec une maigre poignée de compétences Linux.

Je viens d'installer Java 7 sur la version 5.3 (finale) de CentOS qui a apparemment une sécurité renforcée Linux. Une fois l'installation terminée (que j'ai "installée" en décompressant le fichier tar.gz d'Oracle /usr/java/jdk/jdk1.7.0_25), j'ai couru java -versionet j'ai eu cette erreur:

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`

J'ai trouvé quelques articles indiquant que cela peut être dû à SELinux et pour essayer de setenforce 0voir si le problème disparaît. J'ai exécuté cette commande et Java a fonctionné. Mais ces mêmes articles disent que partir setenforce 0sur un hôte connecté à Internet est dangereux et que mon hôte est connecté à Internet.

Il y a d'autres articles qui suggèrent cette prochaine approche, mais disent aussi que cela peut être dangereux, donc je ne l'ai pas encore essayé.

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

... dans la commande ci-dessus, le chemin à la fin de la commande est remplacé par le chemin de mon JDK.

Ce que je ne trouve pas, c'est quelque chose d '"officiel" (ce qui peut signifier beaucoup de choses) sur la façon d'exécuter Java 7 sur (avec?) SELinux en toute sécurité. Quelqu'un a-t-il des informations pour moi?

Edit: j'ai découvert un article qui faisait référence à l'édition /etc/selinux/config. J'ai réglé comme indiqué dans l'exemple ci-dessous. Cela permet à Java de fonctionner mais je suppose que j'ai maintenant des failles de sécurité.

# 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
John Fitzpatrick
la source
La chconsolution semble raisonnable. La dernière solution n'est pas très différente de celle setenforce 0.
jordanm
Pouvez-vous simplement l'installer dans votre répertoire personnel à la place?
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen: Eh bien, je suppose que je pourrais, mais il fonctionne comme un démon, un serveur Tomcat pour être plus spécifique, et en quelque sorte, il semble un peu bâclé d'avoir un serveur Tomcat exécuté à partir de mon répertoire personnel.
John Fitzpatrick
Fondamentalement, une dupe de stackoverflow.com/q/14723474/560648 .
Courses de légèreté en orbite

Réponses:

2
  1. Nettoyer l'installation actuelle

  2. Téléchargez le fichier RPM ( http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html )

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

le reste sera pris en charge.

user44441
la source
Merci. Pouvez-vous élaborer sur "Nettoyer l'installation actuelle"? Voulez-vous dire supprimer ce que j'ai installé?
John Fitzpatrick
Oui c'est vrai! Supprimez votre installation Oracle Java actuelle. Veuillez suivre "Désinstallation automatique des
user44441
4
Pourquoi est-ce la solution?
Courses de légèreté en orbite
Si @LightnessRacesinOrbit ne sait pas pourquoi c'est la bonne solution, veuillez lire ce qu'est SELinux . Fondamentalement, le script RPM définit les autorisations appropriées, etc. ACL
eyoung100
3
@ eyoung100: Non, mon point est que cette réponse n'explique rien. Il doit expliquer pourquoi la suppression et le remplacement de l'installation doivent résoudre le problème, ainsi que les étapes à suivre. Je demande aussi parce que j'ai installé à partir de RPM mais que j'ai toujours le problème.
Courses de légèreté en orbite