Kısa sürüm: Java 7'nin SELinux ile çalışmasına izin vermenin en güvenli yolu nedir?
Uzun versiyon:
Yanlış terminoloji kullanırsam önceden özür dilerim. Gerçekten sadece Linux becerilerinin yetersiz dağılması olan bir Java geliştiricisiyim.
Görünüşe göre Security Enhanced Linux'a sahip CentOS sürüm 5.3'e (Final) Java 7'yi yükledim. Yükleme tamamlandıktan sonra (ki "in" tar.gz dosyasını Oracle'dan açarak yükledim /usr/java/jdk/jdk1.7.0_25
), koştum java -version
ve şu hatayı aldım:
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`
Bunun SELinux nedeniyle olabileceğini belirten setenforce 0
ve sorunun giderilip giderilmediğini görmek için birkaç makale buldum . Bu komutu çalıştırdım ve Java çalıştı. Ancak aynı makaleler setenforce 0
internete bağlı bir ana bilgisayara bırakmanın tehlikeli olduğunu ve ev sahibimin internete bağlı olduğunu söylüyor .
Bir sonraki yaklaşımı öneren ancak tehlikeli olabileceğini söyleyen başka makaleler de var, bu yüzden henüz denemedim.
chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so
... yukarıdaki komutta, komutun sonundaki yol JDK'mın yoluyla değiştirilir.
Ne bulamıyorum Java resmi (ile?) Güvenli bir şekilde SELinux üzerinde çalıştırmak için "resmi" (birçok şey anlamına gelebilir) bir şeydir. Benim için herhangi bir bilgi var mı?
Düzenleme: Düzenleme ile ilgili bir makale keşfettim /etc/selinux/config
. Aşağıdaki örnekte gösterildiği gibi ayarladım. Bu, Java'nın çalışmasına izin verir, ancak şimdi bazı güvenlik deliklerim olduğunu varsayıyorum.
# 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
Çözelti makul görünüyor. Son çözüm bundan çok farklı değilsetenforce 0
.