Phiên bản ngắn: Cách an toàn nhất để cho phép Java 7 chạy trên (với?) SELinux là gì?
Phiên bản dài:
Xin lỗi trước nếu tôi sử dụng thuật ngữ không chính xác. Tôi thực sự chỉ là một nhà phát triển Java với các kỹ năng Linux ít ỏi.
Tôi vừa cài đặt Java 7 trên bản phát hành CentOS 5.3 (Bản cuối) rõ ràng có Linux được tăng cường bảo mật. Sau khi cài đặt hoàn tất (mà tôi đã "cài đặt" bằng cách giải nén tệp tar.gz từ Oracle /usr/java/jdk/jdk1.7.0_25
), tôi đã chạy java -version
và gặp lỗi này:
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`
Tôi tìm thấy một vài bài báo nêu rõ điều này có thể là do SELinux và để thử setenforce 0
xem vấn đề có biến mất không. Tôi đã chạy lệnh đó và Java đã làm việc. Nhưng những bài báo tương tự nói rằng rời khỏi setenforce 0
máy chủ kết nối Internet là nguy hiểm và máy chủ của tôi được kết nối với Internet.
Có những bài viết khác đề xuất cách tiếp cận tiếp theo này, nhưng cũng nói rằng nó có thể nguy hiểm, vì vậy tôi chưa thử.
chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so
... trong lệnh trên, đường dẫn ở cuối lệnh được thay thế bằng đường dẫn JDK của tôi.
Những gì tôi không thể tìm thấy là một cái gì đó "chính thức" (có thể có nghĩa là nhiều thứ) về cách chạy Java 7 trên (với?) TỰ ĐỘNG an toàn. Có ai có bất kỳ thông tin cho tôi?
Chỉnh sửa: Tôi phát hiện ra một bài viết đề cập đến chỉnh sửa /etc/selinux/config
. Tôi đã thiết lập như thể hiện trong mẫu dưới đây. Điều này cho phép Java chạy nhưng tôi giả sử bây giờ tôi có một số lỗ hổng bảo mật.
# 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
giải pháp trông hợp lý. Giải pháp cuối cùng không khác nhiều so vớisetenforce 0
.