यह कमांड sslsplit है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
sslsplit - पारदर्शी और स्केलेबल एसएसएल/टीएलएस इंटरसेप्शन
SYNOPSIS
एसएसएलस्प्लिट [-kCKOPZdDgGsrReumjplLSFi] -c pem प्रॉक्सी चश्मा [...]
एसएसएलस्प्लिट [-kCKOPZdDgGsrReumjplLSFi] -c pem -t दीर प्रॉक्सी चश्मा [...]
एसएसएलस्प्लिट [-OPZdDgGsrReumjplLSFi] -t दीर प्रॉक्सी चश्मा [...]
एसएसएलस्प्लिट -E
एसएसएलस्प्लिट -V
एसएसएलस्प्लिट -h
वर्णन
एसएसएलस्प्लिट एसएसएल/टीएलएस एन्क्रिप्टेड नेटवर्क के खिलाफ मैन-इन-द-बीच हमलों के लिए एक उपकरण है
सम्बन्ध। एक नेटवर्क पते के माध्यम से कनेक्शनों को पारदर्शी रूप से इंटरसेप्ट किया जाता है
अनुवाद इंजन और SSLsplit पर पुनर्निर्देशित। एसएसएलस्प्लिट एसएसएल/टीएलएस को समाप्त करता है और आरंभ करता है
सभी डेटा लॉग करते समय मूल गंतव्य पते के लिए एक नया एसएसएल/टीएलएस कनेक्शन
प्रेषित। SSLsplit का उद्देश्य नेटवर्क फोरेंसिक और पैठ के लिए उपयोगी होना है
परीक्षण.
एसएसएलस्प्लिट आईपीवी4 और दोनों पर सादे टीसीपी, सादे एसएसएल, एचटीटीपी और एचटीटीपीएस कनेक्शन का समर्थन करता है
आईपीवी6. एसएसएल और एचटीटीपीएस कनेक्शन के लिए, एसएसएलस्प्लिट जाली X509v3 उत्पन्न करता है और संकेत करता है
मूल सर्वर प्रमाणपत्र विषय डीएन और के आधार पर ऑन-द-फ्लाई प्रमाणपत्र
विषयअल्टनाम एक्सटेंशन। SSLsplit पूरी तरह से सर्वर नेम इंडिकेशन (SNI) का समर्थन करता है और is
आरएसए, डीएसए और ईसीडीएसए कुंजी और डीएचई और ईसीडीएचई सिफर सूट के साथ काम करने में सक्षम। इस पर निर्भर करते हुए
ओपनएसएसएल का संस्करण, एसएसएलस्प्लिट एसएसएल 3.0, टीएलएस 1.0, टीएलएस 1.1 और टीएलएस 1.2 का समर्थन करता है, और
वैकल्पिक रूप से एसएसएल 2.0 भी। SSLsplit मौजूदा प्रमाणपत्रों का भी उपयोग कर सकता है जिनमें से
जाली कुंजी उत्पन्न करने के बजाय निजी कुंजी उपलब्ध है। SSLsplit NULL- का समर्थन करता है
उपसर्ग CN प्रमाणपत्र और सामान्य तरीके से OCSP अनुरोधों को अस्वीकार कर सकते हैं। HTTP और HTTPS के लिए
कनेक्शन, SSLsplit सार्वजनिक कुंजी को रोकने के लिए HPKP के लिए प्रतिक्रिया शीर्षलेख हटा देता है
पिनिंग, HSTS के लिए उपयोगकर्ता को अविश्वसनीय प्रमाणपत्र स्वीकार करने की अनुमति देने के लिए, और वैकल्पिक
QUIC/SPDY पर स्विच करने से रोकने के लिए प्रोटोकॉल।
एसएसएलस्प्लिट कई एनएटी इंजन, स्थिर अग्रेषण और एसएनआई डीएनएस लुकअप का समर्थन करता है
पुनर्निर्देशित कनेक्शनों का मूल गंतव्य निर्धारित करें (देखें NAT ENGINES and PROXY
नीचे निर्दिष्टीकरण).
वास्तव में किसी हमले को लागू करने के लिए, आपको सिस्टम पर ट्रैफ़िक को पुनर्निर्देशित करने की भी आवश्यकता है
दौड़ना एसएसएलस्प्लिट. आपके विकल्पों में दौड़ना शामिल है एसएसएलस्प्लिट वैध राउटर पर, ARP
स्पूफिंग, एनडी स्पूफिंग, डीएनएस पॉइजनिंग, एक दुष्ट एक्सेस प्वाइंट की तैनाती (उदाहरण के लिए होस्टैप का उपयोग करना)
मोड), फिजिकल रीकैबलिंग, दुर्भावनापूर्ण वीएलएएन रीकॉन्फिगरेशन या रूट इंजेक्शन, / Etc / hosts
संशोधन और इतने पर। SSLsplit वास्तविक ट्रैफ़िक पुनर्निर्देशन को लागू नहीं करता है।
विकल्प
-c पेमफाइल
से CA प्रमाणपत्र का उपयोग करें पेमफाइल फर्जी प्रमाण पत्र पर हस्ताक्षर करने के लिए। अगर पेमफाइल
मेल खाने वाली सीए निजी कुंजी भी शामिल है, इसे भी लोड किया गया है, अन्यथा यह होना चाहिए
साथ में उपलब्ध -k. अगर पेमफाइल डिफी-हेलमैन समूह पैरामीटर भी शामिल हैं, वे
भी भरी हुई हैं, अन्यथा उन्हें प्रदान किया जा सकता है -g. अगर -t भी दिया जाता है,
एसएसएलस्प्लिट केवल एक प्रमाण पत्र बनाएगा यदि इसमें कोई मिलान प्रमाण पत्र नहीं है
प्रमाणपत्र निर्देशिका प्रदान की।
-C पेमफाइल
से CA प्रमाणपत्र का उपयोग करें पेमफाइल प्रमाणपत्र श्रृंखला में अतिरिक्त प्रमाणपत्र के रूप में।
सीए के साथ दिए जाने पर इसकी आवश्यकता होती है -k और -c एक उप-सीए है, जिस स्थिति में कोई भी
इंटरमीडिएट सीए प्रमाणपत्र और रूट सीए प्रमाणपत्र को शामिल किया जाना चाहिए
प्रमाणपत्र श्रृंखला।
-d TTY से अलग करें और डेमॉन के रूप में चलाएं, त्रुटि संदेशों को syslog के बजाय लॉगिंग करें
मानक त्रुटि।
-D डिबग मोड में चलाएँ, बहुत सारी डिबगिंग जानकारी को मानक त्रुटि में लॉग करें। ये ब
बल अग्रभूमि मोड और के साथ प्रयोग नहीं किया जा सकता -d.
-e इंजन
उपयोग इंजन के लिए डिफ़ॉल्ट NAT इंजन के रूप में प्रॉक्सी चश्मा स्पष्ट NAT इंजन के बिना,
स्थिर गंतव्य पता या एसएनआई मोड। इंजन NAT इंजनों में से कोई भी हो सकता है
सिस्टम द्वारा समर्थित, जैसा कि द्वारा लौटाया गया -E.
-E सिस्टम पर उपलब्ध सभी समर्थित NAT इंजनों की सूची बनाएं और बाहर निकलें। नेट इंजन देखें
वर्तमान में SSLsplit द्वारा समर्थित NAT इंजनों की सूची के लिए।
-F लॉगस्पेक
दिए गए पथ विनिर्देश के साथ लॉग फ़ाइलों को अलग करने के लिए लॉग कनेक्शन सामग्री (देखें
नीचे निर्दिष्टीकरण लॉग करें)। प्रत्येक कनेक्शन के लिए, एक लॉग फ़ाइल लिखी जाएगी, जो
प्रेषित के रूप में डेटा की दोनों दिशाएँ शामिल होंगी। के बारे में जानकारी
कनेक्शन केवल फ़ाइल नाम में समाहित होगा। अगर -F के साथ प्रयोग किया जाता है -j, लॉगस्पेक
के सापेक्ष है जेलदिरी. अगर -F के साथ प्रयोग किया जाता है -u, लॉगस्पेक द्वारा लिखने योग्य होना चाहिए उपयोगकर्ता.
-g पेमफाइल
से डिफी-हेलमैन समूह पैरामीटर का प्रयोग करें पेमफाइल पंचांग Diffie-Hellman . के लिए
(ईडीएच/डीएचई) सिफर सुइट्स। अगर -g नहीं दिया गया है, SSLsplit पहले DH लोड करने का प्रयास करता है
द्वारा दी गई पीईएम फाइलों से पैरामीटर -K, -k or -c. यदि कोई डीएच पैरामीटर नहीं मिलता है
कुंजी फ़ाइलों में, अंतर्निहित 512 या 1024 बिट समूह पैरामीटर स्वचालित रूप से उपयोग किए जाते हैं
अगर एक गैर-आरएसए निजी कुंजी दी जाती है -K. ऐसा इसलिए है क्योंकि डीएसए/डीएसएस निजी कुंजी
स्वयं द्वारा केवल हस्ताक्षर करने के लिए उपयोग किया जा सकता है और इस प्रकार DH को विनिमय करने की आवश्यकता होती है
एसएसएल/टीएलएस सत्र कुंजी। अगर -g दिया गया है, दिए गए से पैरामीटर पेमफाइल मर्जी
RSA निजी कुंजियों के साथ भी हमेशा उपयोग किया जा सकता है ( . में उपलब्ध सिफर सुइट्स के भीतर)
ओपनएसएसएल)। NS -g विकल्प केवल तभी उपलब्ध होता है जब SSLsplit किसी संस्करण के विरुद्ध बनाया गया हो
ओपनएसएसएल का जो डिफी-हेलमैन सिफर सूट का समर्थन करता है।
-G वक्र
नाम का प्रयोग करें वक्र एफेमेरियल एलिप्टिक कर्व डिफी-हेलमैन (ईईसीडीएच) सिफर के लिए
सुइट्स अगर -G नहीं दिया गया है, एक डिफ़ॉल्ट वक्र (secp160r2) स्वचालित रूप से उपयोग किया जाता है iff
एक गैर-आरएसए निजी कुंजी दी गई है -K. ऐसा इसलिए है क्योंकि ECDSA/ECDSS निजी कुंजी
केवल हस्ताक्षर करने के लिए उपयोग किया जा सकता है और इस प्रकार ईसीडीएच को विनिमय करने की आवश्यकता होती है
एसएसएल/टीएलएस सत्र कुंजी। अगर -G दिया गया है, नाम दिया गया है वक्र हमेशा इस्तेमाल किया जाएगा, यहां तक कि
आरएसए निजी कुंजी के साथ (ओपनएसएसएल में उपलब्ध सिफर सूट के भीतर)। NS -G
विकल्प केवल तभी उपलब्ध होता है जब SSLsplit को OpenSSL के एक संस्करण के विरुद्ध बनाया गया था जो
एलिप्टिक कर्व डिफी-हेलमैन सिफर सुइट्स को सपोर्ट करता है।
-h उपयोग और बाहर निकलने पर सहायता प्रदर्शित करें।
-i प्रत्येक कनेक्शन के लिए, कनेक्शन के स्वामित्व वाली स्थानीय प्रक्रिया खोजें। यह बनाता है
प्रक्रिया की जानकारी जैसे कि पीआईडी, मालिक:समूह और कनेक्शन के लिए निष्पादन योग्य पथ
कनेक्ट लॉग के लिए उपलब्ध SSLsplit के समान सिस्टम पर उत्पन्न होता है और सक्षम करता है
अपने अपने -F पथ विनिर्देश निर्देश। -i मैक ओएस एक्स पर उपलब्ध है और
फ्रीबीएसडी; अन्य प्लेटफार्मों के लिए समर्थन अभी तक लागू नहीं किया गया है।
-j जेलदिरी
रूट डायरेक्टरी को इसमें बदलें जेलदिरी का उपयोग चुरोट(2) फाइलें खोलने के बाद। ध्यान दें
कि इसके लिए निहितार्थ हैं -F, -Sके लिए, और SNI प्रॉक्सी चश्मा. के साथ दिया गया रास्ता
-S or -F के सापेक्ष होगा जेलदिरी चूंकि लॉग फाइलें पहले नहीं खोली जा सकतीं
बुला चुरोट(2). आपके ऑपरेटिंग सिस्टम के आधार पर, आपको फाइलों की प्रतिलिपि बनाने की आवश्यकता होगी
जैसे / Etc / resolv.conf सेवा मेरे जेलदिरी नाम समाधान के लिए काम करने के लिए। का उपयोग करते हुए
SNI प्रॉक्सीस्पेक्ट नाम संकल्प पर निर्भर करता है। कुछ ऑपरेटिंग सिस्टम के लिए विशेष आवश्यकता होती है
डिवाइस नोड्स जैसे / Dev / बातिल जेल के भीतर मौजूद रहना। अपने सिस्टम की जाँच करें
विवरण के लिए दस्तावेज।
-k पेमफाइल
से सीए निजी कुंजी का प्रयोग करें पेमफाइल फर्जी प्रमाण पत्र पर हस्ताक्षर करने के लिए। अगर पेमफाइल
मिलान करने वाला सीए प्रमाणपत्र भी शामिल है, इसे भी लोड किया गया है, अन्यथा यह होना चाहिए
साथ में उपलब्ध -c. अगर पेमफाइल डिफी-हेलमैन समूह पैरामीटर भी शामिल हैं, वे
भी भरी हुई हैं, अन्यथा उन्हें प्रदान किया जा सकता है -g. अगर -t भी दिया जाता है,
एसएसएलस्प्लिट केवल एक प्रमाण पत्र बनाएगा यदि इसमें कोई मिलान प्रमाण पत्र नहीं है
प्रमाणपत्र निर्देशिका प्रदान की।
-K पेमफाइल
से निजी कुंजी का प्रयोग करें पेमफाइल ऑन-द-फ्लाई जाली प्रमाणपत्रों के लिए। अगर -K नहीं है
दिया गया है, SSLsplit एक यादृच्छिक 1024-बिट RSA कुंजी उत्पन्न करेगा।
-l लॉग फ़ाइल
लॉग इन कनेक्शन लॉग फ़ाइल प्रति कनेक्शन प्रारूप में एक पंक्ति में, सहित
पते और पोर्ट और कुछ HTTP और एसएसएल जानकारी, यदि उपलब्ध हो।
-L लॉग फ़ाइल
लॉग कनेक्शन सामग्री लॉग फ़ाइल. सामग्री लॉग में एक पार्स करने योग्य लॉग होगा
प्रेषित डेटा के साथ प्रारूप, कनेक्शन की पहचान करने वाले हेडर के साथ प्रीपेड और
प्रत्येक लॉग सेगमेंट की डेटा लंबाई।
-m विशेषाधिकारों का उपयोग करते समय -u, लक्ष्य प्राथमिक समूह को ओवरराइड करें जिसे सेट किया जाना है
समूह.
-O सभी पर सभी ऑनलाइन प्रमाणपत्र स्थिति प्रोटोकॉल (ओसीएसपी) अनुरोधों को अस्वीकार करें प्रॉक्सी चश्मा और
ओसीएसपी प्रतिक्रिया वाले सभी ओसीएसपी सर्वरों के लिए बाद में कोशिश करेंOCSP क्लाइंट के कारण
अस्थायी रूप से निरस्त प्रमाणपत्र भी स्वीकार करें। HTTP अनुरोधों को माना जा रहा है
OCSP अनुरोध करता है कि क्या विधि है GET और यूआरआई में एक वाक्य रचनात्मक रूप से मान्य है
OCSPRequest ASN.1 संरचना OpenSSL द्वारा पार्स की जा सकती है, या यदि विधि है पोस्ट और
सामग्री प्रकार is आवेदन/ओसीएसपी-अनुरोध. इसके प्रभावी होने के लिए, SSLsplit अवश्य ही
ओसीएसपी सर्वर द्वारा उपयोग किए जाने वाले बंदरगाह पर आने वाले यातायात को संभालना। विशेष रूप से,
SSLsplit को OCSP सर्वर द्वारा उपयोग किए जाने वाले सभी पोर्ट पर ट्रैफ़िक प्राप्त करने के लिए कॉन्फ़िगर किया जाना चाहिए
के भीतर लक्षित प्रमाण पत्र सर्टिफ़िकेट इसके द्वारा निर्दिष्ट -t.
-p पिडफाइल
प्रक्रिया आईडी को लिखें पिडफाइल और दौड़ने से मना कर दें यदि पिडफाइल यह पहले से ही उपयोग में है
किसी अन्य प्रक्रिया द्वारा।
-P पासथ्रू एसएसएल/टीएलएस कनेक्शन जिन्हें छोड़ने के बजाय विभाजित नहीं किया जा सकता है।
कनेक्शन विभाजित नहीं किया जा सकता अगर -c और -k नहीं दिए गए हैं और साइट मेल नहीं खाती
का उपयोग कर लोड किया गया कोई भी प्रमाणपत्र -t, या यदि मूल सर्वर से कनेक्शन देता है
एसएसएल/टीएलएस त्रुटियां। विशेष रूप से, ऐसा तब होता है जब साइट क्लाइंट से अनुरोध करती है
प्रमाणपत्र। पासथ्रू के साथ -P ग्राहकों के लिए निर्बाध सेवा में परिणाम,
बिना निगरानी वाले कनेक्शन होने चाहिए तो ड्रॉपिंग अधिक सुरक्षित विकल्प है
रोका हुआ।
-r आद्य
एसएसएल/टीएलएस प्रोटोकॉल संस्करण को क्लाइंट और सर्वर दोनों तरफ से बाध्य करें आद्य चयन करके
डिफ़ॉल्ट SSLv23_method () के बजाय संबंधित OpenSSL विधि निर्माता
जो सभी प्रोटोकॉल संस्करणों का समर्थन करता है। यह तब उपयोगी होता है जब a . के लिए ट्रैफ़िक का विश्लेषण किया जाता है
सर्वर जो केवल एसएसएल/टीएलएस के एक विशिष्ट संस्करण का समर्थन करता है और लागू नहीं करता है
उचित प्रोटोकॉल बातचीत। बिल्ड विकल्पों और ओपनएसएसएल के संस्करण के आधार पर
जिसका उपयोग किया जाता है, निम्नलिखित मानों के लिए आद्य स्वीकार किए जाते हैं: एसएसएल2, एसएसएल3, tls10 .XNUMX, tls11 .XNUMX
और tls12 .XNUMX. ध्यान दें कि एसएसएल 2.0 समर्थन डिफ़ॉल्ट रूप से नहीं बनाया गया है क्योंकि कुछ
सर्वर एसएसएल 2.0 क्लाइंट हैलो संदेशों को इनायत से हैंडल नहीं करते हैं।
-R आद्य
एसएसएल/टीएलएस प्रोटोकॉल संस्करण को अक्षम करें आद्य क्लाइंट और सर्वर दोनों तरफ
OpenSSL में संबंधित प्रोटोकॉल को अक्षम करना। एकाधिक प्रोटोकॉल को अक्षम करने के लिए
संस्करणों, -R कई बार दिया जा सकता है। अगर -r भी दिया जाता है, नहीं होगा
अन्य प्रोटोकॉल संस्करणों को अक्षम करने में प्रभाव। प्रोटोकॉल संस्करणों को अक्षम करना उपयोगी है
किसी सर्वर पर ट्रैफ़िक का विश्लेषण करते समय जो कुछ प्रोटोकॉल संस्करणों को हैंडल नहीं करता है
ठीक है, या विभिन्न प्रोटोकॉल संस्करणों के साथ व्यवहार का परीक्षण करने के लिए। बिल्ड . पर निर्भर करता है
विकल्प और उपयोग किए जाने वाले ओपनएसएसएल के संस्करण, के लिए निम्नलिखित मान: आद्य रहे
स्वीकार किए जाते हैं: एसएसएल2, एसएसएल3, tls10 .XNUMX, tls11 .XNUMX और tls12 .XNUMX. ध्यान दें कि एसएसएल 2.0 समर्थन नहीं है
डिफ़ॉल्ट रूप से बनाया गया है क्योंकि कुछ सर्वर एसएसएल 2.0 क्लाइंट हैलो संदेशों को संभाल नहीं पाते हैं
शान से।
-s सिफर
ओपनएसएसएल का प्रयोग करें सिफर सर्वर और क्लाइंट एसएसएल/टीएलएस कनेक्शन दोनों के लिए विनिर्देश।
If -s की एक सिफर सूची नहीं दी गई है सभी:-एक पूर्ण प्रयोग किया जाता है। आम तौर पर, एसएसएल/टीएलएस
कार्यान्वयन सबसे सुरक्षित सिफर सूट चुनते हैं, सबसे तेज़ नहीं। द्वारा
एक उपयुक्त ओपनएसएसएल सिफर सूची निर्दिष्ट करते हुए, सिफर सूट का सेट हो सकता है
तेज़ एल्गोरिदम तक सीमित, या पूरी तरह से सिफर सुइट्स जोड़े जा सकते हैं। ध्यान दें कि
सफल होने के लिए, SSLsplit सिफर सूट में कम से कम एक शामिल होना चाहिए
प्रत्येक कनेक्शन के क्लाइंट और सर्वर दोनों द्वारा समर्थित सिफर सूट। देखो
सिफर(1) ओपनएसएसएल सिफर सूचियों के निर्माण के बारे में विवरण के लिए।
-S लोगदिर
लॉग फ़ाइलों को अलग करने के लिए लॉग कनेक्शन सामग्री के अंतर्गत लोगदिर. प्रत्येक कनेक्शन के लिए, a
लॉग फ़ाइल लिखी जाएगी, जिसमें डेटा की दोनों दिशाएँ होंगी:
प्रेषित। कनेक्शन के बारे में जानकारी फ़ाइल नाम में समाहित होगी
केवल। अगर -S के साथ प्रयोग किया जाता है -j, लोगदिर के सापेक्ष है जेलदिरी. अगर -S के साथ प्रयोग किया जाता है
-u, लोगदिर द्वारा लिखने योग्य होना चाहिए उपयोगकर्ता.
-t सर्टिफ़िकेट
PEM फ़ाइलों से निजी कुंजी, प्रमाणपत्र और प्रमाणपत्र श्रृंखला का उपयोग करें सर्टिफ़िकेट एसटी
जाली प्रमाणपत्रों का उपयोग करने के बजाय संबंधित सामान्य नामों से मेल खाने वाली साइटें
उड़ान पर। एक एकल पीईएम फ़ाइल में एक निजी कुंजी, एक एकल होना चाहिए
प्रमाणपत्र और वैकल्पिक रूप से इंटरमीडिएट और रूट सीए प्रमाणपत्र के रूप में उपयोग करने के लिए
प्रमाणपत्र श्रृंखला। अगर -c और -k भी दिए जाते हैं, प्रमाण-पत्र जाली होंगे-
से लोड किए गए किसी भी प्रमाणपत्र से मेल खाने वाली साइटों के लिए उड़ान भरें सर्टिफ़िकेट.
अन्यथा, बिना प्रमाणपत्र से मेल खाने वाले कनेक्शन छोड़ दिए जाएंगे, या यदि -P दिया हुआ है,
एसएसएल/टीएलएस को विभाजित किए बिना पारित किया गया।
-u वास्तविक, प्रभावी और सेट करके सॉकेट और फाइलें खोलने के बाद विशेषाधिकारों को छोड़ दें
करने के लिए संग्रहीत उपयोगकर्ता आईडी उपयोगकर्ता और उपयुक्त प्राथमिक और सहायक समूहों को लोड करना।
If -u नहीं दिया गया है, अगर ईयूआईडी != यूआईडी
(सेटयूड बिट परिदृश्य), या to कोई नहीं अगर पूरी तरह से चल रहा है जड़ विशेषाधिकार (ईयूआईडी ==
यूआईडी == 0) और -S उपयोग नहीं होता है। Apple बग के कारण, -u के साथ प्रयोग नहीं किया जा सकता pf
मैक ओएस एक्स पर प्रॉक्सीस्पेक्ट्स।
-V प्रदर्शन संस्करण और संकलित सुविधाओं की जानकारी और बाहर निकलें।
-Z सभी कनेक्शनों पर एसएसएल/टीएलएस संपीड़न अक्षम करें। यह उपयोगी है यदि आपका सीमित
कारक सीपीयू है, नेटवर्क बैंडविड्थ नहीं। NS -Z विकल्प केवल तभी उपलब्ध होता है जब SSLsplit
ओपनएसएसएल के एक संस्करण के खिलाफ बनाया गया था जो संपीड़न को अक्षम करने का समर्थन करता है।
प्रॉक्सी विशेष विवरण
प्रॉक्सी विनिर्देश (प्रॉक्सी चश्मा) कनेक्शन प्रकार से मिलकर बनता है, पता सुनो और
स्थिर आगे का पता या पता समाधान तंत्र (एनएटी इंजन, एसएनआई डीएनएस लुकअप):
hTTPS सुनोअद्र बंदरगाह [नेट-इंजन|fwdaddr बंदरगाह|SNI बंदरगाह]
ssl सुनोअद्र बंदरगाह [नेट-इंजन|fwdaddr बंदरगाह|SNI बंदरगाह]
http सुनोअद्र बंदरगाह [नेट-इंजन|fwdaddr बंदरगाह]
टी सी पी सुनोअद्र बंदरगाह [नेट-इंजन|fwdaddr बंदरगाह]
hTTPS एचपीकेपी को हटाने सहित एचटीटीपी प्रोटोकॉल डिकोडिंग के साथ एसएसएल/टीएलएस इंटरसेप्शन,
HSTS और वैकल्पिक प्रोटोकॉल प्रतिक्रिया शीर्षलेख।
ssl बिना किसी निचले स्तर के प्रोटोकॉल डिकोडिंग के एसएसएल/टीएलएस इंटरसेप्शन; decrypted
कनेक्शन सामग्री को बाइट्स की अपारदर्शी धारा के रूप में माना जाता है और संशोधित नहीं किया जाता है।
http एसएसएल/टीएलएस के बिना सादा टीसीपी कनेक्शन, एचटीटीपी प्रोटोकॉल डिकोडिंग के साथ, जिसमें शामिल हैं
एचपीकेपी, एचएसटीएस और वैकल्पिक प्रोटोकॉल प्रतिक्रिया शीर्षलेखों को हटाना।
टी सी पी एसएसएल/टीएलएस के बिना और बिना किसी निचले स्तर प्रोटोकॉल डिकोडिंग के सादा टीसीपी कनेक्शन;
डिक्रिप्टेड कनेक्शन सामग्री को बाइट्स की अपारदर्शी धारा के रूप में माना जाता है और संशोधित नहीं किया जाता है।
सुनोअद्र बंदरगाह
IPv4 या IPv6 पता और पोर्ट या सेवा का नाम सुनने के लिए। यह पता है
और पोर्ट जहां NAT इंजन को कनेक्शन पुनर्निर्देशित करना चाहिए।
नेट-इंजन
NAT इंजन के मूल गंतव्य पते और बंदरगाह का निर्धारण करने के लिए पूछताछ करने के लिए
पारदर्शी रूप से पुनर्निर्देशित कनेक्शन। यदि कोई इंजन नहीं दिया गया है, तो डिफ़ॉल्ट इंजन है
उपयोग किया जाता है, जब तक कि इसे ओवरराइड न किया जाए -e. NAT इंजन का उपयोग करते समय, एसएसएलस्प्लिट चलने की जरूरत है
यातायात को पुनर्निर्देशित करने के लिए NAT नियमों के समान प्रणाली एसएसएलस्प्लिट. नाटो देखें
समर्थित NAT इंजनों की सूची के लिए इंजन।
fwdaddr बंदरगाह
स्थिर गंतव्य पता, IPv4 या IPv6, पोर्ट या सेवा नाम के साथ। जब यह
उपयोग किया जाता है, कनेक्शन दिए गए सर्वर पते और पोर्ट पर अग्रेषित किए जाते हैं। अगर fwdaddr
एक होस्टनाम है, इसे एक आईपी पते पर हल किया जाएगा।
SNI बंदरगाह
ClientHello में क्लाइंट द्वारा भेजे गए सर्वर नेम इंडिकेशन (SNI) होस्टनाम का उपयोग करें
कनेक्ट करने के लिए सर्वर का आईपी पता निर्धारित करने के लिए एसएसएल/टीएलएस संदेश। केवल यही
के लिए काम करता है ssl और hTTPS प्रॉक्सी चश्मा और एक तर्क के रूप में एक बंदरगाह या सेवा नाम की जरूरत है।
क्योंकि इसके लिए DNS लुकअप की आवश्यकता होती है, NAT इंजन लुकअप का उपयोग करना बेहतर होता है (देखें
ऊपर), सिवाय इसके कि जब यह संभव न हो, जैसे कि जब कोई समर्थित NAT न हो
इंजन या दौड़ते समय एसएसएलस्प्लिट NAT नियमों से भिन्न प्रणाली पर
वास्तविक कनेक्शन को पुनर्निर्देशित करना। ध्यान दें कि उपयोग करते समय -j साथ में SNI, आप को आवश्यकता हो सकती
तैयार करने के लिए जेलदिरी नाम समाधान chroot निर्देशिका के भीतर से काम करने के लिए।
LOG विशेष विवरण
लॉग विनिर्देश शून्य या अधिक प्रिंटफ-शैली निर्देशों से बने होते हैं; साधारण
वर्ण सीधे आउटपुट पथ में शामिल होते हैं। एसएसएलस्प्लिट करंट का समर्थन करता है
निम्नलिखित निर्देश:
%T ISO 8601 UTC टाइमस्टैम्प के रूप में प्रारंभिक कनेक्शन समय।
%d गंतव्य पता और बंदरगाह।
%s स्रोत का पता और बंदरगाह।
%x स्थानीय प्रक्रिया का नाम। आवश्यक है -i इस्तेमाल किया जाएगा। यदि प्रक्रिया की जानकारी है
अनुपलब्ध, यह निर्देश आउटपुट पथ से हटा दिया जाएगा।
%X स्थानीय प्रक्रिया का पूरा पथ। आवश्यक है -i इस्तेमाल किया जाएगा। अगर प्रक्रिया
जानकारी अनुपलब्ध है, यह निर्देश आउटपुट पथ से हटा दिया जाएगा।
%u स्थानीय प्रक्रिया का उपयोगकर्ता नाम या संख्यात्मक यूआईडी। आवश्यक है -i इस्तेमाल किया जाएगा। अगर
प्रक्रिया की जानकारी उपलब्ध नहीं है, यह निर्देश आउटपुट से हटा दिया जाएगा
पथ।
%g स्थानीय प्रक्रिया का समूह का नाम या संख्यात्मक gid. आवश्यक है -i इस्तेमाल किया जाएगा। अगर
प्रक्रिया की जानकारी उपलब्ध नहीं है, यह निर्देश आउटपुट से हटा दिया जाएगा
पथ।
%% एक शाब्दिक '%' वर्ण।
NAT इंजन
SSLsplit वर्तमान में निम्नलिखित NAT इंजनों का समर्थन करता है:
pf ओपनबीएसडी पैकेट फिल्टर (पीएफ) आरडीआर/आरडीआर-टू NAT पुनर्निर्देशन, FreeBSD पर भी उपलब्ध है,
NetBSD और Mac OS X. IPv6 सहित पूरी तरह से समर्थित। इनबाउंड इंटरफ़ेस मानते हुए
em0, पहले पुराने (फ्रीबीएसडी, मैक ओएस एक्स) में, फिर नए (ओपनबीएसडी 4.7+) सिंटैक्स में:
आरडीआर पास on em0 आद्य टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई बंदरगाह 80
-> :: 1 बंदरगाह 10080
आरडीआर पास on em0 आद्य टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई बंदरगाह 443
-> :: 1 बंदरगाह 10443
आरडीआर पास on em0 आद्य टी सी पी से 192.0.2.0/24 सेवा मेरे कोई बंदरगाह 80
-> 127.0.0.1 बंदरगाह 10080
आरडीआर पास on em0 आद्य टी सी पी से 192.0.2.0/24 सेवा मेरे कोई बंदरगाह 443
-> 127.0.0.1 बंदरगाह 10443
पास in त्वरित on em0 आद्य टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई
बंदरगाह 80 आरडीआर-टू :: 1 बंदरगाह 10080
पास in त्वरित on em0 आद्य टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई
बंदरगाह 443 आरडीआर-टू :: 1 बंदरगाह 10443
पास in त्वरित on em0 आद्य टी सी पी से 192.0.2.0/24 सेवा मेरे कोई
बंदरगाह 80 आरडीआर-टू 127.0.0.1 बंदरगाह 10080
पास in त्वरित on em0 आद्य टी सी पी से 192.0.2.0/24 सेवा मेरे कोई
बंदरगाह 443 आरडीआर-टू 127.0.0.1 बंदरगाह 10443
आईपीएफडब्ल्यू फ्रीबीएसडी आईपी फ़ायरवॉल (आईपीएफडब्ल्यू) डायवर्ट सॉकेट, मैक ओएस एक्स पर भी उपलब्ध है। उपलब्ध
फ्रीबीएसडी और ओपनबीएसडी पर pf . का उपयोग कर डायवर्ट-टू. फ्रीबीएसडी और ओपनबीएसडी पर पूरी तरह से समर्थित,
आईपीवी6 सहित। IPFW के प्राचीन संस्करण के कारण केवल Mac OS X पर IPv4 का समर्थन करता है
शामिल। पहले IPFW में, फिर pf . में डायवर्ट-टू वाक्य - विन्यास:
आईपीएफडब्ल्यू जोड़ना FWD :: 1,10080 टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई 80
आईपीएफडब्ल्यू जोड़ना FWD :: 1,10443 टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई 443
आईपीएफडब्ल्यू जोड़ना FWD 127.0.0.1,10080 टी सी पी से 192.0.2.0/24 सेवा मेरे कोई 80
आईपीएफडब्ल्यू जोड़ना FWD 127.0.0.1,10443 टी सी पी से 192.0.2.0/24 सेवा मेरे कोई 443
पास in त्वरित on em0 आद्य टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई
बंदरगाह 80 डायवर्ट-टू :: 1 बंदरगाह 10080
पास in त्वरित on em0 आद्य टी सी पी से 2001: db8 :: / 64 सेवा मेरे कोई
बंदरगाह 443 डायवर्ट-टू :: 1 बंदरगाह 10443
पास in त्वरित on em0 आद्य टी सी पी से 192.0.2.0/24 सेवा मेरे कोई
बंदरगाह 80 डायवर्ट-टू 127.0.0.1 बंदरगाह 10080
पास in त्वरित on em0 आद्य टी सी पी से 192.0.2.0/24 सेवा मेरे कोई
बंदरगाह 443 डायवर्ट-टू 127.0.0.1 बंदरगाह 10443
आईपीफिल्टर
आईपीफिल्टर (आईपीफिल्टर, आईपीएफ), फ्रीबीएसडी, नेटबीएसडी सहित कई प्रणालियों पर उपलब्ध है।
लिनक्स और सोलारिस। SIOCGNATL की सीमाओं के कारण केवल IPv4 का समर्थन करता है ioctls(2)
इंटरफेस। इनबाउंड इंटरफ़ेस मानते हुए बीजी0:
आरडीआर बीजी0 0.0.0.0/0 बंदरगाह 80 -> 127.0.0.1 बंदरगाह 10080
आरडीआर बीजी0 0.0.0.0/0 बंदरगाह 443 -> 127.0.0.1 बंदरगाह 10443
नेटफिल्टर
iptables REDIRECT लक्ष्य का उपयोग कर Linux netfilter. केवल के कारण IPv4 का समर्थन करता है
SO_ORIGINAL_DST . में सीमाएं getsockopt(2) इंटरफ़ेस।
iptables -t नेट -A PREROUTING -s 192.0.2.0/24
-p टी सी पी --dport 80
-j पुन: निर्देशित करें --से-बंदरगाहों 10080
iptables -t नेट -A PREROUTING -s 192.0.2.0/24
-p टी सी पी --dport 443
-j पुन: निर्देशित करें --से-बंदरगाहों 10443
tproxy रूटिंग टेबल मैजिक के साथ iptables TPROXY लक्ष्य का उपयोग करके लिनक्स नेटफिल्टर
गैर-स्थानीय यातायात को स्थानीय सॉकेट पर उत्पन्न करने की अनुमति देने के लिए। पूरी तरह से समर्थित,
आईपीवी6 सहित।
ip -f इनेट6 शासन जोड़ना fwmark 1 लुकअप 100
ip -f इनेट6 मार्ग जोड़ना स्थानीय चूक देव lo तालिका 100
ip6टेबल्स -t वध करना -N मोड़ना
ip6टेबल्स -t वध करना -A मोड़ना -j निशान --सेट-चिह्न 1
ip6टेबल्स -t वध करना -A मोड़ना -j स्वीकार करना
ip6टेबल्स -t वध करना -A PREROUTING -p टी सी पी -m सॉकेट -j मोड़ना
ip6टेबल्स -t वध करना -A PREROUTING -s 2001: db8 :: / 64
-p टी सी पी --dport 80
-j TPROXY --tproxy-चिह्न 0x1 / 0x1 --ऑन-पोर्ट 10080
ip6टेबल्स -t वध करना -A PREROUTING -s 2001: db8 :: / 64
-p टी सी पी --dport 443
-j TPROXY --tproxy-चिह्न 0x1 / 0x1 --ऑन-पोर्ट 10443
ip -f मंत्रिमंडल शासन जोड़ना fwmark 1 लुकअप 100
ip -f मंत्रिमंडल मार्ग जोड़ना स्थानीय चूक देव lo तालिका 100
iptables -t वध करना -N मोड़ना
iptables -t वध करना -A मोड़ना -j निशान --सेट-चिह्न 1
iptables -t वध करना -A मोड़ना -j स्वीकार करना
iptables -t वध करना -A PREROUTING -p टी सी पी -m सॉकेट -j मोड़ना
iptables -t वध करना -A PREROUTING -s 192.0.2.0/24
-p टी सी पी --dport 80
-j TPROXY --tproxy-चिह्न 0x1 / 0x1 --ऑन-पोर्ट 10080
iptables -t वध करना -A PREROUTING -s 192.0.2.0/24
-p टी सी पी --dport 443
-j TPROXY --tproxy-चिह्न 0x1 / 0x1 --ऑन-पोर्ट 10443
ध्यान दें कि रिटर्न पथ फ़िल्टरिंग (rp_filter) को भी इंटरफेस पर अक्षम करने की आवश्यकता है
जो TPROXY रीडायरेक्ट ट्रैफिक को हैंडल करते हैं।
उदाहरण
उपरोक्त NAT इंजन कॉन्फ़िगरेशन नमूनों से मेल खाते हुए, IPv4 पर HTTP और HTTPS को इंटरसेप्ट करें
और IPv6 CA निजी कुंजी के साथ जाली प्रमाणपत्रों का उपयोग कर रहा है सीए.की और प्रमाण पत्र सीए.सीआरटी,
लॉगिंग कनेक्शन कनेक्ट.लॉग और कनेक्शन डेटा के तहत अलग फाइलों में / Tmp (जोड़ने
-e नेट-इंजन यदि आपके पास कई इंजन उपलब्ध हैं तो उपयुक्त इंजन का चयन करने के लिए
प्रणाली):
एसएसएलस्प्लिट -k सीए.की -c सीए.सीआरटी -l कनेक्ट.लॉग -L / Tmp
hTTPS :: 1 10443 hTTPS 127.0.0.1 10443
http :: 1 10080 http 127.0.0.1 10080
समान सेटिंग्स का उपयोग करके IMAP/IMAPS को इंटरसेप्ट करना:
एसएसएलस्प्लिट -k सीए.की -c सीए.सीआरटी -l कनेक्ट.लॉग -L / Tmp
ssl :: 1 10993 ssl 127.0.0.1 10993
टी सी पी :: 1 10143 टी सी पी 127.0.0.1 10143
एक अधिक लक्षित सेटअप, केवल HTTPS, प्रमाणपत्र/श्रृंखला/कुंजी फ़ाइलों का उपयोग करके /पथ/से/सर्टिफिकेट.d
और स्थिर रूप से रीडायरेक्ट कर रहा है www.example.org NAT इंजन को क्वेरी करने के बजाय:
एसएसएलस्प्लिट -t /पथ/से/सर्टिफिकेट.d -l कनेक्ट.लॉग -L / Tmp
hTTPS :: 1 10443 www.example.org 443
hTTPS 127.0.0.1 10443 www.example.org 443
मूल उदाहरण, लेकिन संपीड़न को अक्षम करके गति के लिए अनुकूलित एसएसएल विकल्पों का उपयोग करना
और केवल तेज़ ब्लॉक सिफर सिफर सुइट्स का चयन करना और एक पूर्व-गणना की गई निजी कुंजी का उपयोग करना
पत्ता.कुंजी जाली प्रमाणपत्रों के लिए (सबसे महत्वपूर्ण गति वृद्धि द्वारा प्राप्त की जाती है
CA और लीफ प्राइवेट कीज़ के लिए तेज़ एल्गोरिदम और छोटी कुंजियों को चुनना; जाँच
openssl गति आपके सिस्टम पर एल्गोरिथम प्रदर्शन के लिए):
एसएसएलस्प्लिट -Z -s न्यूल: आरसी 4: एईएस 128 -K पत्ता.कुंजी
-k सीए.की -c सीए.सीआरटी -l कनेक्ट.लॉग -L / Tmp
hTTPS :: 1 10443 hTTPS 127.0.0.1 10443
http :: 1 10080 http 127.0.0.1 10080
मूल उदाहरण, लेकिन उपयोगकर्ता के तहत एक डेमॉन के रूप में चल रहा है एसएसएलस्प्लिट और एक पीआईडी फाइल लिखना:
एसएसएलस्प्लिट -d -p /var/run/sslsplit.pid -u एसएसएलस्प्लिट
-k सीए.की -c सीए.सीआरटी -l कनेक्ट.लॉग -L / Tmp
hTTPS :: 1 10443 hTTPS 127.0.0.1 10443
http :: 1 10080 http 127.0.0.1 10080
CA निजी कुंजी जनरेट करने के लिए सीए.की और प्रमाण पत्र सीए.सीआरटी ओपनएसएसएल का उपयोग करना:
बिल्ली >x509v3ca.cnf <<'ईओएफ'
[ अनुरोध ]
विशिष्ट_नाम = reqdn
[ अनुरोध ]
[v3_ca]
बुनियादी बाधाएँ = सीए: TRUE
विषयकी पहचानकर्ता = हैश
प्राधिकारकी पहचानकर्ता = कीआईडी:हमेशा, जारीकर्ता:हमेशा
EOF
openssl जेनर्सा -बाहर सीए.की 1024
openssl अनुरोध -नया -नोड्स -x509 -शा1 -बाहर सीए.सीआरटी -चाभी सीए.की
-ऑफिग x509v3ca.cnf -विस्तार v3_ca
-सुब्जो '/ ओ=एसएसएलस्प्लिट जड़ सीए/सीएन=एसएसएलस्प्लिट जड़ सीए/'
-सेट_सीरियल 0 -वार का दिन 3650
टिप्पणियाँ
SSLsplit एक के कारण अपेक्षाकृत अधिक संख्या में श्रोताओं और कनेक्शनों को संभालने में सक्षम है
मंच का लाभ उठाते हुए बहुप्रचारित, घटना आधारित वास्तुकला libevent पर आधारित है
विशिष्ट चयन () प्रतिस्थापन जैसे kqueue. मुख्य सूत्र श्रोताओं को संभालता है और
सिग्नलिंग, जबकि कई वर्कर थ्रेड सीपीयू कोर की संख्या के दोगुने के बराबर है
सीपीयू सहित अलग-अलग इवेंट बेस में वास्तविक कनेक्शन को संभालने के लिए उपयोग किया जाता है-
गहन एसएसएल/टीएलएस हैंडलिंग।
कैशिंग प्रमाणपत्रों के लिए अच्छा प्रदर्शन करने वाली डेटा संरचनाओं को चुनने के लिए सावधानी बरती गई है और
एसएसएल सत्र। लॉगिंग को यह सुनिश्चित करने के लिए अलग डिस्क राइटर थ्रेड्स में कार्यान्वित किया जाता है कि
सॉकेट इवेंट हैंडलिंग थ्रेड्स को डिस्क I/O पर ब्लॉक करने की आवश्यकता नहीं है। DNS लुकअप किए जाते हैं
अतुल्यकालिक रूप से। SSLsplit की मात्रा को कम करने के लिए दोनों सिरों पर SSL सत्र कैशिंग का उपयोग करता है
पूर्ण एसएसएल हैंडशेक, लेकिन फिर भी, एसएसएल कनेक्शन को संभालने में सीमित कारक हैं
वास्तविक बिग्नम गणना।
onworks.net सेवाओं का उपयोग करके ऑनलाइन sslsplit का उपयोग करें