অ্যাপাচে র্যাবস্ট রেট সীমাবদ্ধকরণ (অনুরোধ | বাইটস / আইপি / ইউনিট সময়) বাস্তবায়নের জন্য কোন কৌশল এবং / বা মডিউলগুলি উপলব্ধ?
উত্তর:
সেরা
এবং বাকি
mod_evasive
অনেকগুলি অনলাইন সুপারিশ পেয়েছে তবে 2017 এর মাঝামাঝি হিসাবে, এটি তার লেখক জোনাথন জেডজিয়ারস্কি দ্বারা পরিত্যক্ত বলে মনে হয়েছে যিনি তার ব্লগ থেকে অদ্ভুতভাবে সমস্ত উল্লেখ মুছে ফেলেছেন - যদিও উত্স কোডটি এখনও আপলোড হিসাবে উপলব্ধ । অন্যান্য প্রকল্পগুলির কোনওটিই গত 6 বছরে (বা এর ক্ষেত্রে 15 বছর mod_limitipconn
) আপডেট হয়নি ।
এই ব্লগ পোস্টে যেমন বলা হয়েছে যে প্রতি সেকেন্ডে হারের সীমা বাস্তবায়নের জন্য মোড_সিকিউরিটি ব্যবহার করা সম্ভব বলে মনে হচ্ছে ।
কনফিগারেশনটি এরকম কিছু:
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"
mod_security
কোনও অ্যাপাচি প্রকল্প নয়।
ওয়েব অ্যাপ্লিকেশন ফায়ারওয়ালস সহ অসংখ্য উপায় রয়েছে তবে অ্যাপাচি মোড ব্যবহার করে তবে প্রয়োগ করা সবচেয়ে সহজ কাজ।
এরকম একটি মোড আমি সুপারিশ করতে চাই তা হল মোড_কোস । এটি একটি নিখরচায় মডিউল যা সের্টিন ডস, ব্রুটেফোর্স এবং স্লোলোরিস ধরণের আক্রমণগুলির বিরুদ্ধে খুব কার্যকর। এটি আপনার সার্ভারের ভার কিছুটা কমিয়ে দেবে।
এটা খুব শক্তিশালী ।
মোড_কোস মডিউলটির বর্তমান প্রকাশটি পরিচালনা করার জন্য নিয়ন্ত্রণ ব্যবস্থা প্রয়োগ করে:
কোনও অবস্থান / সংস্থান (ইউআরএল) বা ভার্চুয়াল হোস্টের একযোগে অনুরোধের সর্বাধিক সংখ্যা।
ব্যান্ডউইথের সীমাবদ্ধতা যেমন কোনও ইউআরএল প্রতি সেকেন্ডে সর্বাধিক অনুমোদিত সংখ্যার অনুরোধ বা সেকেন্ডে সর্বাধিক / সর্বনিম্ন ডাউনলোড কেবিটস।
প্রতি সেকেন্ডে অনুরোধ ইভেন্টের সংখ্যা সীমাবদ্ধ করে (বিশেষ অনুরোধ শর্তাদি)।
অননুমোদিত ক্রিয়াকলাপ অস্বীকার করতে জেনেরিক অনুরোধ লাইন এবং শিরোনাম ফিল্টার।
বডি ডেটা সীমাবদ্ধতা এবং ফিল্টারিংয়ের জন্য অনুরোধ (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.
অ্যাপাচি ২.৪-তে একটি নতুন স্টক মডিউল রয়েছে যার নাম মোডরেটলিট । মডেম গতির অনুকরণের জন্য, আপনি মোড_ডায়ালআপ ব্যবহার করতে পারেন । যদিও আমি দেখতে পাচ্ছি না কেন আপনি কেবল সমস্ত কিছুর জন্য mod_ratelimit ব্যবহার করতে পারেন নি।
SUSPENDED
অপেক্ষায় থ্রেড নষ্ট না করে একটি অ্যাসিনক্রোনাস স্টেট ব্যবহার করে, যদিও এখন পর্যন্ত মোড_রেটলিমে প্রতি সংযোগটি কঠোরভাবে থ্রেড করা হয়েছে। সিএফ. থ্রেড.gmane.org/gmane.comp.apache.cvs/20490
আরও একটি বিকল্প - mod_qos
কনফিগার করা সহজ নয় - তবে শক্তিশালী।
আপনি কেন সীমাটি রেট করতে চান তার উপর নির্ভর করে।
যদি এটি সার্ভারকে ওভারলোডিং থেকে রক্ষা করতে পারে তবে এটি অবশ্যই এনজিআইএনএক্সকে সামনে রেখে, এবং সেখানে রেট সীমাবদ্ধকরণটি কনফিগার করে । এটি উপলব্ধি করে কারণ এনজিআইএনএক্স অনেক কম সংস্থান ব্যবহার করে, প্রতি দশ হাজার সংযোগে কয়েক এমবি এর মতো। সুতরাং, যদি সার্ভারটি প্লাবিত হয়, এনজিআইএনএক্স এই হারকে সীমাবদ্ধ করে রাখবে (সংক্ষিপ্ত পরিমাণের সংস্থান ব্যবহার করে) এবং কেবলমাত্র অ্যাপাচে ট্র্যাফিকের অনুমতি দেবে।
যদি আপনার সমস্ত কিছু সরলতা হয় তবে মোড_ ডেভিয়েসভ জাতীয় কিছু ব্যবহার করুন।
যথারীতি যদি এটি ডিডিওএস বা ডস আক্রমণ থেকে রক্ষা করতে হয় তবে ক্লাউডফ্লেয়ারের মতো পরিষেবা ব্যবহার করুন যার রেট সীমিতও রয়েছে।