अपाचे सर्वर के SSL सिफर सूट में RC4 को निष्क्रिय करना


17

कृपया, मेरे स्वयं के उत्तर में EDIT अनुभाग देखें; वे इस पहेली के लिए एक स्पष्टीकरण होते हैं

मैं एक अपाचे 2.2.9 सर्वर के लिए RC4 को अक्षम करने की कोशिश कर रहा हूं एक CentOS 6.5 VPS पर चल रहा है और मैं सफल नहीं हो सकता।

हाल ही में खरीदा गया व्यापार-मान्य प्रमाणपत्र स्थापित है और एसएसएल कनेक्शन ठीक चल रहे हैं, लेकिन मैं चीजों को कॉन्फ़िगर करना चाहता था, "सुरक्षा को सख्त करना" क्योंकि कुछ ट्यूटोरियल इसे डालते हैं।

क्वालिस एसएसएल लैब्स के साथ कॉन्फ़िगरेशन की जाँच करते हुए, परिणाम पृष्ठ दिखाता है "यह सर्वर RC4 सिफर को स्वीकार करता है, जो कमजोर है। ग्रेड बी से छाया हुआ है।"

हालाँकि, मैंने इसे ssl.conf में डाल दिया है:

 SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3

मैंने इस प्रश्न के उत्तर में दी गई स्क्रिप्ट को test-ssl-ciphers.sh नामक फ़ाइल में सहेजा है और IP पते को लूपबैक पते में बदल दिया है। यह परिणाम है ./test-ssl-ciphers.sh | grep -i "RC4":

Testing ECDHE-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDHE-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing AECDH-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing PSK-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-MD5...NO (no ciphers available)
Testing EXP-ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-KRB5-RC4-SHA...NO (no ciphers available)
Testing EXP-KRB5-RC4-MD5...NO (no ciphers available)

इन पंक्तियों में से प्रत्येक में "NO" है, जो स्क्रिप्ट के अनुसार, इसका मतलब है कि सर्वर निर्दिष्ट सिफर संयोजन का समर्थन नहीं करता है।

इसके अलावा, कमांड grep -i -r "RC4" /etc/httpdमुझे केवल उपर्युक्त ssl.conf फाइल देता है।

इसके अलावा, openssl ciphers -Vमेरे सिफर सूट पर चलने से कोई RC4 सिफर नहीं दिखता है, जो विन्यास स्ट्रिंग को देखते हुए समझ में आता है।

मैं इसलिए किसी तरह से हार गया हूं कि एसएसएल चेक वेबसाइट मुझे क्यों बता रही हैं कि "सर्वर आरसी 4 को स्वीकार करता है"। वे निम्नलिखित सिफर की सूची भी स्वीकार करते हैं:

TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA

किसी को भी एक संभावित स्पष्टीकरण है? मैं कुछ गलत क्या कर रहा हूँ? हो सकता है कि आरसी 4 या "स्वीकृति" के उस समर्थन को कॉन्फ़िगर करने का एक और स्थान हो?

धन्यवाद।

[ संपादित करें ] घर में एक आभासी मशीन में एक सेंटोस 6.6 का उपयोग करते हुए, मैंने अपने वीपीएस के खिलाफ फिर से लूपबैक पते के बजाय अपने डोमेन नाम का उपयोग करके स्क्रिप्ट को चलाया। इस सेटअप का तात्पर्य है कि VM में खुलने के समय उदाहरण के लिए सिफर्स की सूची उपलब्ध कराई गई है: मेरे पास अभी भी RC4 नहीं है जो YES का उत्पादन करते हैं।

जवाबों:


16

नवीनीकृत प्रमाण पत्र को स्थापित करते समय, मुझे पता चला कि समस्या ISPConfig में निर्दिष्ट (डोमेन और प्रत्येक उप डोमेन के लिए) HTTPS के लिए आवश्यक डेटा का पूरा सेट: प्रमाण पत्र, निजी कुंजी, CA श्रृंखला, आदि के कारण हुई थी।

अलग-अलग रखो, डोमेन ए को ग्रेड करने के लिए क्वालिस टेस्ट के नेतृत्व में डेटा के सेट को हटाने और उसी समय आरसी 4 के बारे में चेतावनी को हटा दें। विवरण वापस करने से वापस आने वाली चेतावनियों और ग्रेड बी पर फिर से छाया हुआ होता है, जो संदेह लिंक के रूप में संदेह के लिए कोई जगह नहीं छोड़ता है।

यह वैसा ही है जैसे प्रत्येक vhost के लिए विवरण देने से किसी तरह का एक नया वातावरण तैयार हो गया है जिसमें कुछ चूक ने सिफर सुइट को ओवरराइड किया है जिसे मैंने ssl.conf में निर्दिष्ट किया है। अजीब।

इसका उपाय है कि प्रत्येक vhost के लिए Apache Directives textarea में SSLCipherSuite विनिर्देशन जोड़ा जाए । यह वही है जो मुझे विन्यास में मिला है जो मुझे ए ग्रेड देता है:

SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
# Compression is disabled by default on my distribution (CentOS 6)
# SSLCompression off 
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

EDIT (2017-05-16): इस समस्या के बारे में एक अतिरिक्त खोज: यह निर्दिष्ट SSLCipherSuiteकरना अनिवार्य है। मैं उस विशिष्ट निर्देश को थाह नहीं कर सकता, हालांकि सर्वर स्तर पर निर्दिष्ट स्वचालित रूप से वर्चुअल होस्ट कॉन्फ़िगरेशन पर लागू नहीं होता है । मैं अपाचे 2.2.15 को CentOS 6.9 पर चला रहा हूं।

EDIT (2018-06-18): अधिक जानकारी। मैं बस पता चला है कि SSLCipherSuiteयह निर्देश एक ही समय निर्दिष्ट किया जा सकता और यह सब आभासी मेजबान के लिए लागू होगी: आधार mod_ssl विन्यास फाइल में (CentOS 6 पर, फ़ाइल में पाया जाता है /etc/httpd/conf.d/ssl.conf), तो आप बस निर्देश बारे में बताने की बाहर की डिफ़ॉल्ट virtualhost। Apache 2.2 प्रलेखन बताता है कि इस निर्देश का डिफ़ॉल्ट मान है SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP। मुझे लगता है कि यह वह जगह है जहां RC4 सिफर आता है: किसी भी विनिर्देश की अनुपस्थिति में, जो मेरे लिए मामला था क्योंकि कोई विनिर्देश "वैश्विक" संदर्भ में नहीं था, डिफ़ॉल्ट मान लागू होता है। यह समझ मेरे लिए एक रहस्य बन गई है। विडंबना यह है कि जब मैं इस स्पष्टीकरण को ढूँढता हूँ तो मैं CentOS 7 में जाने वाला हूँ! HTH।


6
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3
                                                                    ^^^^^^^

बुरा विचार। TLS1.0 और TLS1.1 के साथ प्रयोग करने योग्य सिफर को निष्क्रिय करने में सभी SSLv3 सिफर को अक्षम करने और केवल TLS1.2 (यदि आपका सर्वर TLS1.2 का समर्थन करता है) के साथ नए पेश किए गए कुछ ही सिफर छोड़ता है

मैं इसलिए किसी तरह से हार गया हूं कि एसएसएल चेक वेबसाइट मुझे क्यों बता रही हैं कि "सर्वर आरसी 4 को स्वीकार करता है"। वे निम्नलिखित सिफर की सूची भी स्वीकार करते हैं:

सुनिश्चित करें कि आप स्थानीय और बाहरी परीक्षण दोनों एक ही सर्वर (आईपी पते) का उपयोग करते हैं। मैंने बहुत सारी साइटें देखी हैं, जहाँ example.comसे अलग होस्ट पर है www.example.comऔर इस प्रकार परीक्षण अलग हैं।


हाँ, रूट डोमेन और उसके उप डोमेन एक ही VPS पर हैं। VPS के साथ एक IP पता जुड़ा हुआ है और मैं इसे प्रबंधित करने के लिए ISPConfig का उपयोग करता हूं। धन्यवाद।
अबवोग

SSLLabs का उपयोग करें । आपके सिस्टम में मौजूद आईपी के साथ वे आपकी तुलना करते हैं। सुनिश्चित करें कि आपके सामने कुछ अन्य (रिवर्स) प्रॉक्सी या CDN नहीं हैं जो परिणाम को प्रभावित कर सकते हैं।
स्टीफन उलरिच

"TLS1.0 और TLS1.1 के साथ प्रयोग करने योग्य सिफर को निष्क्रिय करने में सभी SSLv3 सिफर परिणाम को निष्क्रिय कर देता है और केवल TLS1.2 (यदि आपका सर्वर TLS1.2 का समर्थन करता है) के साथ नए पेश किए गए कुछ सिफर छोड़ देता है" तो उचित समाधान क्या है?
रोहन एडम्स

@RohnAdams: यदि उद्देश्य RC4 को 'RC4' की तुलना में अक्षम करना है, तो यह ठीक है। इसके अतिरिक्त 'SSLv3' का उपयोग करके समस्या को ओवरक्लॉक किया गया था। उपयोगी सिफर के लिए मोज़िला सिफर जेनरेटर देखने के लिए उपयोग करें ।
स्टीफन उलरिच

2

क्वालिस एसएसएल लैब डिफॉल्ट मेजबानों आदि के लिए बहुत संवेदनशील लगती है। जाँच करें कि आपके सभी आईपीटीपीएस वर्चुअलहॉट्स उस आईपी पते पर सटीक एक ही सेटिंग्स (प्रमाणपत्र फ़ाइलों से अलग) का उपयोग करते हैं, मेरे पास एक समान मुद्दा था जहां मेरे लक्षित वर्चुअलोस्ट के खिलाफ परीक्षण किए गए कुछ क्वालिस टेस्ट और कुछ परीक्षण डिफ़ॉल्ट VirtualHost लेने के लिए लग रहा था। मेरे लक्षित vhost में केवल एक ही सिफर सक्षम था लेकिन क्वालिस को डिफ़ॉल्ट vhost से बहुत बड़ी सूची मिल रही थी।

मैं भी एक बेहतर दिखने स्क्रिप्ट नहीं मिली यहाँ कि SSL परीक्षण के बारे में अधिक गहन जानकारी देता है।


2

बस मेरी एक साइट के लिए यह देख रहा था। @ AbVog के उत्तर के आधार पर, मैंने पाया कि मेरे निर्देश वास्तव में केवल डिफ़ॉल्ट vhost के अंदर थे। जब मैंने निर्देश को वैश्विक संदर्भ में स्थानांतरित किया, तो सब अच्छा था।

एक तरफ, मैं भी https://cipherli.st/ पर आया था जिसमें विभिन्न संकुल के समूह के लिए SSL विन्यास की अच्छी सूची है। अपाचे के लिए वर्तमान सिफारिश निम्नानुसार है:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

# Requires Apache >= 2.4
SSLCompression off 
SSLSessionTickets Off
SSLUseStapling on 
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 

0

अपाचे / 2.4.25 सिफर के साथ मेरे फेडोरा 25 पर क्रिप्टो-नीतियों (देखें / आदि / क्रिप्टोकरंसी / बैकेंड) द्वारा नियंत्रित किया जाता है। डिफ़ॉल्ट सेटअप में RC4 पूरी तरह से अक्षम है, इसलिए Apache सेटअप में सिफर्स के साथ छेड़छाड़ की कोई आवश्यकता नहीं है। यह सुनिश्चित करने के अलावा कि आप नवीनतम ssl.conf का उपयोग करते हैं क्योंकि यह डिफ़ॉल्ट रूप से स्थापित नहीं है, लेकिन conf.d निर्देशिका में ssl.conf.rpmnew के रूप में छोड़ा गया है।

SSL को कॉन्फ़िगर करने के लिए मुझे केवल प्रमाणपत्र, ServerName और DocumentRoot निर्दिष्ट करना था। गिलहरी के लिए।

SSLCertificateFile /etc/letsencrypt/live/mail.xxxx.dk/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.xxxx.dk/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mail.xxxx.dk/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/mail.xxxx.dk/fullchain.pem
ServerName mail.xxxx.dk:443
DocumentRoot "/usr/share/squirrelmail"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.