जावा 7 को SELinux पर चलाने का सुरक्षित तरीका क्या है


9

संक्षिप्त संस्करण: जावा 7 को SELinux पर चलाने की अनुमति देने का सबसे सुरक्षित तरीका क्या है?

दीर्घ संस्करण:

अग्रिम में क्षमा करें यदि मैं गलत शब्दावली का उपयोग करता हूं। मैं वास्तव में लिनक्स कौशल की कमी के साथ सिर्फ जावा डेवलपर हूं।

मैंने अभी हाल ही में जावा 7 को CentOS रिलीज़ 5.3 (फाइनल) पर स्थापित किया है, जो स्पष्ट रूप से सुरक्षा संवर्धित लिनक्स है। इंस्टॉल पूरा होने के बाद (जो मैंने 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और यदि समस्या दूर हो जाती है तो कोशिश करके देखें। मैंने उस कमांड को चलाया और जावा ने काम किया। लेकिन ये वही लेख कहते हैं कि setenforce 0इंटरनेट से जुड़े होस्ट को छोड़ना खतरनाक है, और मेरा होस्ट इंटरनेट से जुड़ा है।

ऐसे अन्य लेख हैं जो इस अगले दृष्टिकोण का सुझाव देते हैं, लेकिन यह भी कहते हैं कि यह खतरनाक हो सकता है, इसलिए मैंने अभी तक इसकी कोशिश नहीं की है।

chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so

... उपरोक्त आदेश में कमांड के अंत में पथ को मेरे JDK के पथ से बदल दिया गया है।

मुझे कुछ नहीं मिल रहा है "आधिकारिक" (जो कि कई चीजों का मतलब हो सकता है) जावा 7 को कैसे चलाना है (साथ?) SELinux सुरक्षित रूप से। किसी को भी मेरे लिए कोई जानकारी है?

संपादित करें: मैंने एक लेख खोजा है जो संपादन के लिए संदर्भित है /etc/selinux/config। मैंने नीचे दिए गए नमूने में दिखाया गया है। यह जावा को चलाने की अनुमति देता है, लेकिन मुझे लगता है कि अब मेरे पास कुछ सुरक्षा छेद हैं।

# 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
जोर्डन

क्या आप इसे केवल अपने घर निर्देशिका में स्थापित कर सकते हैं?
थोरबजर्न रेवन एंडरसन

@ ThorbjørnRavnAndersen: ठीक है, मुझे लगता है कि मैं कर सकता था, लेकिन यह एक डेमॉन के रूप में चलता है, एक टॉमकैट सर्वर अधिक विशिष्ट होने के लिए, और किसी तरह यह थोड़ा तिरछा लगता है कि मेरे होम डायरेक्टरी से टॉमको सर्वर चल रहा है।
जॉन फिट्जपैट्रिक

मूल रूप से stackoverflow.com/q/14723474/560648 का एक डूप ।
ऑर्बिट

जवाबों:


2
  1. वर्तमान स्थापना को साफ करें

  2. RPM फ़ाइल ( http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ) डाउनलोड करें

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

बाकी का ध्यान रखा जाएगा।


धन्यवाद। क्या आप "वर्तमान स्थापना को साफ़ करें" पर विस्तार से बता सकते हैं? क्या आप इसका मतलब निकालते हैं कि मैंने क्या स्थापित किया है?
जॉन फिट्जपैट्रिक

हाँ य़ह सही हैं! अपना वर्तमान ओरेकल जावा इंस्टॉलेशन निकालें। कृपया "सेल्फ एक्सट्रैक्टिंग फाइल अनइंस्टॉल" java.com/en/download/help/linux_uninstall.xml#self
user44441

4
इसका हल क्यों है?
ऑर्बिट

यदि @LightnessRacesinOrbit नहीं जानता कि यह उचित समाधान क्यों है, तो कृपया पढ़ें कि SELinux क्या है । मूल रूप से RPM स्क्रिप्ट उचित अनुमतियाँ ACL के सेट करता है
eyoung100

3
@ eyoung100: नहीं, मेरा कहना यह है कि यह उत्तर कुछ भी स्पष्ट नहीं करता है। यह स्पष्ट करना चाहिए कि स्थापना को हटाने और बदलने के कारण समस्या को हल करना चाहिए, साथ ही ऐसा करने के लिए कदम भी देना चाहिए। मैं यह भी पूछता हूं क्योंकि मैंने आरपीएम से इंस्टॉल किया था लेकिन अभी भी समस्या है।
२०:४३ पर ऑर्बिट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.