ডিস্ট্রিবিউটেড ডিনায়াল অফ সার্ভিস বা "DDoS" আক্রমণগুলি অপমানজনক ডিজিটাল যোগাযোগ কৌশলের মাধ্যমে সার্ভারের সংস্থানগুলিকে ছিনিয়ে নেয়৷ এই ধরনের আক্রমণ কম্পিউটার জগতের সংগঠিত অভিযান। অনেক বিরক্তিকর অ্যান্টি-লাইক অ্যাকশন একত্রিত হয়ে একটি পাকা সার্ভারকে তার ট্র্যাকগুলিতে থামানোর জন্য যথেষ্ট ভয়ঙ্কর হুমকি তৈরি করে। সবচেয়ে খারাপ, সন্দেহজনক সার্ভারের বিরুদ্ধে এই ধরনের গেরিলা ওয়েব যুদ্ধ চালানোর একাধিক উপায় রয়েছে। সৌভাগ্যক্রমে, সার্ভারগুলিকে লড়াই করার জন্য কনফিগার করা যেতে পারে৷
Nginx, ইউনিক্স মেশিনের জন্য একটি অত্যন্ত জনপ্রিয় সার্ভার সিস্টেম, DDoS আক্রমণের কার্যকারিতা ব্যাপকভাবে সীমিত করার জন্য যথেষ্ট বিল্ট-ইন কার্যকারিতা নিয়ে আসে৷
Nginx-চালিত সার্ভারে এই ধরনের হুমকিগুলি পরিচালনা করার জন্য এখানে কয়েকটি কার্যকর বিকল্প রয়েছে:
আপনার কনফিগারেশন ফাইল ব্যাক আপ করুন
আপনি কোনো সেটিংস পরিবর্তন করার আগে, নিশ্চিত করুন যে আপনি আপনার সার্ভারের কনফিগারেশনের দ্রুত ব্যাকআপ করেছেন। নিম্নলিখিত কমান্ড এটির জন্য কাজ করে:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original
একবার হয়ে গেলে, আপনি এগিয়ে যাওয়ার জন্য প্রস্তুত৷
৷ট্রাফিক পরীক্ষা করা হচ্ছে
আপনার সার্ভারের ট্র্যাফিকের উপর নজর রাখা নিরাপত্তা অপ্টিমাইজ করা এবং লাইনের নিচে অতিরিক্ত কৌশল প্রয়োগ করা সহজ করে তোলে। Nginx এর জন্য বিশেষভাবে তৈরি একটি মডিউল রয়েছে।
একটি স্ট্যাটাস পৃষ্ঠা সেট আপ করুন
Nginx সাধারণত "স্টাব স্ট্যাটাস" (http_stub_status_module) নামে একটি মডিউল নিয়ে আসে যা এই ধরনের কার্যকারিতাকে আপনার সার্ভার পরিবেশে সহজে একীভূত করার অনুমতি দেয়। প্রথমে, নিম্নলিখিত কমান্ড ব্যবহার করে এটি পরীক্ষা করুন:
nginx -V
অথবা এটি দ্রুত খুঁজে পেতে গ্রেপের জন্য উপরেরটি পাইপ করুন:
nginx -V 2>&1 | grep -o-এর সাথে-http_stub_status_module
আপনার আউটপুট উপরের আউটপুট মত দেখায়, আপনি যেতে ভাল; অন্যথায়, আপনাকে মডিউলটি অন্তর্ভুক্ত করে আপনার Nginx ইনস্টলেশন পুনরায় ইনস্টল বা পুনরায় কম্পাইল করতে হবে।
আপনি চেক করতে পারেন এমন একটি স্থিতি পৃষ্ঠা সেট আপ করা সহজ, তবে এটিকে সুরক্ষিত রাখতে আপনাকে এটিতে অ্যাক্সেস সীমিত করতে হবে (আপনার মেশিন)। "/etc/nginx/nginx.conf" এ পাওয়া আপনার সার্ভারের প্রধান কনফিগারেশন ফাইলটি খোলার মাধ্যমে শুরু করুন৷
এটি খুলুন এবং "লোকালহোস্ট," "/status_page" এবং "127.0.0.1" এর পরিবর্তে আপনার নিজস্ব তথ্য প্রতিস্থাপন করে মডিউলটি সক্রিয় করতে "http নির্দেশিকা"-এ নিম্নলিখিত কোডটি যোগ করুন:
<প্রি> সার্ভার { শুনুন 80; শুনুন [::]:80; server_name localhost; ## # স্ট্যাটাস পেজ সেটিংস ## অবস্থান /status_page { stub_status চালু; অনুমতি দিন 127.0.0.1; অনুমতি দিন ::1; সব অস্বীকার করা; } }দ্রষ্টব্য :এই ফাইলটি পরিবর্তন করতে আপনার sudo সুবিধার প্রয়োজন হবে।
এখন আপনার কনফিগারেশন পরীক্ষা করুন:
sudo nginx -t
সবকিছু ঠিক থাকলে, আপনার সার্ভারকে একটি রিলোড সংকেত পাঠান:
sudo systemctl রিলোড nginx
আপনার স্ট্যাটাস পৃষ্ঠা অ্যাক্সেস করতে, ওয়েব ব্রাউজারে বা কার্ল-এর মতো কমান্ড-লাইন টুল ব্যবহার করে আপনার সার্ভার_নাম অবস্থানে যান এবং তারপরে “/status_page” দেখুন। (আপনার ব্রাউজারের ক্যাশে স্বয়ংক্রিয়ভাবে আপডেট না হলে এটি সহায়ক।) আমাদের উদাহরণগুলিতে পৃষ্ঠাটি অ্যাক্সেস করার জন্য কার্ল কমান্ডটি নিম্নরূপ:
curl localhost/status_page
ব্রাউজারে, উপরেরটি নিচের ছবির মত দেখায়।
অ্যাক্সেস লগ চেক করুন
উপরে কনফিগার করা স্ট্যাটাস পৃষ্ঠা চেক করার সময় আপনি যদি অস্বাভাবিক ট্র্যাফিক লক্ষ্য করেন, তাহলে সার্ভারের অ্যাক্সেস লগ চেক করা একটি ভাল ধারণা হতে পারে। এটি "/var/log/nginx/access.log" এ পাওয়া যাবে। লগ তালিকায় ব্যবহৃত HTTP পদ্ধতি, অ্যাক্সেসের প্রচেষ্টার তারিখ/সময়, ব্যবহারকারী এজেন্ট এবং অ্যাক্সেস করা পৃষ্ঠাগুলি।
সংযোগ সীমিত করা
DDoS আক্রমণ বন্ধ করার জন্য চেষ্টা করার মতো অনেক দরকারী কৌশলের মধ্যে, সবচেয়ে সহজ এবং সবচেয়ে কার্যকরী হল ইনকামিং ট্র্যাফিক রেট সীমিত করা৷
আদর্শভাবে, মানব ক্লায়েন্টদের জন্য যুক্তিসঙ্গত হার বজায় রেখে অমানবিক হারে আপনার সার্ভারকে অমানবিক হারে দূষিত বটগুলিকে অপ্রতিরোধ্য করা থেকে রোধ করার জন্য আপনার অ্যাক্সেসকে যথেষ্ট পরিমাণে নিয়ন্ত্রণ করা উচিত। Nginx-এ, এটি limit_req_zone
দিয়ে সম্পন্ন করা যেতে পারে এবং limit_req
নির্দেশাবলী নিম্নলিখিত কোডটি আপনার সার্ভার দেখানোর জন্য কনফিগার করা যেকোন অবস্থানে ব্যবহারের জন্য মেমরি এবং রেট সীমাবদ্ধতা সেট করে:
limit_req_zone $binary_remote_addr zone=speedbump:10m রেট=10r/s;
"জোন" মেমরিতে স্থানের নাম এবং আকার (এই ক্ষেত্রে মেগাবাইটে) নির্দিষ্ট করে যেখানে ব্যবহারকারীর অনুরোধগুলি সংরক্ষণ করা হয়। "রেট" প্রতি সেকেন্ডে Nginx গ্রহণ করা অনুরোধের মোট সংখ্যা স্থাপন করে (এই উদাহরণে 10)। এই কোডটিকে একটি নিয়ম হিসাবে এবং সেই নিয়মের ব্যবহার হিসাবে অনুসরণ করা কোডটিকে ভাবুন:
limit_req zone=speedbump burst=20;
উপরের কোডটি আসলে আমাদের সীমাবদ্ধ নিয়ম বাস্তবায়নের চেয়ে একটু বেশি করে; এটি বৈধ সংযোগগুলিকে নরমভাবে পরিচালনা করার জন্য বিশটি অনুরোধের একটি ছোট সারি যুক্ত করে যা স্বাভাবিকের চেয়ে একটু দ্রুত দেখায়, নিয়ম এবং সারি উভয়েরই অতিক্রম করে ক্লায়েন্টের জন্য একটি 503 ত্রুটি দেখা দেয়। nginx.conf:
-এ উভয় নির্দেশিকা কেমন দেখায় তা এখানে
আইপি ঠিকানা কালো তালিকাভুক্ত করা
আপনি যদি আপনার সার্ভারের DDoSing আইপি ঠিকানাটি ধরে রাখতে পারেন তবে আপনি কেবল এটিকে কালো তালিকাভুক্ত করতে পারেন এবং এই আইপি ঠিকানা থেকে উদ্ভূত যেকোনো সংযোগ বাদ দিতে পারেন৷
আপনার সার্ভার নির্দেশে নিম্নলিখিত কোড যোগ করুন:
অবস্থান / { অস্বীকার 123.123.123.0/28; # ...
নির্দিষ্ট ফাইলে ব্লক করার অনুরোধ
যদি DDoS আক্রমণ আপনার সার্ভারে নির্দিষ্ট ফাইলগুলিকে লক্ষ্য করে - উদাহরণস্বরূপ, ওয়ার্ডপ্রেসের xmlrpc.php ফাইল (এটি বেশিরভাগ ওয়ার্ডপ্রেস সার্ভারে একটি ভারী লক্ষ্যবস্তু ফাইল) - আপনি এটিতে সমস্ত অনুরোধ ব্লক করতে পারেন৷ আপনার সার্ভার নির্দেশনায় এই কোড যোগ করুন:
অবস্থান /xmlrpc.php { সব অস্বীকার করুন;
উপরের পদ্ধতি অনুসরণ করুন, এবং আপনি বেশিরভাগ DDoS আক্রমণ সীমিত করতে সক্ষম হবেন। আপনি রাখতে পারেন এমন অতিরিক্ত নিরাপত্তা বিকল্পের জন্য Nginx ডকুমেন্টেশন পরীক্ষা করে দেখতে ভুলবেন না।