HAProxy - এক্স-ক্লায়েন্ট-আইপি এবং এক্স-ফরোয়ার্ড-ফর শিরোলেখগুলিতে ক্লায়েন্ট আইপি সংযুক্ত করতে কীভাবে?


10

HAProxy সার্ভারে আমার একটি সমস্যা আছে। আমি শিরোনামে একটি ক্লায়েন্ট আইপি ফরোয়ার্ড করতে চাই। আমি প্রায় এটি সম্পন্ন করেছি, তবে একটি আকর্ষণীয় কেস আছে এবং আমি এটি বের করতে পারি না। আমাকে হেডারে দুটি জায়গায় ক্লায়েন্ট আইপি লিখতে হবে, এক্স-ক্লায়েন্ট-আইপি এবং এক্স-ফরওয়ার্ড-ফর ট্যাগের জন্য।

সমস্যাটি হ'ল: আমি যখন ব্যবহার করি

option http-server-close
option forwardfor

টার্গেট সার্ভারে আমি হেডার এক্স-ফরওয়ার্ডড-ফর = এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স (ক্লায়েন্ট আইপি) দেখতে পাই তবে কোনও এক্স-ক্লায়েন্ট-আইপি শিরোনাম নেই।

যখন আমি ব্যবহার করি:

option forwardfor header X-Client-IP
option http-server-close

টার্গেট সার্ভারে আমি শিরোনামটি দেখতে পেয়েছি এক্স-ক্লায়েন্ট-আইপি = এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স (ক্লায়েন্ট আইপি) তবে এক্স-ফরওয়ার্ড-ফর = এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স (HAProxy আইপি)

আমার লক্ষ্য শিরোনামে দেখতে হবে যেখানে এক্স-ক্লায়েন্ট-আইপি এবং এক্স-ফরওয়ার্ড-ফর ক্লায়েন্ট আইপির মান রয়েছে।

আমি মত কনফিগারেশন মিশ্রিত করার চেষ্টা করুন

 option forwardfor
 option forwardfor header X-Client-IP
 option http-server-close

কোনও প্রভাব নেই। আমি কোনও মডিউলও ইনস্টল করতে পারি না। লক্ষ্যটি আইআইএস।

কোন ধারনা? :(

উত্তর:


12

আপনি এর মতো কাস্টম শিরোনাম স্থাপনের চেষ্টা করতে পারেন:

http-request set-header X-Client-IP %[src]

অথবা আপনি এটি এক্স-ফরওয়ার্ড-ফর হেডার থেকেও অনুলিপি করতে পারেন, আমার ধারণা সিনট্যাক্সটি এমন কিছু হবে:

http-request set-header X-Client-IP req.hdr_ip([X-Forwarded-For])

দ্বিতীয় বিকল্পটি আমাকে শিরোনামে x-client-ip = req.hdr_ip (% 5bX-Forwarded-%% 5d এর জন্য) দিন, যাতে কিছু ভুল। তবে আমি প্রথমে চেষ্টা করব।
ক্যাকপ্রসো

প্রথম রেজোলিউশন http-অনুরোধ সেট-শিরোনাম এক্স-ক্লায়েন্ট-আইপি% [src] নিখুঁতভাবে কাজ করে।
ক্যাকপ্রসো

সর্বশেষ উদাহরণ ভুল, অধিকার নিয়ম হল: HTTP-অনুরোধ সেট হেডার এক্স-ক্লায়েন্ট আইপি% [req.hdr_ip (এক্স-ফরোয়ার্ড করা-জন্য)]
Rfraile

এক্স-ক্লায়েন্ট-আইপি এবং এক্স-ফরওয়ার্ড-ফর এর বিভিন্ন উদ্দেশ্য রয়েছে। এক্স-ফরওয়ার্ড-ফর অনুলিপি করা নিরাপদ নয়, কারণ HAProxy ক্লায়েন্টের দ্বারা প্রেরিত মানটি ফিরিয়ে দিতে পারে।
ডের_মিস্টার

5

আপনি যদি উভয়ই ব্যবহার করতে চান তবে আপনাকে http-requestকীওয়ার্ডের সাহায্যে দ্বিতীয়টি যুক্ত করতে হবে ।

# add X-FORWARDED-FOR
option forwardfor
# add X-CLIENT-IP
http-request add-header X-CLIENT-IP %[src]

আমি মনে করি ক্লায়েন্টের কাছ থেকে প্রেরিত দূষিত হেডারগুলি অপসারণের জন্য সেট-শিরোনামই ভাল।
ডের_মিস্টার

@ ডের_মিস্টার আপনি ঠিক থাকতে পারেন, তবে এই প্রশ্ন বা উত্তরের সাথে এর কীভাবে কোনও প্রাসঙ্গিকতা আছে তা আমি দেখতে পাই না। বিশদ যত্ন?
গ্রেগল

1
এক্স-ক্লায়েন্ট-আইপি শিরোনামের উদ্দেশ্য ব্যাকএন্ডকে সংযোগের আসল আইপি ঠিকানা জানানো, আগত শিরোনামের এলোমেলো মান নয়। এটি প্রশ্নের মধ্যে উল্লেখ করা হয়নি, আমি কেবল ভবিষ্যতের পাঠকদের সতর্ক করতে চাই।
ডের_মিস্টার

আবার, আপনি সঠিক হতে পারেন তবে এই উদাহরণে, X-CLIENT-IPএটি ক্লায়েন্ট দ্বারা সেট করা হচ্ছে না, বরং সোর্স আইপির উপর ভিত্তি করে HAProxy দ্বারা তৈরি করা হচ্ছে। আমার কিছু প্রশ্ন এই মন্তব্য যাব যেখানে এটি করার সুপারিশ করছি হয় দ্বিধায় পরে পাঠকদের প্রাসঙ্গিক তাই হিসাবে।
গ্রেগল

add-headerX-CLIENT-IPক্লায়েন্ট দ্বারা সেট করা আছে যে এটি মুছে না । এই কারণেই @ ডের_মিস্টার set-headerপরিবর্তে ব্যবহারের পরামর্শ দিয়েছেন । আমি set-headerপরিবর্তে আপনার উত্তরটি সম্পাদনা করার পরামর্শ দিচ্ছি ।
পিস্তাপি

0

উপরের প্রস্তাবিত উত্তরের যা ক্যাকপ্রসোর পক্ষে কাজ করে নি কেবলমাত্র যোগ করে মানটি পড়তে হবে &[...], সুতরাং এটি সূক্ষ্মভাবে কাজ করা উচিত:

http-request set-header X-Client-IP %[req.hdr_ip([X-Forwarded-For])]

0

এইচএপ্রক্সি 1.7 এ চেষ্টা করা এটি সঠিক বাক্য গঠন যা এক্স-ফরওয়ার্ড-ফর এর চারপাশের বর্গক্ষেত্র ছাড়াই এই কাজ করে

   http-request set-header X-Client-IP %[req.hdr_ip(X-Forwarded-For)]

-2

আপনি আপনার ব্যাকএন্ড সার্ভার (গুলি) এ Mod_rpaf নামে একটি মডিউল ইনস্টল করতে পারেন। এটি এক্স-ফরওয়ার্ড-ফর আইপি-এক্স-ক্লায়েন্ট-আইপি-তে অনুলিপি করে। আরও তথ্যের জন্য দেখুন এই । উইন্ডোজে আপনার অনুরূপ মডিউল থাকা উচিত, এক্স-ফরওয়ার্ড-ফর এএসপিআই ফিল্টারগুলির মতো কিছু।


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