ショートバージョン: 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
。