짧은 버전 : Java 7을 SELinux에서 실행할 수있는 가장 안전한 방법은 무엇입니까?
긴 버전 :
잘못된 용어를 사용하면 미리 죄송합니다. 저는 실제로 Linux 기술이 부족한 Java 개발자입니다.
방금 Security Enhanced Linux가있는 CentOS 릴리스 5.3 (Final)에 Java 7을 설치했습니다. 설치가 완료된 후 (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을 안전하게 실행하는 방법에 대한 "공식적"(많은 것을 의미 할 수 있음)입니다. 누구든지 나를 위해 정보가 있습니까?
편집 : 편집과 관련된 기사를 발견했습니다 /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
.