सवाल Apache (httpd) में 'logjam' भेद्यता को कैसे ठीक करें


हाल ही में, डिफी-हेलमैन में एक नई भेद्यता, जिसे अनौपचारिक रूप से 'लॉगजम' कहा जाता है, जिसके लिए प्रकाशित किया गया है, जिसके लिए यह पन्ना भेद्यता का मुकाबला करने का सुझाव देने के साथ एक साथ रखा गया है:

डिफी-हेलमैन को सही तरीके से तैनात करने के लिए हमारे पास तीन सिफारिशें हैं   टीएलएस के लिए:

  1. निर्यात सिफर सूट अक्षम करें। हालांकि आधुनिक ब्राउज़र अब नहीं   समर्थन निर्यात सूट, FREAK और Logjam हमलों की अनुमति देता है   निर्यात-ग्रेड का उपयोग करने में ब्राउज़र को चालित करने के लिए मैन-इन-द-बीच हमलावर   क्रिप्टोग्राफी, जिसके बाद टीएलएस कनेक्शन को डिक्रिप्ट किया जा सकता है। निर्यात   सिफर 1 99 0-युग नीति के अवशेष हैं जो मजबूत को रोकते हैं   संयुक्त राज्य अमेरिका से निर्यात किए जाने से क्रिप्टोग्राफिक प्रोटोकॉल। नहीं   आधुनिक ग्राहक निर्यात सूट पर भरोसा करते हैं और इसमें थोड़ा नकारात्मक पड़ता है   उन्हें अक्षम करना
  2. तैनाती (क्षणिक) अंडाकार-वक्र डिफी-हेलमैन   (ECDHE)। एल्लिप्टिक-वक्र डिफी-हेलमैन (ईसीडीएच) कुंजी एक्सचेंज सभी से बचाता है   ज्ञात व्यवहार्य क्रिप्टैनालिटिक हमलों, और आधुनिक वेब ब्राउज़र अब ज्ञात हैं   मूल, परिमित क्षेत्र, डिफी-हेलमैन पर ईसीडीएचई पसंद करते हैं।   अलग-अलग लॉग एल्गोरिदम हम मानक डिफी-हेलमैन पर हमला करते थे   समूह precomputation से लाभ के रूप में मजबूत नहीं है, और   व्यक्तिगत सर्वरों को अद्वितीय अंडाकार घटता उत्पन्न करने की आवश्यकता नहीं होती है।
  3. एक मजबूत, अद्वितीय डिफी हेलमैन समूह उत्पन्न करें। कुछ निश्चित समूह हैं   लाखों सर्वरों द्वारा उपयोग किया जाता है, जो उन्हें एक इष्टतम लक्ष्य बनाता है   precomputation, और संभावित eavesdropping। प्रशासक चाहिए   अद्वितीय, 2048-बिट या मजबूत डिफी-हेलमैन समूह उत्पन्न करते हैं   प्रत्येक वेबसाइट या सर्वर के लिए "सुरक्षित" प्राइम्स।

उपर्युक्त सिफारिशों के अनुसार मेरे सर्वर को सुरक्षित करने के लिए मुझे क्या सर्वोत्तम अभ्यास कदम उठाने चाहिए?


56
2018-05-20 09:34


मूल


सम्बंधित: लॉगजम क्या है और मैं इसे कैसे रोकूं? - Martin Schröder


जवाब:


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

  1. निर्यात सिफर सूट अक्षम करें

कॉन्फ़िगरेशन परिवर्तनों में निपटाया गया है, हम नीचे 2 में बनाएंगे (!EXPORT के अंत के पास SSLCipherSuite लाइन यह है कि हम निर्यात सिफर सुइट्स को कैसे अक्षम करेंगे)

  1. तैनाती (क्षणिक) अंडाकार-वक्र डिफी-हेलमैन (ईसीडीएचई)

इसके लिए, आपको अपनी अपाचे कॉन्फ़िगरेशन फ़ाइलों में कुछ सेटिंग्स संपादित करने की आवश्यकता है - अर्थात् SSLProtocol, SSLCipherSuite, SSLHonorCipherOrder एक "सर्वोत्तम अभ्यास" सेटअप करने के लिए। निम्नलिखित की तरह कुछ पर्याप्त होगा:

SSLProtocol             all -SSLv2 -SSLv3

SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

SSLHonorCipherOrder     on

नोट: जिसके लिए SSLCipherSuite उपयोग करने के लिए सेटिंग, यह हमेशा बदल रहा है, और संसाधनों से परामर्श करना एक अच्छा विचार है यह वाला नवीनतम अनुशंसित विन्यास की जांच करने के लिए।

3. एक मजबूत, अद्वितीय डिफी हेलमैन समूह उत्पन्न करें

ऐसा करने के लिए, आप चला सकते हैं

openssl dhparam -out dhparams.pem 2048

ध्यान दें कि पैराम उत्पन्न होने पर यह सर्वर पर महत्वपूर्ण भार डाल देगा - आप हमेशा किसी अन्य मशीन पर पैरा बनाकर और इस संभावित समस्या को हल कर सकते हैं scpया उपयोग के लिए प्रश्न में सर्वर पर उन्हें स्थानांतरित करने के समान।

इन नव निर्मित जेनरेट का उपयोग करने के लिए dhparams अपाचे में, से अपाचे दस्तावेज़ीकरण:

कस्टम डीएच पैरामीटर उत्पन्न करने के लिए, openssl dhparam कमांड का उपयोग करें।   वैकल्पिक रूप से, आप कर सकते हैं निम्नलिखित संलग्न करें मानक 1024-बिट डीएच   आरएफसी 240 9, सेक्शन 6.2 के पैरामीटर संबंधित के लिए   SSLCertificateFile फ़ाइल:

(जोर मेरा)

उसके बाद एक मानक 1024-बिट डीएच पैरामीटर के बाद होता है। इससे हम अनुमान लगा सकते हैं कि कस्टम-जेनरेट किए गए डीएच पैरामीटर को प्रासंगिक में जोड़ा जा सकता है SSLCertificateFile प्रश्न में।

ऐसा करने के लिए, निम्न के जैसा कुछ चलाएं:

cat /path/to/custom/dhparam >> /path/to/sslcertfile

वैकल्पिक रूप से, के अनुसार अपाचे उपखंड आपके द्वारा मूल रूप से लिंक किए गए लेख का, आप कस्टम dhparams फ़ाइल भी निर्दिष्ट कर सकते हैं यदि आपने प्रमाणपत्र फ़ाइल को स्वयं नहीं बदलना पसंद किया है, इस प्रकार:

SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"

जो भी अपाचे कॉन्फ़िगरेशन आपके विशेष SSL / TLS कार्यान्वयन के लिए प्रासंगिक हैं - आम तौर पर conf.d/ssl.confया conf.d/vhosts.conf लेकिन यह अपाचे को कॉन्फ़िगर करने के तरीके के आधार पर भिन्न होगा।

यह ध्यान देने योग्य है कि, के अनुसार यह लिंक,

अपाचे 2.4.7 से पहले, डीएच पैरामीटर हमेशा 1024 बिट्स पर सेट होता है और   उपयोगकर्ता विन्यास योग्य नहीं है। यह mod_ssl 2.4.7 में तय किया गया है   रेड हैट ने अपने आरएचईएल 6 अपाचे 2.2 वितरण में बैकपोर्ट किया है   httpd-2.2.15-32.el6

डेबियन व्हीजी अपग्रेड अपाचे 2 पर 2.2.22-13 + डेब 7u4 या बाद में और 1.0.1e-2 + deb7u17 पर openssl पर। उपरोक्त SSLCipherSuite पूरी तरह से काम नहीं करता है, इसके बजाय निम्न के अनुसार उपयोग करें यह ब्लॉग:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA

आपको यह जांचना चाहिए कि आपका अपाचे संस्करण आपके वितरण के आधार पर इन संस्करण संख्याओं के बाद है या नहीं, और यदि संभव हो तो इसे अपडेट करें।

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


81
2018-05-20 09:50



पैराम उत्पन्न करके सर्वर पर लोड के लिए, आप उन्हें हमेशा किसी अन्य मशीन पर उत्पन्न कर सकते हैं और बस एसपीपी या फ़ाइल को लक्ष्य सर्वर पर कॉपी-पेस्ट भी कर सकते हैं। उत्पादन सर्वर में पैराम उत्पन्न करने की कोई आवश्यकता नहीं है। - Erathiel
अपनी कॉन्फ़िगरेशन बदलने के बाद, आप एक चेक चालू करना चाहेंगे SSLLabs.com साथ ही बस सुनिश्चित करने के लिए। - user2428118
अपाचे / 2.2.22 (उबंटू 12.04) में इस भेद्यता को ठीक करने का कोई तरीका है? मैंने dhparams.pem को प्रमाणपत्र.crt में जोड़ा लेकिन weakdh.org/sysadmin.html अभी भी शिकायत - tersmitten
@tersmitten यह इस के लिए एक बिल्कुल अलग सवाल है। - Michael Hampton♦
आप हमेशा 'अच्छी' कमांड द्वारा कुंजी पीढ़ी चला सकते हैं। इसलिए, आप इसे इस तरह रख सकते हैं: अच्छा 19 openssl dhparam -out dhparams.pem 2048। यह लंबे समय तक काम करेगा, लेकिन केवल अप्रयुक्त सीपीयू समय का उपभोग करेगा। - Znik


विनी नेसेन के एक पैच के आधार पर मैंने अपाचे / 2.2.22 (डेबियन व्हीजी, शायद उबंटू पर भी उपयोग करने योग्य) के लिए एक फिक्स प्रकाशित किया है: https://flo.sh/debian-wheezy-apache2-logjam-fix/ - धन्यवाद। आपके के लिए।


0
2018-05-21 02:32



यह एक समाधान से अधिक हैकिश हैक है। रिवर्स-प्रॉक्सी के रूप में आपके अपाचे के हालिया nginx को डालने से कहीं अधिक आसान होगा, और कोई तृतीय-पक्ष-अपाचे पर भरोसा नहीं करेगा। - that guy from over there
हमें इन बाइनरी पर भरोसा क्यों करना चाहिए? - α CVn
आपको बाइनरी पर भरोसा नहीं करना है; यदि आप समय लेते हैं तो समझाए गए कदमों के बाद आप apache2.2.x को स्वयं आसानी से पुनः संकलित कर सकते हैं। यह आपकी सुरक्षा को और बढ़ा देगा, क्योंकि तब आपके सेटअप में अनन्य प्राथमिक कुंजी हैं। - Flo
सुझाव देंगे कि लोग ओपनसोर्स सॉफ्टवेयर में किसी समस्या को ठीक करने वाले पैच के बारे में शिकायत नहीं करते हैं। - Florian Heigl
@FlorianHeigl मुझे यह भी यकीन नहीं है कि उस टिप्पणी को क्या करना है ... - BE77Y


उपरोक्त हैक्स के जटिल मार्ग पर जाने के बजाय, विचार करें nginx पर स्विचिंग आपके मुख्य वेबसर्वर-सॉफ्टवेयर के रूप में (केवल कैशिंग या प्रॉक्सी नहीं)। यह स्पष्ट रूप से पुराने अपाचे-इंजन की तुलना में मौजूदा मानकों, सुरक्षा-वार के लिए अधिक प्रतीत होता है। Nginx भंडार का उपयोग करके यह आपको अपाचे की तुलना में स्थिर वेबसर्वर-इंजन को अद्यतित कर रहा है।

मैं पूरी तरह से स्विच कर दिया। मुझे टीएलएस के संबंध में बहुत समय लेने वाली समस्या सुलझाने में मदद मिली, और - हमारी विन्यास के लिए - यह भी उसी रैम में बहुत सी रैम को मुक्त कर दिया। असल में, मुझे httpd / apache की कॉन्फ़िगरेशन जटिलताओं के असंख्य की तुलना में, nginx को ताज़ा सरल और सरल के लिए रोजगार मिला, जो मैं आदी हो गया था। स्वाद का मामला हो सकता है, मैं बदलने से पहले httpd / apache rewrite / config / रखरखाव में काफी धाराप्रवाह हो गया था, और मुझे यह डरना आसान था कि यह होगा। ऑनलाइन उपलब्ध nginx कॉन्फ़िगरेशन पर उचित हालिया जानकारी है, और इसका उपयोगकर्ता-आधार विशाल, बहुत सक्रिय और समर्थन-अनुकूल है। https://news.netcraft.com/wp-content/uploads/2018/03/wpid-wss-top-1m-share.png


-7
2017-11-04 11:16



निर्यात ciphers के लिए अनुमति देने के लिए nginx स्थापित किया जाएगा ठीक ठीक लॉगजम हमले के लिए कमजोर के रूप में निर्यात सिफर के लिए सेट अपाचे सर्वर के रूप में स्थापित किया गया है। इसके अलावा, सवाल अपाचे में समाधान मांगता है। - α CVn
सच नहीं। वास्तव में, मुख्य कारण जो मैंने एक बार nginx में परिवर्तित किया था, ठीक उसी कारण था क्योंकि उस समय वितरण पैकेज प्रबंधन, यम और एपीटी दोनों ने किया था नहीं अपाचे के एक अद्यतित संस्करण की आपूर्ति करें। जबकि आपूर्ति की गई nginx उस समय शोषण के खिलाफ आवश्यक सब कुछ शामिल था। फिर, यह मानकों के लिए अधिक था, और मैं अनुमान लगा रहा हूं कि इसकी अद्यतन चक्र श्रृंखला कम है। अब यह logjam है, लेकिन काम पर मैं apache 2.2 के साथ एक ही मुद्दे में टक्कर लगी और distro कई एसएसएल / टीएलएस संबंधित मुद्दों के खिलाफ एक बैकपोर्ट की आपूर्ति नहीं है। समाधान: अपाचे को nginx के साथ बदलें। समस्या सुलझ गयी। - Julius
वास्तव में, उपाय: या तो ऐसे वितरण पर स्विच करें जो सॉफ़्टवेयर के लिए अधिक अद्यतित पैकेज प्रदान करता है जहां आपको बिल्कुल एक नए संस्करण की आवश्यकता होती है (केवल बग फिक्स का बैकपोर्ट नहीं किया गया है, उदाहरण के लिए डेबियन या सेंटोस के मामले में), या अपने आप को स्रोत से संकुल बनाएं (यह कठिन नहीं है) और पैकेज प्रबंधक का उपयोग करके उन्हें स्थापित करें, या स्रोत कोड से सादा पुराना इंस्टॉल (हार्ड भी नहीं, लेकिन प्रबंधन के लिए थोड़ा और काम लेता है)। एक प्रश्न के लिए जो पूछता है, "मैं वाई सॉफ़्टवेयर के भीतर भेद्यता एक्स को कैसे कम करता हूं?", एक उत्तर जो "जेड सॉफ्टवेयर के साथ वाई सॉफ्टवेयर को प्रतिस्थापित करता है" अक्सर एक उपयोगी उत्तर नहीं है। - α CVn
खैर, अभी भी निर्भरता कहलाती है कि इसके आधार पर समस्याएं हैं, इसके अलावा यह बिल्कुल नया हार्डवेयर नहीं है, और इसके अलावा एक प्रणाली होने के कारण मैं अपने distro.version को बदलकर ठीक नहीं कर रहा हूं, हमें कठपुतली से संबंधित सर्वर-सॉफ़्टवेयर मतभेदों से निपटना होगा -management। ऐसा नहीं है कि हमारे पास पूरे ओएस कोर को बदलने का फैसला करने के लिए दुनिया में पर्याप्त समय है। तुलना में एक पैकेज अपग्रेड (यानी अपाचे से निकिनक्स) करने योग्य है। - Julius
Nginx को अपाचे अपग्रेड नहीं है, यह एक प्रतिस्थापन है। बैकपोर्टिंग एक संभावना है। यदि आपके पास अपाचे समाधान में बहुत सारे काम किए गए हैं, तो इसे पूरी तरह से फेंकना और इसे किसी अन्य चीज़ से बदलना भी बहुत काम करता है। और यह सवाल है फिर भी चारों ओर केंद्रित समाधान के बारे में अमरीका की एक मूल जनजाति, Nginx नहीं। मैं इस बारे में बहस करने में और अधिक समय बिताने वाला नहीं हूं; जब आप उत्तर पोस्ट करते हैं, तो सुनिश्चित करें कि वे पृष्ठ शीर्ष पर पूछे गए प्रश्न का उत्तर दें। यदि आप लोगों को अपाचे से Nginx में स्विच करने के लिए प्रोत्साहित करने के लिए एक उत्तर पोस्ट करना चाहते हैं, तो हर तरह से ऐसा करें, लेकिन एक प्रश्न के लिए जो Nginx के लिए अनुमति देता है। - α CVn