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

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

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.