আমি বিশ্বাস করি যে একাধিক আইপি বেঁধে দেওয়া হলে এক্স-ফরওয়ার্ডড-ফর ঝামেলা সমাধানের মূলটি হ'ল সম্প্রতি চালু করা কনফিগারেশন বিকল্প, real_ip_recursive
(এনজিনেক্স ১.২.১ এবং ১.৩.০ এ যুক্ত)। থেকে nginx realip ডক্স :
যদি পুনরাবৃত্ত অনুসন্ধান সক্রিয় করা থাকে, তবে একটি আসল ক্লায়েন্টের ঠিকানা যা বিশ্বস্ত ঠিকানার একটির সাথে মিলে যায় যা অনুরোধ শিরোনাম ক্ষেত্রটিতে প্রেরিত সর্বশেষ অবিশ্বস্ত ঠিকানা দ্বারা প্রতিস্থাপিত হয়।
nginx চেইনে সর্বশেষ আইপি ঠিকানাটি ডিফল্টরূপে দখল করছিল কারণ কেবলমাত্র এটিই বিশ্বাসযোগ্য বলে ধরে নেওয়া হয়েছিল। তবে নতুন real_ip_recursive
সক্ষম ও একাধিক set_real_ip_from
বিকল্পের সাহায্যে আপনি একাধিক বিশ্বস্ত প্রক্সিগুলি সংজ্ঞায়িত করতে পারেন এবং এটি সর্বশেষ অবিশ্বাস্য আইপি আনবে।
উদাহরণস্বরূপ, এই কনফিগারেশন সহ:
set_real_ip_from 127.0.0.1;
set_real_ip_from 192.168.2.1;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
এবং একটি এক্স-ফরওয়ার্ড-ফর শিরোনাম যার ফলে:
X-Forwarded-For: 123.123.123.123, 192.168.2.1, 127.0.0.1
nginx এখন ক্লায়েন্টের আইপি ঠিকানা হিসাবে 123.123.123.123 বেছে নেবে।
কেন এনজিনেক্স কেবল বাম-সর্বাধিক আইপি ঠিকানা বাছাই করে না এবং আপনার বিশ্বস্ত প্রক্সিগুলি স্পষ্টভাবে সংজ্ঞায়িত করা প্রয়োজন, এটি সহজে আইপি স্পুফিং রোধ করতে পারে।
ধরা যাক কোনও ক্লায়েন্টের আসল আইপি ঠিকানা 123.123.123.123
। আসুন আমরা এটাও বলি যে ক্লায়েন্টটির কোনও লাভ নেই, এবং তারা তাদের আইপি ঠিকানাটি ফাঁকি দেওয়ার চেষ্টা করছে 11.11.11.11
। তারা ইতিমধ্যে স্থানে থাকা এই শিরোনামটির সাথে সার্ভারে একটি অনুরোধ পাঠিয়েছে:
X-Forwarded-For: 11.11.11.11
যেহেতু বিপরীত প্রক্সিগুলি কেবল এই এক্স-ফরওয়ার্ড-ফর চেইনে আইপি যুক্ত করে, আসুন আমরা বলি যে এনজিনেক্স যখন এটি পেয়ে যায় তখন এটি এ জাতীয় চেহারা শেষ করে:
X-Forwarded-For: 11.11.11.11, 123.123.123.123, 192.168.2.1, 127.0.0.1
আপনি যদি কেবল বাম-সর্বাধিক ঠিকানাটি দখল করে থাকেন তবে এটি ক্লায়েন্টকে সহজেই তাদের আইপি ঠিকানাটি ফাঁকি দিতে পারে। তবে উপরোক্ত উদাহরণ হিসাবে এনগিনেক্স কনফিগারেশন, এনজিনেক্স কেবলমাত্র শেষ দুটি ঠিকানাতে প্রক্সি হিসাবে বিশ্বাস করবে। এর অর্থ এনজিঙ্কস সঠিকভাবে 123.123.123.123
আইপি ঠিকানা হিসাবে বেছে নেবে , যদিও এই স্পোফড আইপি আসলে বাম-সর্বাধিক হয়ে থাকে।