এক্স-ফরওয়ার্ড-ফর শিরোনামের সাথে সীমাবদ্ধ এনজিনেক্সের হার


23

আমি এনজিনেক্সের এইচটিপিপ্লিমিটরেকমোডুল ব্যবহার করে রেট-সীমাবদ্ধতার দিকে নজর দিচ্ছি । যাইহোক, অনুরোধগুলি সমস্ত একই আইপি (একটি ভারসাম্যহীন) থেকে আসবে, শিরোনামগুলির আসল আইপি ঠিকানা সহ।

X-Forwarded-Forউত্সের আইপির পরিবর্তে শিরোনামে আইপির উপর ভিত্তি করে এনগিনেক্স হার-সীমা থাকার কোনও উপায় আছে কি ?

উত্তর:


28

হ্যাঁ, সাধারণ হার-সীমাবদ্ধকরণের কনফিগারেশন সংজ্ঞা স্ট্রিংয়ের মতো দেখতে:

 limit_req_zone  $binary_remote_addr zone=zone:16m rate=1r/s;

যেখানে $binary_remote_addrসীমা জন্য অনন্য চাবিকাঠি। আপনার এটি পরিবর্তনশীলতে পরিবর্তন করার চেষ্টা করা উচিত $http_x_forwarded_forযা X-Forwarded-Forশিরোনামের মান পায় । যদিও এটি মেমরির খরচ বাড়িয়ে দেবে কারণ $binary_remote_addrআইপি অ্যাড্রেসগুলি সংরক্ষণের জন্য সংকোচিত বাইনারি ফর্ম্যাটটি ব্যবহার করছে এবং $http_x_forwarded_forতা নয়।

 limit_req_zone  $http_x_forwarded_for zone=zone:16m rate=1r/s;

আমি ঠিক একই সিদ্ধান্তে এসেছি, এবং একটি দ্রুত পরীক্ষায় এটি দুর্দান্ত কাজ করে। বর্ধিত মেমরির ব্যবহারটি নির্দেশ করার জন্য ধন্যবাদ।
জন ব্রোডি

2
এ সম্পর্কে গুরুতর সুরক্ষা উদ্বেগ থাকতে পারে সম্পর্কে সাবধান থাকুন: blog.ircmaxell.com/2012/11/anatomy-of-attack-how-i-hacked.html
ইরকম্যাক্সেল

দ্রষ্টব্য যে সিম্ফনি সম্পর্কিত সেই ব্লগ পোস্টের তথ্যগুলির সাথে নিম্নলিখিত ঠিকানাগুলি ছিল: symfony.com
ডক

5
আপনি যদি রিলিপ মডিউল ব্যবহার করেন তবে $binary_remote_addrভেরিয়েবলটি সঠিকভাবে সেট হয়ে যায়।
কেনেক আলটি

5

limit_req_zoneনির্দেশ পরিবর্তনশীল অনুরোধ গোষ্ঠীবদ্ধ করার জন্য কী হিসাবে ব্যবহার করার জন্য সংজ্ঞায়িত করে।
সাধারণত, এটি ছোট $binary_remote_addrহওয়ার চেয়ে $remote_addrস্থানটি সংরক্ষণ করার পরিবর্তে ব্যবহৃত হয়।

হতে পারে আপনি বিকল্পভাবে RealipModule ব্যবহার করতে চান ।
এটি কাস্টম শিরোনামে সরবরাহ করা ঠিকানায় দূরবর্তী ঠিকানা ভেরিয়েবলগুলি পুনরায় লিখবে এবং লগিং এবং অন্যান্য পরিবর্তনশীল ব্যবহারকে আরও সহজ করে দেবে।


1
রিয়েলআইপি মডিউলটির জন্য +1। যখন এই মডিউল ব্যবহার করে, $binary_remote_addrএবং $remote_addrআপনার কনফিগার হেডার, সাধারণত এর মান সেট করা হয় X-Forwarded-For- তাই আপনার মান ভেরিয়েবল এখন "বাস্তব ক্লায়েন্ট IP ঠিকানা" হয়। চালান nginx -Vকিনা দেখতে nginx সঙ্গে নির্মিত হয়েছিল --with-http_realip। তারপরে কনফিগারটি এতটা সহজ: set_real_ip_from 10.0.0.0/8; real_ip_header X-Forwarded-For; যেখানে সিআইডিআর পরিসর আপনার আপস্ট্রিম লোড ব্যালেন্সারের যা শিরোনামটি সেট করে X-Forwarder-For
মার্কডিজার্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.