সার্ভার ফায়ারওয়াল স্থাপন হল সার্ভারে প্রয়োজনীয় পোর্টগুলি খোলা রেখে অপ্রয়োজনীয় সব প্রবেশাধিকার বন্ধ করার প্রক্রিয়া; DDoS, ব্রুট ফোর্স এবং ক্ষতিকর বট ট্রাফিকের বিরুদ্ধে প্রথম প্রতিরক্ষা স্তর তৈরি করে। বাস্তবে লক্ষ্য হল; SSH প্রবেশাধিকার সীমিত করা, ওয়েব পরিষেবাগুলি নিয়ন্ত্রিতভাবে খোলা রাখা, সন্দেহজনক অনুরোধগুলিকে হার্ড লিমিটে রাখা, লগগুলি পর্যবেক্ষণ করা এবং সম্ভব হলে CDN/WAF মতো উচ্চ স্তরের সুরক্ষা ব্যবস্থার সঙ্গে ট্রাফিককে সার্ভারে পৌঁছানোর আগে ফিল্টার করা।
একটি ওয়েব সার্ভারকে ইন্টারনেটে খোলার সাথে সাথে কয়েক মিনিটের মধ্যে পোর্ট স্ক্যানিং, SSH পরীক্ষার, দুর্বলতার বট এবং ভুয়া ব্যবহারকারী এজেন্টের মুখোমুখি হতে পারেন। বিশেষ করে যেসব সাইট WordPress, ই-কমার্স, প্যানেল, API বা গেম সার্ভার চালায়, সেখানে ফায়ারওয়াল শুধুমাত্র একটি প্রযুক্তিগত পছন্দ নয়, বরং অব্যাহতির জন্য একটি বাধ্যবাধকতা। এই গাইডে আমরা Linux সার্ভারে ব্যবহারযোগ্য ধাপে ধাপে একটি ফায়ারওয়াল স্থাপনা তৈরি করব; UFW, firewalld, nftables, Fail2ban, ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল এবং DDoS হ্রাস পদ্ধতিটি একসাথে আলোচনা করব।
একটি গুরুত্বপূর্ণ সত্য দিয়ে শুরু করা যাক: স্থানীয় সার্ভার ফায়ারওয়াল একা বড় আকারের DDoS আক্রমণ থামাতে পারে না। 20 Gbps, 80 Gbps বা তারও বেশি আক্রমণের আকারে ডেটা কেন্দ্র বা নেটওয়ার্কের মূল স্তরে পৌঁছালে, প্যাকেটগুলি আপনার অপারেটিং সিস্টেমের নিয়ম সেটে পৌঁছানোর আগে ব্যান্ডউইডথ পূর্ণ করে ফেলতে পারে। তাই সঠিক পদ্ধতি হল স্তরভিত্তিক নিরাপত্তা: প্রদানকারী স্তরে DDoS সুরক্ষা, CDN/WAF, অপারেটিং সিস্টেমের ফায়ারওয়াল, অ্যাপ্লিকেশন রেট লিমিটিং এবং নিয়মিত লগ বিশ্লেষণ একসাথে কাজ করা উচিত। উপযুক্ত অবকাঠামো নির্বাচনের জন্য Hostragons VPS এবং VDS সার্ভার সমাধানসমূহ পৃষ্ঠায়, ওয়েবসাইটের নিরাপদ হোস্টিং বিকল্পগুলির জন্য Hostragons ওয়েব হোস্টিং প্যাকেজসমূহ পৃষ্ঠায় লিঙ্ক দেওয়া যেতে পারে।
সার্ভার ফায়ারওয়াল কী কাজে লাগে?
সার্ভার ফায়ারওয়াল হল একটি নিরাপত্তা স্তর যা নেটওয়ার্ক ট্রাফিককে উৎস IP, লক্ষ্য IP, পোর্ট, প্রোটোকল, সংযোগের অবস্থা এবং কিছু ক্ষেত্রে প্যাকেটের বৈশিষ্ট্যের ভিত্তিতে ফিল্টার করে। একটি সহজ উদাহরণ দিয়ে; আপনার ওয়েবসাইটের জন্য 80 এবং 443 পোর্ট খোলা থাকতে হবে, তবে ডেটাবেস পোর্ট 3306 ইন্টারনেটে খোলা থাকা উচিত নয়। SSH জন্য 22 নম্বর পোর্টটি সবার জন্য খোলা রাখা সঠিক নয়, বরং কেবল আপনার অফিসের IP ঠিকানা থেকে সংযোগের অনুমতি দেওয়া নিরাপদ।
ফায়ারওয়ালের মূল উদ্দেশ্য সব আক্রমণকে যাদুকরীভাবে ধ্বংস করা নয়। আসল লক্ষ্য হল আক্রমণের পৃষ্ঠাকে ছোট করা। আক্রমণ পৃষ্ঠ যত ছোট হবে, আক্রমণকারীর জন্য চেষ্টা করার বিকল্প তত কম হবে। উদাহরণস্বরূপ, একটি নতুন স্থাপিত Linux সার্ভারে SSH, ওয়েব প্যানেল, মেইল সার্ভিস, ডেটাবেস, মনিটরিং এজেন্ট এবং টেস্ট সার্ভিস একসাথে খোলা থাকতে পারে। এগুলি প্রতিটি আলাদা একটি ঝুঁকি তৈরি করে। একটি ভালভাবে কনফিগার করা ফায়ারওয়াল, "ডিফল্টরূপে প্রত্যাখ্যান করুন, যা প্রয়োজন তা অনুমতি দিন" নীতির ভিত্তিতে কাজ করে।
DDoS এবং বট ট্রাফিক বোঝা
DDoS আক্রমণ কেন আলাদা?
DDoS, অর্থাৎ বিতরণকৃত পরিষেবা অস্বীকৃতি আক্রমণ, একাধিক উৎস থেকে আসা তীব্র ট্রাফিকের মাধ্যমে লক্ষ্য পরিষেবাকে অপ্রবেশযোগ্য করার লক্ষ্য রাখে। আক্রমণ কখনও ব্যান্ডউইডথ পূর্ণ করে, কখনও সার্ভারের CPU এবং RAM সম্পদ ব্যবহার করে, কখনও আবার অ্যাপ্লিকেশন স্তরে ব্যয়বহুল ক্রিয়াকলাপগুলি উন্মোচন করে। উদাহরণস্বরূপ, প্রতি সেকেন্ডে 50,000 HTTP অনুরোধ পাওয়া একটি ছোট অ্যাপ্লিকেশন সার্ভার, নেটওয়ার্ক লাইন পূর্ণ না হলেও PHP-FPM, Node.js অথবা ডেটাবেস সংযোগ পুলের কারণে সাড়া দিতে অক্ষম হয়ে যেতে পারে।
বট কি সবসময় খারাপ?
না। Googlebot, Bingbot এবং কিছু ট্র্যাকিং বট উপকারী। তবে ক্ষতিকর বটগুলি প্রশাসনিক প্যানেল স্ক্যানিং, খোলা ডিরেক্টরি অনুসন্ধান, ফর্ম স্প্যাম, কনটেন্ট কপি, XML-RPC অপব্যবহার, ভুয়া রেজিস্ট্রেশন তৈরি এবং লগইন প্রচেষ্টা করে। তাই বট ব্যবস্থাপনায় উদ্দেশ্য হল সব বটকে বন্ধ করা নয়, বরং আচরণের ভিত্তিতে পার্থক্য করা। উচ্চ ত্রুটি হার, খুব কম সময়ে অনেকগুলি অনুরোধ, প্রকৃত ব্রাউজারের মতো আচরণ না করা শিরোনাম এবং সন্দেহজনক URL প্যাটার্নগুলি গুরুত্বপূর্ণ সংকেত।
স্থাপনের আগে চেকলিস্ট
লাইভ সার্ভারে ফায়ারওয়াল নিয়ম লেখার সময় সবচেয়ে বড় ঝুঁকি হল নিজেকে সার্ভার থেকে লক করা। তাই পরিবর্তন করার আগে একটি সংক্ষিপ্ত প্রস্তুতি নেওয়া প্রয়োজন। নিচের চেকলিস্টটি উৎপাদন পরিবেশে সাধারণভাবে ব্যবহৃত একটি নিরাপদ শুরু করার পদ্ধতি।
- সক্রিয় SSH সেশন বন্ধ করবেন না; দ্বিতীয় টার্মিনালের মাধ্যমে পরীক্ষা করুন।
- আপনার সার্ভার প্রদানকারী কনসোল, VNC বা পুনরুদ্ধার অ্যাক্সেস প্রদান করে কিনা তা নিশ্চিত করুন।
- বর্তমান খোলা পোর্টগুলি তালিকাভুক্ত করুন: ss -tulpn অথবা netstat -tulpn আউটপুট পর্যালোচনা করুন।
- ওয়েব, মেইল, DNS, ডেটাবেস, প্যানেল এবং মনিটরিং পরিষেবাগুলি কোন পোর্টগুলি ব্যবহার করছে তা নোট করুন।
- যদি আপনি IPv6 ব্যবহার করেন তবে IPv6 ফায়ারওয়াল নিয়মগুলি পরিকল্পনা করুন।
- প্রথমে অনুমতি (allow) নিয়ম এবং পরে নিষেধাজ্ঞা (deny) নিয়মগুলি প্রয়োগ করুন।
- নিয়ম সেট স্থায়ী যে তা নিশ্চিত করুন; সার্ভার পুনরায় চালু হলে এটি হারিয়ে যাবে না।
যেমন, শুধুমাত্র ওয়েবসাইট হোস্টিং করা একটি সাধারণ সার্ভারে বাইরের জন্য খোলা থাকা পোর্টগুলির মধ্যে সাধারণত 80, 443 এবং সীমিত SSH পোর্ট থাকবে। যদি মেইল সার্ভার কাজ না করে তবে 25, 465, 587, 993 এর মতো পোর্ট খোলা থাকা উচিত নয়। যদি ডেটাবেস শুধুমাত্র একই সার্ভার থেকে ব্যবহার করা হয়, তবে 3306 অথবা 5432 পোর্টগুলি বাইরের বিশ্ব থেকে বন্ধ থাকা উচিত।
কোন ফায়ারওয়াল টুলটি নির্বাচন করা উচিত?
Linux বিশ্বে একাধিক টুল রয়েছে এবং বেশিরভাগ একই কোর ফিল্টারিং অবকাঠামো বিভিন্ন ব্যবহারের সুবিধার সাথে পরিচালনা করে। নতুনদের জন্য UFW সহজ এবং দ্রুত। কর্পোরেট বা Red Hat ভিত্তিক সিস্টেমে firewalld জনপ্রিয়। আরও উন্নত দৃশ্যপটে nftables আধুনিক এবং নমনীয় কাঠামো সরবরাহ করে। নিচের টেবিলটি নির্বাচন করতে সহজ করে তোলে।
| টুল | সর্বোত্তম ব্যবহার | সুবিধা | যা খেয়াল রাখতে হবে |
|---|---|---|---|
| UFW | Ubuntu এবং Debian ভিত্তিক সহজ ওয়েব সার্ভার | সহজ সিনট্যাক্স, দ্রুত ইনস্টলেশন | খুব জটিল নিয়ম সেটে সীমাবদ্ধ থাকতে পারে |
| firewalld | AlmaLinux, Rocky Linux, CentOS Stream, RHEL | Zone তত্ত্ব, স্থায়ী নিয়ম, পরিষেবা প্রোফাইল | Runtime এবং permanent-এর মধ্যে পার্থক্যটি ভালভাবে বুঝতে হবে |
| nftables | উন্নত স্তরের Linux নেটওয়ার্ক সুরক্ষা | আধুনিক, কার্যকর, নমনীয় | ভুল নিয়ম লেখার ফলে প্রবেশাধিকার বিঘ্নিত হতে পারে |
| ক্লাউড সিকিউরিটি গ্রুপ | VPS, ক্লাউড সার্ভার এবং ডেটা কেন্দ্রের পরিবেশ | ট্রাফিককে সার্ভারের কাছে আসার আগে ফিল্টার করে | OS ফায়ারওয়ালের পরিবর্তে নয়, এর পাশে ব্যবহার করা উচিত |
| WAF/CDN | ওয়েব অ্যাপ্লিকেশন এবং HTTP আক্রমণ | বট, HTTP ফ্লাড এবং দুর্বলতা স্ক্যানিং কমায় | সঠিক DNS এবং প্রকৃত IP কনফিগারেশন প্রয়োজন |
ধাপে ধাপে সার্ভার ফায়ারওয়াল স্থাপন
1. খোলা পোর্ট এবং পরিষেবাগুলি চিহ্নিত করুন
প্রথম পদক্ষেপ হল কী খোলা আছে তা দেখা। Linux সার্ভারে ss -tulpn কমান্ডটি কোন পরিষেবাগুলি কোন পোর্টে শোনা হচ্ছে তা দেখায়। উদাহরণস্বরূপ, nginx 0.0.0.0:80 এবং 0.0.0.0:443 তে শোনা হলে, এর মানে হল যে ওয়েব ট্রাফিক সমস্ত ইন্টারফেস থেকে গ্রহণ করা হচ্ছে। MariaDB 0.0.0.0:3306 তে শোনা হলে, এটি সাধারণত ঝুঁকিপূর্ণ; বেশিরভাগ ওয়েবসাইটে ডেটাবেস 127.0.0.1 এ চলতে হবে।
এখানে একটি সাধারণ নিয়ম হল: ইন্টারনেট থেকে অ্যাক্সেস প্রয়োজন নয় এমন কোনো পরিষেবা 0.0.0.0 তে শোনা উচিত নয়। প্রথমে পরিষেবা কনফিগারেশনটি সংশোধন করা, তারপর ফায়ারওয়াল দিয়ে বন্ধ করা বেশি স্বাস্থ্যকর। কারণ ফায়ারওয়াল নিষ্ক্রিয় থাকলেও পরিষেবাটি বাইরের বিশ্বের জন্য খোলা থাকা উচিত নয়।
2. ডিফল্ট নীতি বন্ধ করুন
নিরাপদ নিয়ম সেটে ডিফল্ট ইনকামিং ট্রাফিক প্রত্যাখ্যাত হয়, আউটগোয়িং ট্রাফিক প্রয়োজন অনুযায়ী মুক্ত করা হয়। এই পদ্ধতি পরে স্থাপন করা পরিষেবাগুলিকে ভুলভাবে ইন্টারনেটে খোলার ঝুঁকি কমায়। UFW ব্যবহার করে একটি Ubuntu সার্ভারে নীতিটি নিম্নরূপ: প্রথমে SSH এর জন্য অনুমতি দেওয়া হয়, তারপর 80 এবং 443 খোলা হয়, পরে ডিফল্ট ইনকামিং নীতি প্রত্যাখ্যাত করা হয় এবং ফায়ারওয়াল সক্রিয় করা হয়।
উদাহরণস্বরূপ: SSH জন্য আপনার প্রশাসক IP ঠিকানায় অনুমতি দিন, HTTP এবং HTTPS ট্রাফিক খোলা রাখুন, অপ্রয়োজনীয় পোর্টগুলি বন্ধ করুন, তারপর সক্রিয় করুন। SSH অনুমতি দেওয়ার আগে ফায়ারওয়াল খোলার চেষ্টা করা, বিশেষ করে দূরবর্তী সার্ভারে সবচেয়ে সাধারণ ভুলগুলির মধ্যে একটি।
3. SSH প্রবেশাধিকার সীমাবদ্ধ করুন
SSH হল আক্রমণকারীদের সবচেয়ে লক্ষ্যবস্তু পরিষেবাগুলির মধ্যে একটি। ডিফল্ট 22 পোর্ট খোলা থাকা একটি সার্ভার প্রতিদিন শত শত বা হাজার হাজার পাসওয়ার্ডের পরীক্ষা দেখতে পারে। সবচেয়ে নিরাপদ পদ্ধতি হল SSH প্রবেশাধিকার নির্দিষ্ট IP ঠিকানাগুলির সাথে সীমাবদ্ধ করা। যদি আপনি স্থির IP ব্যবহার করেন তবে কেবল আপনার অফিস বা VPN IP ঠিকানায় অনুমতি দিন। স্থির IP না থাকলে, অন্তত কী ভিত্তিক প্রমাণীকরণ ব্যবহার করুন এবং পাসওয়ার্ড প্রবেশ নিষিদ্ধ করুন।
- Root হিসাবে সরাসরি SSH প্রবেশ বন্ধ করুন।
- পাসওয়ার্ডের পরিবর্তে SSH কী ব্যবহার করুন।
- AllowUsers অথবা AllowGroups দিয়ে ব্যবহারকারীদের সীমাবদ্ধ করুন।
- Fail2ban দিয়ে ব্যর্থ পরীক্ষাগুলিকে স্বয়ংক্রিয়ভাবে বন্ধ করুন।
- যদি আপনি প্রশাসনিক প্যানেল ব্যবহার করেন তবে প্যানেল পোর্টটিও IP সীমাবদ্ধতার অধীনে আনুন।
পোর্ট পরিবর্তন করা একা নিরাপত্তা প্রদান করে না, তবে স্বয়ংক্রিয় বটের শব্দ কমাতে পারে। তবুও প্রকৃত সুরক্ষা IP সীমাবদ্ধতা, শক্তিশালী প্রমাণীকরণ এবং লগ পর্যবেক্ষণের মাধ্যমে নিশ্চিত করা হয়।
4. ওয়েব পোর্টগুলি নিয়ন্ত্রিতভাবে খুলুন
ওয়েবসাইট প্রকাশকারী বেশিরভাগ সার্ভারের জন্য 80 এবং 443 পোর্টগুলি প্রয়োজন। তবে আজকাল 443 অর্থাৎ HTTPS প্রধান ট্রাফিক পোর্ট হওয়া উচিত, 80 শুধুমাত্র HTTPS রিডিরেকশনের জন্য ব্যবহার করা উচিত। SSL সার্টিফিকেটহীন সাইটগুলি ব্যবহারকারীর আস্থা এবং SEO পারফরমেন্স উভয়কেই নেতিবাচকভাবে প্রভাবিত করে। এই মুহূর্তে Hostragons SSL সার্টিফিকেট লিঙ্কটি, পাঠককে নিরাপদ HTTPS স্থাপনার দিকে নির্দেশ করার জন্য একটি প্রাকৃতিক অভ্যন্তরীণ লিঙ্কের সুযোগ।
ওয়েব পোর্টগুলি খুলতে সময় প্রকৃত IP আচরণের প্রতি মনোযোগ দিন। যদি আপনি CDN বা বিপরীত প্রক্সি ব্যবহার করেন, তবে আপনার সার্ভারের 80 এবং 443 পোর্টগুলি সরাসরি সমস্ত ইন্টারনেটে খোলার পরিবর্তে কেবল CDN IP পরিসীমা থেকে আসা ট্রাফিকের অনুমতি দেওয়া আরও শক্তিশালী সুরক্ষা প্রদান করে। ফলে আক্রমণকারী প্রকৃত সার্ভার IP ঠিকানা জানলেও সরাসরি ওয়েব পরিষেবাতে প্রবেশ করতে পারে না।
5. ডেটাবেস এবং অভ্যন্তরীণ পরিষেবাগুলি ইন্টারনেট থেকে বন্ধ করুন
MySQL, MariaDB, PostgreSQL, Redis, Elasticsearch, MongoDB এবং অনুরূপ পরিষেবাগুলির জন্য ইন্টারনেটে খোলা থাকা বড় ঝুঁকি তৈরি করে। Redis এর জন্য প্রমাণীকরণের অভাব, Elasticsearch এর জন্য অকার্যকর সূচক অ্যাক্সেস বা MongoDB এর জন্য খোলা প্রশাসনিক পোর্ট অতীতে অনেক ডেটার লিকের কারণ হয়েছে। এই পরিষেবাগুলি সম্ভব হলে কেবল localhost অথবা বিশেষ নেটওয়ার্কের মাধ্যমে শোনা উচিত।
যেমন, একই সার্ভারে চলা WordPress সাইটের জন্য ডেটাবেসটি 127.0.0.1 থেকে চলা যথেষ্ট। যদি আপনি একটি পৃথক অ্যাপ্লিকেশন এবং ডেটাবেস সার্ভার ব্যবহার করেন তবে কেবল অ্যাপ্লিকেশন সার্ভারের বিশেষ IP ঠিকানায় অনুমতি দিন। সাধারণ ইন্টারনেট থেকে 3306 অথবা 5432 অ্যাক্সেস ছেড়ে দেওয়া, বট দ্বারা ক্রমাগত স্ক্যান করার একটি পরিচিত ভুল।
6. Fail2ban দিয়ে ব্রুট ফোর্স পরীক্ষাগুলি বন্ধ করুন
Fail2ban লগ ফাইলগুলি পর্যবেক্ষণ করে পুনরাবৃত্ত ব্যর্থ লগইন পরীক্ষাগুলি সনাক্ত করে এবং সংশ্লিষ্ট IP ঠিকানাকে অস্থায়ীভাবে বন্ধ করে দেয়। SSH, nginx, Apache, Postfix, Dovecot, WordPress লগইন এবং কিছু প্যানেল পরিষেবার জন্য জেল সংজ্ঞাগুলি তৈরি করা যেতে পারে। উদাহরণস্বরূপ, 10 মিনিটের মধ্যে 5টি ব্যর্থ SSH পরীক্ষার জন্য IP ঠিকানাটিকে 1 ঘন্টা বন্ধ করা সাধারণ কিন্তু কার্যকর একটি সূচনা।
Fail2ban কনফিগারেশনে অত্যন্ত আগ্রাসী নিয়ম ব্যবহার করার সময় সাবধান থাকুন। ভুল লগ প্যাটার্নগুলি প্রকৃত ব্যবহারকারীদেরও বন্ধ করে দিতে পারে। তাই প্রথম পর্যায়ে ব্যান্ডটাইম মানটিকে যুক্তিসঙ্গত রাখতে, লগগুলি পর্যবেক্ষণ করতে এবং পরে ধাপে ধাপে কঠোরতা বাড়ানো আরও নিরাপদ।
7. রেট লিমিটিং এবং সংযোগ সীমা যোগ করুন
DDoS এবং বট ট্রাফিকের বিরুদ্ধে অপারেটিং সিস্টেম স্তরে রেট লিমিটিং সহায়ক হতে পারে। উদাহরণস্বরূপ, একই IP ঠিকানায় প্রতি সেকেন্ডে অতিরিক্ত সংখ্যক নতুন সংযোগ আসলে সীমা প্রয়োগ করা যেতে পারে। ওয়েব সার্ভার দিক থেকে nginx এর জন্য limit_req এবং limit_conn মডিউলগুলি, Apache এর জন্য mod_evasive অথবা অনুরূপ সমাধানগুলি ব্যবহার করা যেতে পারে। অ্যাপ্লিকেশন দিক থেকে লগইন, অনুসন্ধান, কার্ট, পেমেন্ট এবং API এন্ডপয়েন্টগুলির জন্য আলাদাভাবে রেট লিমিটিং প্রয়োগ করতে হবে।
একটি নির্দিষ্ট উদাহরণ: একটি লগইন পৃষ্ঠায় একক IP ঠিকানার জন্য প্রতি মিনিটে 10টি প্রচেষ্টা যুক্তিসঙ্গত হতে পারে। একটি অনুসন্ধান এন্ডপয়েন্টে প্রতি সেকেন্ডে 2-5টি অনুরোধ যথেষ্ট হতে পারে। আপনি যদি API সরবরাহ করেন তবে ব্যবহারকারী ভিত্তিক টোকেন সীমা, IP সীমা এবং আচরণের বিশ্লেষণ একসাথে ডিজাইন করতে হবে। ফলে আক্রমণকারী কেবল IP পরিবর্তন করেই সমস্ত সীমা অতিক্রম করতে পারবে না।
UFW এর মাধ্যমে উদাহরণ নিরাপদ স্থাপন দৃশ্যপট
Ubuntu অথবা Debian ভিত্তিক একটি ওয়েব সার্ভারে একটি সাধারণ নিরাপদ শুরু দৃশ্যপট নিম্নরূপ স্থাপন করা যেতে পারে: প্রথমে বর্তমান পরিষেবাগুলি পরীক্ষা করুন, প্রশাসকের IP ঠিকানা থেকে SSH প্রবেশাধিকার অনুমতি দিন, 80 এবং 443 পোর্টগুলি খুলুন, আসা ট্রাফিককে ডিফল্টরূপে প্রত্যাখ্যান করুন এবং UFW অবস্থান নিশ্চিত করুন। যদি আপনার SSH প্রবেশাধিকার স্থির IP দ্বারা সীমাবদ্ধ করা না যায়, তবে সাময়িকভাবে সমস্ত IP থেকে SSH অনুমতি দিয়ে পরে VPN বা স্থির IP সমাধানে যেতে পারেন।
উদাহরণস্বরূপ সিদ্ধান্ত সেটটি এমন হতে পারে: 203.0.113.10 প্রশাসক IP ঠিকানা। SSH কেবল এই IP থেকে আসতে হবে। ওয়েব ট্রাফিক 80 এবং 443 এর মাধ্যমে সকলের জন্য খোলা থাকতে হবে। ডেটাবেস, Redis, প্যানেল এবং পরীক্ষার পোর্টগুলি বাইরের জন্য বন্ধ থাকতে হবে। এই কাঠামোটি ছোট এবং মধ্যম আকারের অনেক কর্পোরেট ওয়েবসাইটের জন্য একটি ভাল শুরু। ডোমেইন এবং DNS দিক থেকে সঠিক রিডিরেকশন তৈরি করতে Hostragons ডোমেন অনুসন্ধান এবং নিবন্ধন পৃষ্ঠায় অভ্যন্তরীণ সংযোগ দেওয়া যেতে পারে।
firewalld এর মাধ্যমে জোন তত্ত্ব
AlmaLinux, Rocky Linux এবং RHEL ভিত্তিক সার্ভারগুলিতে firewalld সাধারণভাবে ব্যবহৃত হয়। firewalld জোন তত্ত্বের সাথে কাজ করে। পাবলিক জোন ইন্টারনেটে খোলা ইন্টারফেসগুলির জন্য, ট্রাস্টেড জোন বিশ্বস্ত বিশেষ নেটওয়ার্কের জন্য, ড্রপ জোন অযাচিত ট্রাফিককে নীরবে ফেলে দিতে ব্যবহৃত হয়। সবচেয়ে গুরুত্বপূর্ণ বিষয় হল runtime এবং permanent নিয়মগুলির মধ্যে পার্থক্য। Runtime নিয়ম তাত্ক্ষণিকভাবে কার্যকর হয় কিন্তু পুনরায় চালু করার সময় হারিয়ে যেতে পারে; permanent নিয়ম স্থায়ী তবে রিলোড প্রয়োজন হতে পারে।
কর্পোরেট পরিবেশে firewalld ব্যবহার করার সময় পরিষেবা ভিত্তিক সংজ্ঞাগুলি কাজকে সহজ করে দেয়। উদাহরণস্বরূপ HTTP এবং HTTPS পরিষেবাগুলিকে পাবলিক জোনে খুলতে পারেন, SSH পরিষেবাটি কেবল নির্দিষ্ট উৎস IP ঠিকানাগুলির থেকে প্রবেশযোগ্য হতে পারে। প্রশাসনিক নেটওয়ার্ক, ব্যাকআপ নেটওয়ার্ক এবং ব্যবহারকারীর ট্রাফিক আলাদা ইন্টারফেসে থাকলে জোন কাঠামো নিরাপত্তা এবং পাঠযোগ্যতা বাড়ায়।
CDN, WAF এবং প্রদানকারী স্তরের DDoS সুরক্ষা
স্থানীয় ফায়ারওয়াল প্যাকেট সার্ভারে পৌঁছানোর পরে সিদ্ধান্ত নেয়। বড় DDoS আক্রমণের ক্ষেত্রে লক্ষ্য হল ট্রাফিককে সার্ভারে আসার আগে ফিল্টার করা। CDN, WAF এবং প্রদানকারী স্তরের DDoS সুরক্ষা তাই গুরুত্বপূর্ণ। CDN স্থির সামগ্রীগুলো প্রান্তের অবস্থানে সরবরাহ করে, WAF অ্যাপ্লিকেশন স্তরের ক্ষতিকর অনুরোধগুলিকে ফিল্টার করে, প্রদানকারীর সুরক্ষা নেটওয়ার্ক স্তরের বৃহৎ আক্রমণগুলি শোষণ করে অথবা পরিষ্কার করে।
আদর্শ মডেলে আপনার DNS রেকর্ডগুলি CDN এর মাধ্যমে চলে, আপনার প্রকৃত সার্ভার IP ঠিকানা গোপন করা হয়, আপনার সার্ভার ফায়ারওয়াল কেবল CDN IP পরিসীমা থেকে 80 এবং 443 গ্রহণ করে। প্রশাসনিক পোর্টগুলি VPN অথবা স্থির IP-এর মাধ্যমে প্রবেশযোগ্য হবে। একটি এমন মডেল সরাসরি IP-তে আক্রমণের সম্ভাবনা কমায় এবং বটের ট্রাফিককে অ্যাপ্লিকেশনে পৌঁছানোর আগে আটকাতে সক্ষম করে। ওয়েব সুরক্ষা এবং কার্যক্ষমতা বিষয়গুলি একসঙ্গে মোকাবেলা করা বিষয়বস্তুগুলির জন্য ওয়েবসাইট গতি বৃদ্ধি এবং নিরাপত্তা গাইড লিঙ্কটি ব্যবহার করা যেতে পারে।
বটের বিরুদ্ধে অ্যাপ্লিকেশন স্তরের পদক্ষেপ

বট ব্লকিং কেবল IP নিষেধাজ্ঞার তালিকা নয়। আধুনিক বটগুলি প্রক্সি, মোবাইল নেটওয়ার্ক, ডেটা সেন্টার IP এবং পরিবর্তনশীল ব্যবহারকারী এজেন্ট ব্যবহার করতে পারে। তাই আচরণ ভিত্তিক পদ্ধতির প্রয়োজন। একই IP থেকে সংক্ষিপ্ত সময়ের মধ্যে অনেকগুলি লগইন প্রচেষ্টা, ক্রমাগত 404 তৈরি করা স্ক্যানিং, wp-login.php বা xmlrpc.php-এর ঘনত্ব, সাধারণ ব্যবহারকারীর থেকে আলাদা ক্লিক প্যাটার্ন এবং সন্দেহজনক শিরোনামগুলি বিশ্লেষণ করা উচিত।
- লগইন এবং রেজিস্ট্রেশন ফর্মে রেট লিমিটিং ব্যবহার করুন।
- অপ্রয়োজনীয় XML-RPC প্রবেশাধিকার বন্ধ করুন বা সীমাবদ্ধ করুন।
- প্রশাসনিক প্যানেলকে আলাদা URL, IP সীমাবদ্ধতা এবং দ্বি-ফ্যাক্টর প্রমাণীকরণ দ্বারা সুরক্ষিত করুন।
- সন্দেহজনক ইউজার-এজেন্ট এবং রেফারার প্যাটার্নগুলি WAF স্তরে ফিল্টার করুন।
- ফর্মে CAPTCHA অথবা অদৃশ্য বট প্রমাণীকরণ মেকানিজমগুলি সুষমভাবে ব্যবহার করুন।
- API এন্ডপয়েন্টগুলির জন্য কী, স্বাক্ষর, কোটা এবং সময়ের ট্যাম্প পরীক্ষা যোগ করুন।
বট ব্যবস্থাপনায় ব্যবহারকারীর অভিজ্ঞতা বিকৃত না করা গুরুত্বপূর্ণ। অতিরিক্ত CAPTCHA, আগ্রাসী ব্লকিং বা ভুল দেশ ব্লকগুলি আপনার প্রকৃত গ্রাহকদের ক্ষতি করতে পারে। তাই পরিমাপ, পরীক্ষা এবং ধাপে ধাপে কঠোরতা বাড়ানো সবচেয়ে স্বাস্থ্যকর পদ্ধতি।
লগ পর্যবেক্ষণ এবং অ্যালার্ম নিয়ম
স্থাপনাটি শেষ হয়েছে মনে করা একটি সাধারণ ভুল। ফায়ারওয়াল একটি লাইভ সিস্টেম এবং নিয়মিত পর্যবেক্ষণ করা উচিত। auth.log অথবা secure ফাইলে SSH পরীক্ষাগুলি, nginx অ্যাক্সেস লগে অস্বাভাবিক অনুরোধের ঘনত্ব, ত্রুটি লগে 404 এবং 500 বৃদ্ধি, সিস্টেম মেট্রিকে CPU এবং সংযোগের সংখ্যা পর্যবেক্ষণ করা উচিত। একটি সাধারণ অ্যালার্মও আক্রমণ শুরু হলে মিনিটগুলিতে সময় বাঁচাতে পারে।
উদাহরণস্বরূপ থ্রেশহোল্ড মানগুলি শুরু করার জন্য এমন হতে পারে: 5 মিনিটের মধ্যে একই IP থেকে 100টির বেশি 404 অনুরোধ, 1 মিনিটের মধ্যে লগইন পৃষ্ঠায় 20টির বেশি প্রচেষ্টা, CPU ব্যবহার 10 মিনিটের জন্য 90 শতাংশের উপরে থাকা, সংযোগের সংখ্যা স্বাভাবিকের 3 গুণ বৃদ্ধি। এই থ্রেশহোল্ডগুলি প্রতিটি সাইটের জন্য পরিবর্তিত হয়; গুরুত্বপূর্ণ হল আপনার স্বাভাবিক ট্রাফিক প্রফাইল জানানো।
সাধারণ ভুল এবং এড়ানোর উপায়
- SSH অনুমতি দেওয়ার আগে ফায়ারওয়াল সক্রিয় করা: এটি দূরবর্তী সার্ভারে প্রবেশাধিকার হারানোর কারণ হতে পারে। সর্বদা দ্বিতীয় সেশনে পরীক্ষা করুন।
- IPv6 ভুলে যাওয়া: IPv4 দিক বন্ধ থাকাকালীন IPv6 এর মাধ্যমে পরিষেবা খোলা থাকতে পারে।
- ডেটাবেসকে ইন্টারনেটে খোলা রাখা: 3306, 5432, 6379 এবং 9200 এর মতো পোর্টগুলি বট দ্বারা ক্রমাগত স্ক্যান করা হয়।
- CDN ব্যবহার করে প্রকৃত IP খোলা রাখা: আক্রমণকারী CDN বাইপাস করে সরাসরি সার্ভারে আক্রমণ করতে পারে।
- নিয়মগুলি নথিভুক্ত না করা: জরুরি অবস্থায় কোন নিয়মের কি কাজ করে তা বোঝা কঠিন হয়ে পড়ে।
- ব্যাকআপ অ্যাক্সেস পরিকল্পনা তৈরি না করা: ভুল নিয়মে কনসোল অ্যাক্সেস না থাকলে বিঘ্ন দীর্ঘায়িত হয়।
ব্যবহারযোগ্য ফায়ারওয়াল নীতি উদাহরণ
ছোট একটি কর্পোরেট ওয়েবসাইটের জন্য কার্যকরী সারসংক্ষেপ নীতি নিম্নরূপ হতে পারে: আসা ট্রাফিক ডিফল্টরূপে বন্ধ; 443 সমস্ত দর্শকদের জন্য খোলা; 80 কেবল HTTPS রিডিরেকশনের জন্য খোলা; SSH কেবল VPN অথবা স্থির প্রশাসক IP ঠিকানার মাধ্যমে প্রবেশযোগ্য; ডেটাবেস localhost অথবা বিশেষ নেটওয়ার্কে থাকে; যদি CDN ব্যবহৃত হয় তবে 80 এবং 443 কেবল CDN IP পরিসীমাকে অনুমতি দেয়; Fail2ban SSH এবং ওয়েব লগইন পরীক্ষাগুলি পর্যবেক্ষণ করে; লগগুলি কেন্দ্রীয় পর্যবেক্ষণ সরঞ্জামে পাঠানো হয়।
মধ্যম আকারের একটি ই-কমার্স সাইটে এর পাশাপাশি পেমেন্ট callback IP গুলি allowlist করা হয়, প্রশাসনিক প্যানেলকে VPN এর পিছনে নেওয়া হয়, API এর জন্য ব্যবহারকারী ভিত্তিক কোটা প্রয়োগ করা হয়, WAF এর উপর SQL ইনজেকশন এবং XSS নিয়মগুলি সক্রিয় করা হয়, দেশ বা ASN ভিত্তিক অস্থায়ী ফিল্টারিং পরিকল্পনা প্রস্তুত করা হয়। এই পরিকল্পনাটি লিখিত হওয়া গুরুত্বপূর্ণ; আক্রমণ ঘটলে সিদ্ধান্ত নেওয়ার পরিবর্তে পূর্বনির্ধারিত পদ্ধতি প্রয়োগ করা বিঘ্নের সময়কাল কমায়।
পরীক্ষা: নিয়মগুলি আসলে কাজ করছে কি?
ফায়ারওয়াল স্থাপনের পরে অবশ্যই পরীক্ষা করা উচিত। ভিন্ন একটি নেটওয়ার্ক থেকে খোলা পোর্ট স্ক্যান করুন, SSH প্রবেশাধিকারের অনুমোদিত IP থেকে কাজ করছে তা নিশ্চিত করুন, ওয়েবসাইট HTTPS এর মাধ্যমে প্রবেশযোগ্য কি তা পরীক্ষা করুন, ডেটাবেস পোর্ট বাইরের থেকে বন্ধ রয়েছে কিনা তা নিশ্চিত করুন। CDN ব্যবহার করলে প্রকৃত সার্ভার IP তে সরাসরি HTTP অনুরোধ পাঠিয়ে যাচাই করুন যে এটি ব্লক করা হয়েছে।
পরীক্ষার প্রক্রিয়ায় উৎপাদন সিস্টেমে ক্ষতি করতে পারে এমন আগ্রাসী স্ক্যানিং করবেন না। উদ্দেশ্য হল নিরাপদ পরীক্ষা করা। এছাড়াও, প্রতিটি পরিবর্তনের পরে নিয়ম সেটটি রপ্তানি করুন বা নোট করুন। ফলে একটি সমস্যা হলে পূর্বের স্বাস্থ্যকর কনফিগারেশনে ফিরে আসা সহজ হবে।
রক্ষণাবেক্ষণ এবং আপডেট পরিকল্পনা
সার্ভার নিরাপত্তা একবারের জন্য স্থাপন নয়, বরং একটি নিয়মিত রক্ষণাবেক্ষণ প্রক্রিয়া। নতুন পরিষেবা যুক্ত করার সময় পোর্টের প্রয়োজনীয়তা পর্যালোচনা করতে হবে, পুরানো পরিষেবা অপসারিত হলে সংশ্লিষ্ট অনুমতিগুলি মুছে ফেলতে হবে, নিরাপত্তার আপডেট সময়মতো প্রয়োগ করতে হবে এবং লগগুলি নিয়মিত পর্যবেক্ষণ করতে হবে। মাসে অন্তত একবার খোলা পোর্টের পরিদর্শন করা, তিন মাসে একবার ফায়ারওয়াল নিয়ম সেট পর্যালোচনা করা একটি ভাল প্রাক্টিস শুরু।
এছাড়াও ব্যাকআপ পরিকল্পনা নিরাপত্তা কৌশলের একটি অংশ। DDoS আক্রমণ প্রবেশাধিকার বিঘ্নিত করতে পারে, কিন্তু র্যানসমওয়্যার অথবা অনুমোদনহীন প্রবেশের কারণে ডেটা হারাতে পারে। নিরাপদ হোস্টিং, SSL, ডোমেইন ব্যবস্থাপনা এবং ব্যাকআপ একসাথে বিবেচনা করা উচিত। এই প্রেক্ষাপটে নিরাপদ হোস্টিং নির্বাচন করার সময় যা খেয়াল রাখতে হবে এবং এসএসএল সার্টিফিকেট ইনস্টলেশন কিভাবে করা হয় বিষয়বস্তুগুলি প্রাকৃতিক ধারাবাহিক লিঙ্ক।
সারসংক্ষেপ
সার্ভার ফায়ারওয়াল স্থাপন, DDoS এবং বটের বিরুদ্ধে সার্ভারকে সম্পূর্ণ অদৃশ্য করে না; তবে আক্রমণের পৃষ্ঠাকে গুরুতরভাবে কমিয়ে দেয়, অনুমোদনহীন প্রবেশের ঝুঁকি কমায় এবং ঘটনাগুলিতে আরও নিয়ন্ত্রিতভাবে হস্তক্ষেপ করতে সহায়তা করে। সবচেয়ে সঠিক ফলাফল; প্রদানকারী স্তরের DDoS সুরক্ষা, CDN/WAF, কঠোর পোর্ট নীতি, SSH সীমাবদ্ধতা, Fail2ban, রেট লিমিটিং এবং নিয়মিত লগ পর্যবেক্ষণের সমন্বয়ে প্রাপ্ত হয়।
যদি আপনি একটি নতুন প্রকল্প চালু করছেন তবে নিরাপত্তা ফায়ারওয়াল নীতিটি প্রথম থেকেই পরিকল্পনা করা পরবর্তী সময়ে সংশোধন করার চেয়ে সহজ। Hostragons এ সার্ভার, হোস্টিং, ডোমেইন এবং SSL অবকাঠামো মূল্যায়ন করার সময় আপনার নিরাপত্তার প্রয়োজনীয়তাগুলি একসাথে বিবেচনা করে আরও টেকসই একটি ওয়েব পরিবেশ তৈরি করতে পারেন। আপনার প্রয়োজন হলে একটি ছোট চেকলিস্টের মাধ্যমে শুরু করুন: খোলা পোর্ট বন্ধ করুন, SSH সীমাবদ্ধ করুন, HTTPS বাধ্যতামূলক করুন এবং লগগুলি পর্যবেক্ষণ করুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
সার্ভার ফায়ারওয়াল DDoS আক্রমণ সম্পূর্ণরূপে বন্ধ করে কি?
না। স্থানীয় ফায়ারওয়াল ছোট আকারের এবং কিছু প্রোটোকল স্তরের আক্রমণ কমাতে পারে, তবে বড় আকারের DDoS আক্রমণের জন্য প্রদানকারী স্তরের DDoS সুরক্ষা, CDN এবং WAF ব্যবহার করা প্রয়োজন।
ওয়েব সার্ভারে কোন পোর্টগুলি খোলা থাকতে হবে?
টাইপিক্যাল একটি ওয়েব সার্ভারে 80 এবং 443 পোর্ট খোলা থাকে। SSH পোর্টটি কেবল প্রশাসক IP ঠিকানাগুলির জন্য অনুমোদিত হওয়া উচিত। ডেটাবেস এবং অভ্যন্তরীণ পরিষেবা পোর্টগুলি ইন্টারনেটে বন্ধ রাখা উচিত।
UFW না firewalld ব্যবহার করা উচিত?
Ubuntu এবং Debian এর জন্য UFW আরও সহজ একটি শুরু দেয়। AlmaLinux, Rocky Linux এবং RHEL ভিত্তিক সিস্টেমগুলিতে firewalld প্রচলিত। উন্নত স্তর এবং বিশেষ দৃশ্যপটগুলিতে nftables বেছে নেওয়া যেতে পারে।
বট ট্রাফিক শুধুমাত্র IP ব্লক করে থামিয়ে দেওয়া সম্ভব?
সাধারণত না। আধুনিক বটগুলি বিভিন্ন IP এবং প্রক্সি ব্যবহার করে। IP ব্লকিংয়ের পাশাপাশি রেট লিমিটিং, WAF নিয়ম, আচরণ বিশ্লেষণ, CAPTCHA এবং অ্যাপ্লিকেশন ভিত্তিক কোটা ব্যবহার করা উচিত।
ফায়ারওয়াল স্থাপন করার সময় সবচেয়ে বড় ঝুঁকি কি?
সর্ববৃহৎ ঝুঁকি হল ভুল নিয়মের কারণে আপনার SSH প্রবেশাধিকার বন্ধ করা। তাই আগে SSH অনুমতি সংজ্ঞায়িত করতে হবে, দ্বিতীয় সেশনে পরীক্ষা করতে হবে এবং প্রদানকারীর কনসোল অ্যাক্সেস প্রস্তুত রাখতে হবে।