web-dev-qa-db-ja.com

Java 7をSELinuxで実行するための安全な方法は何ですか?

短縮版: Java 7をSELinux(で?)で実行することを許可する最も安全な方法は何ですか?

ロングバージョン:

間違った用語を使用した場合は、事前に申し訳ありません。私は本当にJava開発者であり、Linuxのスキルはわずかです。

インストールしたところJava 7はCentOSリリース5.3(最終版)で、明らかにセキュリティが強化された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のパスに置き換えられます。

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

編集:/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
9
  1. 現在のインストールをクリーンアップします

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

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

残りは注意されます。

2
user44441