একটি স্বচ্ছ সোসক্স প্রক্সি কীভাবে জানতে পারে যে কোন গন্তব্য আইপি ব্যবহার করতে হবে?


18

দুটি সোকস প্রক্সি রয়েছে যেগুলি সম্পর্কে আমি জানি যে কোনও বিদায়ী টিসিপি সংযোগের জন্য স্বচ্ছ প্রক্সিং সমর্থন করে: টর এবং রেডসকস । এইচটিটিপি প্রক্সির বিপরীতে, এই সোকস প্রক্সগুলি স্বচ্ছভাবে মেটাডেটা বা শিরোনাম ছাড়াই এনক্রিপ্ট হওয়া প্রোটোকল এবং প্রোটোকল সহ যেকোন বিদায়ী টিসিপি সংযোগের প্রক্সি করতে পারে xy

এই উভয় প্রক্সিই প্রক্সিটির স্থানীয় বন্দরে যেকোন বিদায়ী টিসিপি ট্র্যাফিক পুনর্নির্দেশের জন্য NAT এর ব্যবহার প্রয়োজন। উদাহরণস্বরূপ, আমি যদি TransPort 9040আমার স্থানীয় মেশিনে টর চালাচ্ছি তবে আমাকে এই জাতীয় iptables নিয়ম যুক্ত করতে হবে:

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

আমার জ্ঞান অনুসারে, এটি আসল গন্তব্য আইপি এবং পোর্টের সাথে প্রতিস্থাপন করবে 127.0.0.1এবং 9040এটি একটি এনক্রিপ্ট করা প্রবাহ (যেমন এসএসএইচ) বা শিরোনামহীন ( হুইস এর মতো ), প্রক্সিটি কীভাবে মূল গন্তব্য আইপি এবং পোর্টকে জানতে পারে?

উত্তর:


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
দুর্দান্ত উত্তর! সুতরাং এর অর্থ হ'ল যে আপনাকে একই কম্পিউটারে প্রক্সি সফ্টওয়্যারটি চালিয়ে যেতে হবে যা নেটটি পরিচালনা করছে, তাই না?
hololeap

4
একেবারে, @ হোলোলাপ যদি প্রক্সি সার্ভারটি প্যাকেট পুনঃনির্দেশক হিসাবে অন্য কোনও সিস্টেমে চালিত হয় তবে আপনার সিসকো ডাব্লুসিসিপির মতো প্রোটোকল প্রয়োজন ।
সেলেডা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.