एक पारदर्शी SOCKS प्रॉक्सी कैसे जानती है कि कौन सा गंतव्य IP उपयोग करना है?


18

दो SOCKS परदे के पीछे हैं जो मुझे पता है कि किसी भी आउटगोइंग टीसीपी कनेक्शन के लिए पारदर्शी प्रॉक्सी का समर्थन करते हैं: Tor और redsocks । HTTP प्रॉक्सी के विपरीत, ये SOCKS प्रॉक्सी किसी भी आउटगोइंग टीसीपी कनेक्शन को पारदर्शी रूप से प्रॉक्सी कर सकते हैं , जिसमें मेटाडेटा या हेडर के बिना एन्क्रिप्टेड प्रोटोकॉल और प्रोटोकॉल शामिल हैं।

इन दोनों प्रॉक्सियों को NAT के उपयोग को प्रॉक्सी के स्थानीय पोर्ट पर किसी भी आउटगोइंग टीसीपी ट्रैफिक को रीडायरेक्ट करने की आवश्यकता होती है। उदाहरण के लिए, अगर मैं TransPort 9040अपने स्थानीय मशीन पर टोर चला रहा हूं, तो मुझे इस तरह से एक iptables नियम जोड़ना होगा:

iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040

मेरी जानकारी के लिए, इस के साथ मूल गंतव्य आईपी और बंदरगाह की जगह लेंगे 127.0.0.1और 9040, इसलिए यह देखते हुए कि इस एक एन्क्रिप्टेड धारा (SSH) की तरह या एक हेडर (जैसे बिना है whois ), कैसे प्रॉक्सी मूल गंतव्य आईपी और बंदरगाह पता है?

जवाबों:


28

यहाँ है कि यह कैसे करता है:

static int getdestaddr_iptables(int fd, const struct sockaddr_in *client, const struct sockaddr_in *bindaddr, struct sockaddr_in *destaddr)
{
        socklen_t socklen = sizeof(*destaddr);
        int error;

        error = getsockopt(fd, SOL_IP, SO_ORIGINAL_DST, destaddr, &socklen);
        if (error) {
                log_errno(LOG_WARNING, "getsockopt");
                return -1;
        }
        return 0;
}

iptables मूल गंतव्य पते को ओवरराइट करता है लेकिन यह पुराने को याद करता है। आवेदन कोड तो, एक विशेष सॉकेट विकल्प के लिए पूछ रहा से यह प्राप्त कर सके SO_ORIGINAL_DST


1
बहुत बढ़िया जवाब! तो इसका मतलब है कि आपको उसी कंप्यूटर पर प्रॉक्सी सॉफ्टवेयर चलाना होगा जो NAT को संभाल रहा है, है ना?
होलीपेप

4
बिलकुल, @hololeap। यदि प्रॉक्सी सर्वर को पैकेट पुनर्निर्देशक के रूप में एक अलग सिस्टम पर चलना है तो आपको सिस्को के WCCP जैसे प्रोटोकॉल की आवश्यकता होगी ।
Celada
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.