Nginx সার্ভারটি ধীরে ধীরে সাড়া দিন


8

সুতরাং আমার সাইটে স্প্যামার রয়েছে। আমি তার আইপি 'অস্বীকার' ব্যবহার করে ব্লক করতে পারি, তবে তারপরে সে কেবল তার আইপি পরিবর্তন করবে এবং আমাকে তার সাথে বিড়াল এবং মাউস খেলতে হবে।

পরিবর্তে, nginx তার আইপি আরও ধীরে ধীরে সাড়া দেওয়ার জন্য কনফিগার করার যদি উপায় থাকে তবে আমি আগ্রহী।

এইভাবে সম্ভবত তিনি সিদ্ধান্ত নেবেন যে সাইটটি সঠিকভাবে কাজ করছে না এবং আমাকে একা ছেড়ে চলে যাবেন।

ধন্যবাদ

উত্তর:


7

এনগিনেক্সের নির্দেশিকা limit_rateআপনাকে গতি নির্দিষ্ট করতে দেয় যা আপনি সীমাবদ্ধতার প্রতিক্রিয়াগুলিকে রেট করতে চান, যেমন

location / {
  if ($slow) {
    limit_rate 4k;
  }
}

Nginx ডকুমেন্টেশন এখানে । (ডকুমেন্টেশন থেকে আপনি দেখতে পাবেন যে আপনার ব্যাকএন্ড সিদ্ধান্ত নিতে পারে এবং ক্লিনিকে সীমাবদ্ধ করার জন্য এনগিনেক্সকে অনুরোধ করতে পারে)

আপনি এই $slowপরিবর্তনশীল সেটটি কীভাবে পাবেন তা আপনার কনফিগারেশনের উপর নির্ভর করে। geoম্যাপিংয়ের মাধ্যমে সেট করা সবচেয়ে সহজ হবে :

geo $slow {
  default    0;

  1.2.3.0/24 1;
}

"জিও" ম্যাপিং $slowক্লায়েন্টের আইপি ঠিকানার ভিত্তিতে নির্ভরতা । এটি ডিফল্টরূপে 0 এবং কোনও ক্লায়েন্টের আইপি ঠিকানা 1.2.3.0/24সাবনেটে থাকলে 1। "জিও" এ nginx ডকুমেন্টেশন দেখুন এখানে

"ব্যর্থ 2ban" ব্যবহার করা এই পুরো সমাধানটির যুক্তিসঙ্গত বিবর্তন। আপনি স্বয়ংক্রিয়ভাবে অস্বাভাবিক ক্রিয়াকলাপ সনাক্ত করতে এবং Nginx এর জন্য আইপি সংগ্রহ করতে "ফেইলব্যাব্যান" ব্যবহার করতে পারেন এবং তারপরে এনগিনেক্স পুনরায় লোড করুন যাতে এটি আইপি অ্যাড্রেসগুলির তালিকা পুনরায় পড়তে পারে যা ধীর এবং / অথবা অবরুদ্ধ করা দরকার।


5

আপনি যদি আপত্তিজনক ব্যবহারকারীর এমন ভাবনা চালিয়ে যেতে চান যে তিনি এখনও আপনার নজরে নেই, আপনি এনগিনেক্সের অনুরোধ সীমা মডিউলটি ব্যবহার করতে পারেন ( http://wiki.nginx.org/HttpLimitReqModule )।

প্রথমে একটি অনুরোধের সীমা অঞ্চল নির্ধারণ করুন:

http {
    limit_req_zone  $binary_remote_addr  zone=spammers:1m   rate=30r/m;
}

এই অঞ্চলটি অনুরোধগুলি সনাক্ত করতে এবং প্রতি মিনিটে 30 (1/2 সেকেন্ড) এর মধ্যে সীমাবদ্ধ করার জন্য অপরাধীর আইপি ঠিকানা ব্যবহার করবে। দয়া করে নোট করুন যে জোনটির মেমরির আকার 1 MiB তে সেট করা হয়েছে, যার অর্থ এটি অনুরোধ বালতি = 16384 স্প্যামার অ্যাড্রেসগুলিতে 1 MiB / 64 বাইটগুলি পরিচালনা করতে পারে (যা আমাদের ক্ষেত্রে সম্ভবত একটি ওভারকিল)। আপনার অবশ্যই যদি যথাযথভাবে সামঞ্জস্য করুন।

এরপরে, আমরা সেই নির্দেশকে সংজ্ঞায়িত করি যা প্রকৃতপক্ষে কোনও অপরাধ (দুর্ভাগ্যক্রমে, দুর্ভাগ্যক্রমে) ব্যবহার করে সীমাবদ্ধতার মাধ্যমে অপরাধীকে পথ নির্দেশ করবে:

location / {
    if ($remote_addr = 1.2.3.4) {
        limit_req   zone=spammer  burst=5;
    }
}

আপনি সার্ভারের অ্যাক্সেস লগটিতে আপনার শ্রমের ফলগুলি দেখতে পারেন।

নোট করুন যে এই হ্যাকটি ভাল স্কেল করে না, যেহেতু আপনাকে প্রতিবারই কনফিগারেশন ফাইলটি আপডেট করতে হবে অপরাধী আইপি পরিবর্তন করে (সেখানে আরও আইপি অন্তর্ভুক্ত করা যাক যার অর্থ যদি বেশি হয় তবে) এটি কার্যকর হয়।


1
আপনি আমার উত্তরটি আলেকজান্ডার আজারভের জিও ব্লকের সাথেও যুক্ত করতে পারেন এবং এটি আরও স্কেলযোগ্য করতে পারেন!
পানাগিওটিস পিজে পাপাদোমিটসোস

2

এই স্প্যামারটির সাথে ডিল করার সর্বোত্তম উপায় হ'ল ব্যর্থতা 2ban ইনস্টল এবং কনফিগার করা। Fail2ban লগ ফাইলগুলিতে নিদর্শনগুলি অনুসন্ধান করবে এবং আপনার সাইটের স্প্যাম করে এমন সমস্ত আইপিকে ব্লক করবে। অবশ্যই যথাযথ প্যাটার্ন অনুসন্ধান করতে আপনাকে এটি কনফিগার করতে হবে।

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