मान्यताओं:
सर्वर:
- मेरे पास एक डेबियन निचोड़ सर्वर है, जो सार्वजनिक इंटरनेट पर स्थिर है, एक स्थिर IPv4 पते के साथ।
- सर्वर पर सॉफ्टवेयर को संशोधित करने के लिए मेरे पास अप्रतिबंधित पहुंच है।
- सर्वर मनमानी बंदरगाहों पर सुन सकता है, फ़ायरवॉल नियमों को पुन: कॉन्फ़िगर कर सकता है, मूल रूप से सर्वर पर क्या करना है, इस पर कोई प्रतिबंध नहीं है।
ग्राहक:
- मैं फ़ायरफ़ॉक्स, जावा प्रोग्राम, .NET प्रोग्राम और कुछ मूल निष्पादनयोग्य चला सकता हूं जिनके लिए मेरे स्थानीय सिस्टम (बिना किसी व्यवस्थापक अधिकार के एक लॉक-डाउन विंडोज डेस्कटॉप) पर व्यवस्थापक पहुंच की आवश्यकता नहीं है ।
- मैं फ़ायरफ़ॉक्स में Addons स्थापित कर सकते हैं।
- मैं लूपबैक (
localhost
) इंटरफेस पर किसी भी पोर्ट पर सुन सकता हूं । तो, उपर्युक्त कार्यक्रम एक स्थानीय बंदरगाह से जुड़ सकते हैं और एक प्रॉक्सी के माध्यम से जाने के बिना, मैं / ओ को मनमाना नेटवर्क प्रदर्शन कर सकते हैं। - सभी सार्वजनिक इंटरनेट का उपयोग प्रतिबंधात्मक HTTP प्रॉक्सी के माध्यम से किया जाता है जो कई साइटों को अवरुद्ध करता है, और सावधानीपूर्वक निरीक्षण करता है। पोर्ट 80 पर, यह विशेष रूप से HTTP (कोई टीएलएस / एसएसएल) की अनुमति नहीं देता है। पोर्ट 443 पर, यह
CONNECT
SSL / TLS को दूरस्थ होस्टों के लिए अनुमति देता है जो डोमेन नाम / आईपी पते द्वारा ब्लॉक नहीं किए जाते हैं। - प्रतिबंधात्मक HTTP प्रॉक्सी टीएलएस कनेक्शन के गहरे पैकेट निरीक्षण का प्रदर्शन नहीं करता है जो प्रॉक्सी के माध्यम से अनुमति दी जाती है, और यह उन कनेक्शनों पर मध्य हमलों में मैन का प्रदर्शन नहीं करता है ।
- उपर्युक्त सर्वर जिस तक मेरी पहुंच है, वह प्रॉक्सी द्वारा ब्लॉक नहीं किया गया है।
लक्ष्य:
मैं एसएसएल / टीएलएस के ऊपर, उपरोक्त सर्वर के माध्यम से फ़ायरफ़ॉक्स द्वारा उत्सर्जित सभी HTTP और HTTPS अनुरोधों को रूट करना चाहता हूं ।
"लक्ष्य" के बारे में अन्य नोट:
- यहां तक कि अगर एंडपॉइंट साइट (उदाहरण के लिए
http://superuser.com
) , एसएसएल / टीएलएस का उपयोग अपने सर्वर पर नहीं कर रही है, मैं अभी भी अपने क्लाइंट से एसएसएल / टीएलएस का उपयोग अपने सर्वर पर करना चाहता हूं , और मेरे सर्वर ने HTTP अनुरोध किया है - चाहे एन्क्रिप्ट किया गया हो या नहीं - - मेरी इच्छित जगह पर। - मुझे परवाह नहीं है अगर मेरा सर्वर एसएसएल ट्रैफ़िक को "स्पष्ट" में देख रहा है। दूसरे शब्दों में, मुझे अपने स्थानीय क्लाइंट से दूरस्थ एंड-टू-एंड एसएसएल एन्क्रिप्शन की आवश्यकता नहीं है, अगर रिमोट सर्वर को एक्सेस किया जा रहा है, तो रिमोट सर्वर पर सभी तरह से
https://google.com
। दूसरे शब्दों में, मैं भरोसा सर्वर मेरे डेटा गोपनीय रखने के लिए। - मैं कोई भी सॉफ़्टवेयर या फ़ायरफ़ॉक्स एडोन स्थापित करने के लिए तैयार हूं, जिसे व्यवस्थापक अधिकारों की आवश्यकता नहीं है और 32-बिट विंडोज 7 पर चल सकता है।
- ओपन सोर्स सॉफ्टवेयर को मालिकाना पसंद किया जाता है, और लाइसेंस शुल्क की आवश्यकता वाले सॉफ़्टवेयर पर फ्रीवेयर को प्राथमिकता दी जाती है।
- मौजूदा सॉफ़्टवेयर को नए सॉफ़्टवेयर को कोड करने के लिए पसंद किया जाता है, हालांकि मैं कोड लिखने के लिए तैयार हूं अगर यह एकमात्र तरीका है।
मैं एक ऐसे "समाधान" के बारे में बता रहा हूँ जो वर्णन करता है:
- क्लाइंट को किस सॉफ्टवेयर की आवश्यकता होगी? यदि कोई विशिष्ट सॉफ़्टवेयर पैकेज है जिसके बारे में आप जानते हैं, तो उसे नाम दें; अन्यथा, वर्णन करें कि क्लाइंट सॉफ़्टवेयर को क्या करना होगा ।
- सर्वर पर कौन से सॉफ्टवेयर की आवश्यकता होगी? यदि कोई विशिष्ट सॉफ़्टवेयर पैकेज है जिसके बारे में आप जानते हैं, तो उसे नाम दें; अन्यथा, वर्णन करें कि सर्वर सॉफ़्टवेयर को क्या करना होगा ।
- यदि आपने ऊपर विशिष्ट सॉफ़्टवेयर पैकेज का नाम दिया है, तो वर्णन करें कि मेरे लक्ष्य को पूरा करने के लिए इसे स्थापित करने के लिए कौन से कॉन्फ़िगरेशन पैरामीटर आवश्यक होंगे।
- किसी कारण से आप मानते हैं कि यह है संभव नहीं , का वर्णन क्यों ।
चीजें जो मैंने कोशिश की हैं वे काम नहीं करते
squid
अपने सर्वर पर स्थापित , मैंने अपने सर्वर पर स्वयं का एक मानक HTTP प्रॉक्सी स्थापित करने का प्रयास किया। यह काम नहीं किया, क्योंकि जब मैं नियमित HTTP पर फ़ायरफ़ॉक्स में वेबसाइटों का अनुरोध करता हूं , तो फ़ायरफ़ॉक्स नियमित HTTP पर भी मेरे सर्वर तक पहुंचने की कोशिश करता है! यह स्वीकार्य नहीं है, क्योंकि मेरे स्थानीय नेटवर्क पर प्रॉक्सी मेरे क्लाइंट और सर्वर के बीच नियमित रूप से HTTP ट्रैफ़िक का निरीक्षण और / या ब्लॉक कर सकता है।- वीपीएन काम नहीं करते हैं , टीएलएस पर ओपनवीपीएन भी पोर्ट 443 पर नहीं सुनते हैं, क्योंकि मेरे पास
tun
नेटवर्क एडेप्टर स्थापित करने के लिए स्थानीय कंप्यूटर पर अनुमतियाँ नहीं हैं, जो लेयर 3 राउटिंग कर सकता है, और न ही मैं किसी भी प्रकार की लेयर 2 रूटिंग कर सकता हूं (जैसेtap
)। संक्षेप में: मुझे OpenVPN को स्थापित करने के लिए व्यवस्थापक अधिकारों की आवश्यकता होगी, और यहां तक कि अगर मेरे पास उन व्यवस्थापक अधिकारों को अस्थायी रूप से है, तो कंपनी को कोई भी बहुत प्रसन्न नहीं होगा यदि वे इसे स्थापित करते हैं। एक जावा या .NET प्रोग्राम बहुत कम ध्यान देने योग्य है, खासकर जब यह एड / रिमूव प्रोग्राम्स में स्थापित नहीं होता है और इसमें कोई कर्नेल ड्राइवर घटक नहीं होता है जैसे OpenVPN करता है।
socat
विंडोज क्लाइंट बॉक्स पर मेरे पास या प्रशासनिक विशेषाधिकार नहीं हैं ।