আমি কীভাবে অ্যাপাচে রেট সীমাবদ্ধতা প্রয়োগ করতে পারি? (প্রতি সেকেন্ডের জন্য অনুরোধগুলি)


84

অ্যাপাচে র‌্যাবস্ট রেট সীমাবদ্ধকরণ (অনুরোধ | বাইটস / আইপি / ইউনিট সময়) বাস্তবায়নের জন্য কোন কৌশল এবং / বা মডিউলগুলি উপলব্ধ?


আমি ওয়েব সার্ভারে লিনাক্সের টিসি ব্যবহার করছি , কারণ রেড হ্যাট 6-এ কেবল অ্যাপাচি ২.২ রয়েছে।

উত্তর:


55

সেরা

  • mod_evasive ( ডস এক্সপোজার কমাতে আরও জোর দেওয়া )
  • mod_cband ('সাধারণ' ব্যান্ডউইথ নিয়ন্ত্রণের জন্য সেরা বৈশিষ্ট্যযুক্ত)

এবং বাকি


10
আইপি ঠিকানায় প্রতিদিন সংযোগ সীমাবদ্ধ করার জন্য আমি কিছুই পাইনি। আমি সারা রাত অনুসন্ধানে কাটিয়েছি, এটি লজ্জাজনক।
গ্রেগ

4
বিপরীত প্রক্সিটির পিছনে দৌড়ানোর সময় আইপি-র পরিবর্তে শিরোনামটি দেখার জন্য মোড_ভ্যাসিভ করার কোনও উপায় আছে কি কেউ জানেন?
স্ট্যাভ্রোস করোকিঠাকিস

6
4 বছর পরে, মোড_দেবী এখনও "সেরা"?
জ্যাক থম্পসন

6
আপনার দাবির ব্যাক আপ দিন। _রাশি এবং _ব্যান্ড সেরা কেন?
রিড

4
mod_evasiveঅনেকগুলি অনলাইন সুপারিশ পেয়েছে তবে 2017 এর মাঝামাঝি হিসাবে, এটি তার লেখক জোনাথন জেডজিয়ারস্কি দ্বারা পরিত্যক্ত বলে মনে হয়েছে যিনি তার ব্লগ থেকে অদ্ভুতভাবে সমস্ত উল্লেখ মুছে ফেলেছেন - যদিও উত্স কোডটি এখনও আপলোড হিসাবে উপলব্ধ । অন্যান্য প্রকল্পগুলির কোনওটিই গত 6 বছরে (বা এর ক্ষেত্রে 15 বছর mod_limitipconn) আপডেট হয়নি ।
অ্যান্টনি জিওগিগান

20

এই ব্লগ পোস্টে যেমন বলা হয়েছে যে প্রতি সেকেন্ডে হারের সীমা বাস্তবায়নের জন্য মোড_সিকিউরিটি ব্যবহার করা সম্ভব বলে মনে হচ্ছে ।

কনফিগারেশনটি এরকম কিছু:

SecRuleEngine On

<LocationMatch "^/somepath">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
  SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
  SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog"
  SecAction "phase:2,pass,setvar:ip.somepathcounter=+1,nolog"
  Header always set Retry-After "10" env=RATELIMITED
</LocationMatch>

ErrorDocument 509 "Rate Limit Exceeded"

4
এটি আমার জন্য নিখুঁত ছিল, মোডেস্ক 2 ইতিমধ্যে চলছে। মোডেস্ক সংস্করণটি মেলাতে কেবল নিয়মগুলিতে আইডিস যুক্ত করতে হয়েছিল, যেমন: <লোকেশনম্যাচ "^ / সাম্পাথ"> সেকশন ইনিঙ্কল: ip =% {REMOTE_ADDR}, পাস, এনলগ, আইডি: 10000001 সেকশন "ফেজ: 5, অবচয়: ip.somepathcounter = 1/1, Pass, nolog, id: 10000002 "SecRule IP: SomePATHCOUNTER" @gt 60 "" ফেজ: 2, বিরতি: 300, অস্বীকার করুন, স্থিতি: 509, সেটিংভ: রেটলিমিটেড, এড়িয়ে যান: 1, এনলগ, আইডি: 10000003 "সেকশন" পর্ব: 2, পাস, সেটভার: ip.somepathcounter = + 1, এনলগ, আইডি: 10000004 "শিরোনাম সর্বদা পুনরায় চেষ্টা করুন" 10 "এনভি = রেটেলিমিটেড </ লোকেশনম্যাচ>
নাথন স্ট্র্যাচ

4
এছাড়াও মনে রাখবেন যে "@gt 60" সম্পাদনা করার মাধ্যমে আপনি কত প্রাথমিক ফাটলের অনুরোধ অনুমোদিত তা পরিবর্তন করতে পারবেন, পাশাপাশি এটি কত দ্রুত আইপি.সোমপ্যাথকাউন্টার = 1/1 বিট সম্পাদনা করে সীমাটি "রিচার্জ" করে। 1/1 প্রতি সেকেন্ডে একটি অতিরিক্ত অনুরোধের অনুমতি দেয়। 1/2 একটি অতিরিক্ত অনুরোধ প্রতি 2 সেকেন্ড, ইত্যাদি পারবেন
নাথন প্রসারিত

4
অ্যাপাচি ২.৪ ত্রুটিযুক্ত ডকুমেন্টে ৫০৯ টি সম্পর্কে অভিযোগ করবে, একটি বিকল্প এটিকে ৪২৯ এ পরিবর্তন করছে (যা অবশ্যই-অ্যাপাচি ২.২ এ সমর্থিত নয়) to এছাড়াও মোড_সিকিউরিটি ২.7 থেকে সমস্ত সেকশন এবং সেকরুলস-এর একটি আইডি দরকার।
মিস্তেন

4
এফওয়াইআই mod_securityকোনও অ্যাপাচি প্রকল্প নয়।
ক্রিস্টোফার

12

ওয়েব অ্যাপ্লিকেশন ফায়ারওয়ালস সহ অসংখ্য উপায় রয়েছে তবে অ্যাপাচি মোড ব্যবহার করে তবে প্রয়োগ করা সবচেয়ে সহজ কাজ।

এরকম একটি মোড আমি সুপারিশ করতে চাই তা হল মোড_কোস । এটি একটি নিখরচায় মডিউল যা সের্টিন ডস, ব্রুটেফোর্স এবং স্লোলোরিস ধরণের আক্রমণগুলির বিরুদ্ধে খুব কার্যকর। এটি আপনার সার্ভারের ভার কিছুটা কমিয়ে দেবে।

এটা খুব শক্তিশালী

মোড_কোস মডিউলটির বর্তমান প্রকাশটি পরিচালনা করার জন্য নিয়ন্ত্রণ ব্যবস্থা প্রয়োগ করে:

  • কোনও অবস্থান / সংস্থান (ইউআরএল) বা ভার্চুয়াল হোস্টের একযোগে অনুরোধের সর্বাধিক সংখ্যা।

  • ব্যান্ডউইথের সীমাবদ্ধতা যেমন কোনও ইউআরএল প্রতি সেকেন্ডে সর্বাধিক অনুমোদিত সংখ্যার অনুরোধ বা সেকেন্ডে সর্বাধিক / সর্বনিম্ন ডাউনলোড কেবিটস।

  • প্রতি সেকেন্ডে অনুরোধ ইভেন্টের সংখ্যা সীমাবদ্ধ করে (বিশেষ অনুরোধ শর্তাদি)।

  • সময়ের একটি নির্ধারিত সময়ের মধ্যে অনুরোধ ইভেন্টগুলির সংখ্যা সীমাবদ্ধ করে।
  • এটি খুব গুরুত্বপূর্ণ ব্যক্তিদের (ভিআইপি) সনাক্ত করতে পারে যা কম বাধা ছাড়াই বা ওয়েব সার্ভার অ্যাক্সেস করতে পারে।
  • অননুমোদিত ক্রিয়াকলাপ অস্বীকার করতে জেনেরিক অনুরোধ লাইন এবং শিরোনাম ফিল্টার।

  • বডি ডেটা সীমাবদ্ধতা এবং ফিল্টারিংয়ের জন্য অনুরোধ (Mod_parp প্রয়োজন)।

  • স্বতন্ত্র ক্লায়েন্ট (আইপি) এর জন্য অনুরোধ ইভেন্টগুলির সংখ্যা সীমাবদ্ধ করে।

  • টিসিপি সংযোগ স্তরের সীমাবদ্ধতা, উদাহরণস্বরূপ, একক আইপি উত্স ঠিকানা বা গতিশীল রাখুন-জীবিত নিয়ন্ত্রণ থেকে অনুমোদিত সংযোগগুলির সর্বাধিক সংখ্যক।

  • সার্ভারটি বিনামূল্যে টিসিপি সংযোগের বাইরে চলে গেলে পরিচিত আইপি ঠিকানাগুলি পছন্দ করে।

এটি আপনি কী ব্যবহার করতে পারবেন তার একটি নমুনা কনফিগারেশন। আপনার প্রয়োজন অনুসারে শত শত সম্ভাব্য কনফিগারেশন রয়েছে। নিয়ন্ত্রণ সম্পর্কিত আরও তথ্যের জন্য সাইটটি দেখুন।

Sample configuration:
# minimum request rate (bytes/sec at request reading):
QS_SrvRequestRate                                 120

# limits the connections for this virtual host:
QS_SrvMaxConn                                     800

# allows keep-alive support till the server reaches 600 connections:
QS_SrvMaxConnClose                                600

# allows max 50 connections from a single ip address:
QS_SrvMaxConnPerIP                                 50

# disables connection restrictions for certain clients:
QS_SrvMaxConnExcludeIP                    172.18.3.32
QS_SrvMaxConnExcludeIP                    192.168.10.

http://opensource.adnovum.ch/mod_qos/


এটি কেবল পুরানো অ্যাপাচি ২.২ এ কাজ করে যা অ্যাপাচি ২.৪ + এ কাজ করে না, তাই না?
infiniteloop

মোড_কোয়াস সোর্সফোজের পৃষ্ঠাটি ইনফিনিটেলোপকে জানায় এটি অ্যাপাচি ২.৪ নিয়ে ভাল কাজ করে। কিন্তু বৈশিষ্ট্য একটি দম্পতি যে এখানে কাজ করে না সম্পর্কে একটি নির্দিষ্ট আলোচনা হল: stackoverflow.com/a/15726540/1402498
JamesHoux

6

অ্যাপাচি ২.৪-তে একটি নতুন স্টক মডিউল রয়েছে যার নাম মোডরেটলিট । মডেম গতির অনুকরণের জন্য, আপনি মোড_ডায়ালআপ ব্যবহার করতে পারেন । যদিও আমি দেখতে পাচ্ছি না কেন আপনি কেবল সমস্ত কিছুর জন্য mod_ratelimit ব্যবহার করতে পারেন নি।


নোট করুন যে মোড_ডায়ালআপ SUSPENDEDঅপেক্ষায় থ্রেড নষ্ট না করে একটি অ্যাসিনক্রোনাস স্টেট ব্যবহার করে, যদিও এখন পর্যন্ত মোড_রেটলিমে প্রতি সংযোগটি কঠোরভাবে থ্রেড করা হয়েছে। সিএফ. থ্রেড.gmane.org/gmane.comp.apache.cvs/20490
আর্টেম জিআর

6

দুঃখের বিষয়, mod_evasiveনন-প্রেফের্ক কনফিগারেশনে ব্যবহৃত হওয়ার সময় প্রত্যাশা অনুযায়ী কাজ করবে না (সাম্প্রতিক অ্যাপাচি সেটআপগুলি মূলত এমপিএম)



1

আপনি কেন সীমাটি রেট করতে চান তার উপর নির্ভর করে।

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

যদি আপনার সমস্ত কিছু সরলতা হয় তবে মোড_ ডেভিয়েসভ জাতীয় কিছু ব্যবহার করুন।

যথারীতি যদি এটি ডিডিওএস বা ডস আক্রমণ থেকে রক্ষা করতে হয় তবে ক্লাউডফ্লেয়ারের মতো পরিষেবা ব্যবহার করুন যার রেট সীমিতও রয়েছে।

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