मुझे पोर्ट 80 से गुजरने वाले ट्रैफ़िक का निरीक्षण करने के लिए 2 नेटवर्क कार्डों के साथ एक बॉक्स बॉक्स मिला है। एक कार्ड का उपयोग इंटरनेट से बाहर जाने के लिए किया जाता है, दूसरे को एक नेटवर्किंग स्विच से जोड़ा जाता है। बिंदु डिबगिंग उद्देश्यों के लिए उस स्विच पर झुके हुए सभी HTTP और HTTPS ट्रैफ़िक का निरीक्षण करने में सक्षम होने के लिए है।
मैंने iptables के लिए निम्नलिखित नियम लिखे हैं:
nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
192.168.2.1:1337 को, मुझे रिकॉर्डिंग के लिए चार्ल्स ( http://www.charlesproxy.com/ ) का उपयोग करके पारदर्शी http प्रॉक्सी मिला है ।
पोर्ट 80 के लिए सब कुछ ठीक है, लेकिन जब मैं पोर्ट 1337 की ओर इशारा करते हुए पोर्ट 443 (एसएसएल) के लिए समान नियम जोड़ता हूं, तो मुझे चार्ल्स के माध्यम से अमान्य संदेश के बारे में एक त्रुटि मिलती है।
मैंने पहले चार्ल्स ( http://www.charlesproxy.com/documentation/proxying/ssl-proxying/ ) के साथ एक ही कंप्यूटर पर SSL प्रॉक्सी का उपयोग किया है , लेकिन किसी कारणवश इसे पारदर्शी तरीके से करने में असफल रहा है। कुछ संसाधन जो मैंने गुगले किए हैं वे कहते हैं कि यह संभव नहीं है - मैं इसे एक उत्तर के रूप में स्वीकार करने के लिए तैयार हूं यदि कोई समझा सकता है कि क्यों।
नोट के रूप में, मेरे पास वर्णित सेट तक पूरी पहुंच है, जिसमें सबनेट तक शामिल हैं - इसलिए मैं चार्ल्स द्वारा स्व-हस्ताक्षरित सेर्ट्स स्वीकार कर सकता हूं। सिद्धांत से समाधान के लिए चार्ल्स-विशिष्ट होना जरूरी नहीं है, कोई भी पारदर्शी प्रॉक्सी करेगा।
धन्यवाद!
संपादित करें: इसके साथ थोड़ा खेलने के बाद, मैं इसे एक विशिष्ट मेजबान के लिए काम करने में सक्षम था। जब मैं अपने iptables को संशोधित करता हूं (और रिवर्स प्रॉक्सी के लिए चार्ल्स में 1338 खोलता हूं):
nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.2.1:1338
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 1338
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
मैं एक प्रतिक्रिया पाने में सक्षम हूं, लेकिन कोई गंतव्य होस्ट नहीं है। रिवर्स प्रॉक्सी में, अगर मैं केवल यह निर्दिष्ट करता हूं कि 1338 से सब कुछ एक विशिष्ट होस्ट के पास जाता है जिसे मैं हिट करना चाहता था, तो यह हैंड शेक ठीक से करता है और मैं संचार का निरीक्षण करने के लिए SSL प्रॉक्सी को चालू कर सकता हूं।
सेटअप आदर्श से कम है क्योंकि मैं नहीं चाहता कि 1338 से सब कुछ उस होस्ट को चला जाए - कोई भी विचार क्यों गंतव्य होस्ट छीन लिया जा रहा है?
एक बार फिर धन्यवाद