Java 7をSELinuxで実行できるようにする安全な方法は何ですか


9

ショートバージョン: Java 7をSELinux(で)で実行できるようにする最も安全な方法は何ですか?

ロングバージョン:

誤った用語を使用した場合は、事前にごめんなさい。私は本当に、ほんの少しのLinuxスキルを持っているJava開発者です。

CentOSリリース5.3(Final)にJava 7をインストールしました。これは明らかにセキュリティが強化されたLinuxです。インストールが完了したら(Oracleからtar.gzファイルを解凍して「インストール」しました/usr/java/jdk/jdk1.7.0_25)、実行java -versionして次のエラーが発生しました。

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`

これはSELinuxが原因である可能性がありsetenforce 0、問題が解消されるかどうかを確認するための記事であることがわかりました。私はそのコマンドを実行し、Javaは機能しました。しかし、これらの同じ記事はsetenforce 0、インターネットに接続されたホストを離れることは危険であり、私のホストはインターネットに接続されていると述べています。

この次のアプローチを提案する他の記事もありますが、それは危険である可能性もあるので、まだ試していません。

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

...上記のコマンドでは、コマンドの最後のパスがJDKのパスに置き換えられます。

私が見つけられないのは、Java 7をSELinuxで安全に実行する方法についての「公式」(多くのことを意味する可能性があります)です。誰か私に何か情報がありますか?

編集:編集 に関する記事を見つけました/etc/selinux/config。下のサンプルのように設定しました。これにより、Javaを実行できますが、セキュリティホールがいくつかあると思います。

# 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

chconソリューションは、合理的に見えます。最後のソリューションはとそれほど変わりませんsetenforce 0
ヨルダン2013

代わりにホームディレクトリにインストールできますか?
–ThorbjørnRavn Andersen 2013

@ThorbjørnRavnAndersen:ええ、私は可能だと思いますが、デーモンとして実行されます。具体的には、Tomcatサーバーです。どういうわけか、ホームディレクトリからTomcatサーバーを実行するのは少しずさんな感じがします。
John Fitzpatrick

回答:


2
  1. 現在のインストールをクリーンアップします

  2. RPMファイルをダウンロードします(http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

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

残りは注意されます。


ありがとう。「現在のインストールのクリーンアップ」について詳しく教えてください。私がインストールしたものを削除するということですか?
John Fitzpatrick

はい、そうです!現在のOracle Javaインストールを削除します。「自己解凍ファイルのアンインストール」に従ってくださいjava.com/en/download/help/linux_uninstall.xml#self
user44441

4
なぜこれが解決策なのですか?
オービットのライトネスレース'28年

これが適切なソリューションである理由が@LightnessRacesinOrbitでわからない場合は、「SELinuxとは」を参照してください。基本的に、RPMスクリプトは適切なパーミッションACLなどを設定します
eyoung100

3
@ eyoung100:いいえ、私の答えは、この答えは何も説明しないということです。インストールを削除して置き換えると問題が解決する理由と、その手順を説明する必要があります。また、RPMからインストールしたにもかかわらず問題が発生するため、私は尋ねます。
オービットのライトネスレース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.