আপনার লিনাক্স সার্ভার সুরক্ষিত করতে Fail2ban কীভাবে কনফিগার করবেন

সর্বশেষ আপডেট: 3 সেপ্টেম্বর 2026 এর

একটি আধুনিক ডেটা সেন্টারে ল্যাপটপ নিয়ে কাজ করছেন একজন আইটি পেশাদার, যা সার্ভার নিরাপত্তা প্রবর্তনের জন্য আদর্শ।

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

এইখানেই Fail2ban-এর ভূমিকা, যা একটি অক্লান্ত প্রহরীর মতো কাজ করে। এটি ঠিক ফায়ারওয়াল নয়, বরং এটি সিস্টেম লগ বিশ্লেষণ করে এবং যখন এটি শনাক্ত করে যে কেউ জোর করে সিস্টেমে ঢোকার চেষ্টা করছে, তখন iptables বা nftables-এর মতো টুল ব্যবহার করে তাদের আইপি অ্যাড্রেস ব্লক করে তাদের মুখের উপর দরজা বন্ধ করে দেয়। চলুন দেখি, আপনার সার্ভারকে দুর্ভেদ্য করে তুলতে এটিকে কীভাবে কনফিগার করতে হয়।

Fail2ban আসলে কী এবং এটি কীভাবে কাজ করে?

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

এই কনফিগারেশনগুলোকে ‘জেইল’ নামক একটি কাঠামোতে সাজানো হয় । জেইল হলো মূলত কোনো নির্দিষ্ট সার্ভিসের (যেমন SSH, Apache, বা MySQL) জন্য প্রয়োগ করা কিছু নিয়মের সমষ্টি। এভাবে, আপনি রিমোট অ্যাক্সেসের জন্য একটি অত্যন্ত কঠোর পলিসি এবং ওয়েব সার্ভারের জন্য একটি অপেক্ষাকৃত শিথিল পলিসি রাখতে পারেন। এর ফলে, আপনাকে প্রতি পাঁচ মিনিট পর পর ম্যানুয়ালি লগ চেক না করেই অনুপ্রবেশকারীরা স্বয়ংক্রিয়ভাবে ব্লক হয়ে যায় ।

  লিনাক্সের জন্য সেরা ওয়েব রিসোর্স: একটি সম্পূর্ণ নির্দেশিকা

লিনাক্স সার্ভার র‍্যাকের পাশে হ্যাকার মাস্ক পরা একজন ব্যক্তির সাইবার আক্রমণের প্রতীক।

আপনার লিনাক্স ডিস্ট্রিবিউশন অনুযায়ী ইনস্টলেশন

আপনি কোন সিস্টেম ব্যবহার করছেন তার উপর নির্ভর করে এটি ইনস্টল করার কমান্ড কিছুটা ভিন্ন হতে পারে, তবে এটি সাধারণত প্রায় সমস্ত অফিসিয়াল রিপোজিটরিতেই পাওয়া যায়।

  • উবুন্টু এবং ডেবিয়ানে: এটা খুবই সহজ, তোমাকে শুধু দৌড়াতে হবে। sudo apt update দ্বারা অনুসরণ sudo apt install fail2ban.
  • রকি লিনাক্স বা আলমালিনাক্সে: যেহেতু এগুলো এন্টারপ্রাইজ ডিস্ট্রিবিউশন, তাই আপনাকে প্রথমে EPEL রিপোজিটরি সক্রিয় করতে হবে। sudo dnf install epel-release এবং তারপর প্যাকেজটি ইনস্টল করুন sudo dnf install fail2ban fail2ban-firewalld.
  • আলপাইন লিনাক্সে: এপিকে ম্যানেজার ব্যবহার করুন sudo apk add fail2ban এবং, যেহেতু এটি OpenRC ব্যবহার করে, আপনাকে এটি সক্রিয় করতে হবে sudo rc-update add fail2ban default এবং এটি দিয়ে শুরু করুন sudo rc-service fail2ban start.

একটি ডেটা সেন্টারের সার্ভার র‍্যাকের পেশাদারী বিবরণ, যেখানে নীল আলো সার্ভার অবকাঠামোর প্রতিনিধিত্ব করছে।

মাস্টার কনফিগারেশন: .local ফাইলের রহস্য

একটি খুব সাধারণ ভুল হলো ফাইলটি সরাসরি সম্পাদনা করা। jail.confএটা করবেন না! সিস্টেম আপডেট করার সময় ফাইলটি ওভাররাইট হয়ে যেতে পারে। মূল নিয়মটি হলো একটি কপি তৈরি করা যার নাম জেল.স্থানীয়এই দ্বিতীয় ফাইলে আপনি যে কোনো প্যারামিটার যোগ করলে তা মূল ফাইলের চেয়ে অগ্রাধিকার পাবে এবং আপনার করা পরিবর্তনগুলো মুছে যাবে। আপডেট থেকে নিরাপদ.

শুরু করার জন্য, আপনি মূল ফাইলটি ক্লোন করতে পারেন sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local এবং তারপর আপনার পছন্দের এডিটর, যেমন ন্যানো বা ভিম দিয়ে এটি খুলুন। বিভাগে [ডিফল্ট] এখানেই আপনি সিস্টেমের সামগ্রিক আচরণ নির্ধারণ করেন:

  • নিষেধাজ্ঞার সময়: ক্ষতিকারক আইপি অ্যাড্রেসটি কতক্ষণ নিষ্ক্রিয় থাকবে। এটি সেকেন্ডে অথবা মিনিটের জন্য 'm' ব্যবহার করে নির্ধারণ করা যেতে পারে (যেমন, 10m)।
  • সময় খুঁজুন: যে সময় ব্যবধানে Fail2ban ভুল পরীক্ষা করে। যদি কেউ এক ঘণ্টায় ৫ বার ব্যর্থ হয় কিন্তু ভুল খুঁজে পাওয়ার সময় ১০ মিনিট হয়, তবে তাকে নিষিদ্ধ করা হবে না।
  • সর্বোচ্চ পুনঃচেষ্টা: সিস্টেমটি বলার আগে অনুমোদিত ব্যর্থ চেষ্টার সংখ্যা যথেষ্ট হয়েছে এবং আইপি ব্লক করুন।.
  • উপেক্ষা করুন: নিজেকে নিষিদ্ধ হওয়া থেকে বাঁচাতে এটি অপরিহার্য। এখানে আপনাকে আপনার প্রবেশ করাতে হবে। পাবলিক আইপি ঠিকানা অথবা আপনার ভিপিএন পরিসীমা।
  শংসাপত্র এবং সার্টিফিকেশন: আপনার প্রোফাইল উন্নত করার জন্য একটি সম্পূর্ণ নির্দেশিকা

একটি এন্টারপ্রাইজ সার্ভারের সাথে সংযুক্ত ফাইবার অপটিক নেটওয়ার্ক ক্যাবলের ক্লোজ-আপ ছবি, যা নেটওয়ার্ক সংযোগ এবং নিরাপত্তা তুলে ধরে।

ধাপে ধাপে নির্দিষ্ট পরিষেবাগুলি রক্ষা করা

সাধারণ সেটিংস কনফিগার করা হয়ে গেলে, আপনার সবচেয়ে গুরুত্বপূর্ণ পরিষেবাগুলোর জন্য জেলগুলো সক্রিয় করার সময় এসেছে। সুরক্ষা কার্যকর হওয়ার জন্য, আপনাকে অবশ্যই সেট করতে হবে। enabled = true এর নিজ নিজ বিভাগের মধ্যে jail.local.

SSH অ্যাক্সেস (সবচেয়ে গুরুত্বপূর্ণ বিষয়)

পোর্ট ২২ হলো প্রধান লক্ষ্য। একটি শক্তিশালী কনফিগারেশন সংজ্ঞায়িত করবে maxretry = 3 এবং একটি bantime = 3600 (এক ঘণ্টা)। Fail2ban ফাইলটি পড়বে। /var/log/auth.log (ডেবিয়ান/উবুন্টুতে) অথবা প্রথমেই / var / log /? নিরাপদ (CentOS/RHEL-এ) প্রমাণীকরণ ব্যর্থতা শনাক্ত করতে এবং আক্রমণকারীর প্রবেশাধিকার বন্ধ করতে।

ওয়েব সার্ভার (অ্যাপাচি এবং এনজিনক্স)

আপনার যদি কোনো ওয়েবসাইট বা অনলাইন স্টোর থাকে, তাহলে বটগুলো সংবেদনশীল রুটগুলোতে প্রবেশ করার চেষ্টা করবে, যেমন— /wp-admin o /login.phpআপনি কাস্টম ফিল্টার তৈরি করতে পারেন /etc/fail2ban/filter.d/ এই প্যাটার্নগুলো সনাক্ত করতে। উদাহরণস্বরূপ, ওয়ার্ডপ্রেস সুরক্ষিত করুন৪০৩ ত্রুটি বা ব্যর্থ প্রচেষ্টা পর্যবেক্ষণ করা হয় wp-login.phpঅ্যাপাচি বা এনজিনক্স জেইলে নির্ধারিত সীমা অতিক্রম করলে আইপি ব্লক করে দেওয়া হয়।

ডাটাবেস এবং এফটিপি

MySQL-এর ক্ষেত্রে, আপনি ত্রুটি লগে এই বাক্যাংশটি পর্যবেক্ষণ করতে পারেন। ব্যবহারকারীর জন্য প্রবেশাধিকার অস্বীকার করা হয়েছেFTP (যেমন ProFTPD)-এর ক্ষেত্রে, এটা নিশ্চিত করা অত্যাবশ্যক যে logpath আপনার লগ ফাইলের আসল পাথটি মেলান, কারণ Fail2ban যদি লগ ফাইলটি খুঁজে না পায়, তাহলে সুরক্ষা ব্যবস্থাটি কাজ করবে না।

fail2ban-client এর মাধ্যমে উন্নত ব্যবস্থাপনা

দ্রুত পরিবর্তন করার জন্য আপনাকে সবসময় ফাইল এডিট করতে এবং সার্ভিস রিস্টার্ট করতে হবে না। কমান্ডটি fail2ban-client এর মাধ্যমে আপনি কনসোল থেকে তাৎক্ষণিকভাবে সিস্টেমটি পরিচালনা করতে পারবেন।

কোন জেলগুলো সক্রিয় আছে এবং কতগুলো আইপি ব্লক করা হয়েছে তা দেখতে, ব্যবহার করুন sudo fail2ban-client statusআপনি যদি SSH-এর মতো কোনো পরিষেবা সম্পর্কে আরও গভীরভাবে জানতে চান, তাহলে চালান sudo fail2ban-client status sshdতাছাড়া, যদি ভুলবশত আপনি একজন সহকর্মীকে ব্লক করেছেন অথবা আপনি কমান্ডের সাহায্যে নিজেই দ্রুত আইপি অ্যাড্রেসটি রিলিজ করতে পারেন। sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.

রক্ষণাবেক্ষণ এবং সমস্যা সমাধান

যদি আপনি লক্ষ্য করেন যে Fail2ban ঠিকমতো ব্লক করছে না, তাহলে প্রথমে টুলটির নিজস্ব লগ ফাইলটি খতিয়ে দেখুন। /var/log/fail2ban.log। ব্যবহার tail -f কাকে এবং কেন নিষিদ্ধ করা হচ্ছে, তা আপনি রিয়েল টাইমে দেখতে পারবেন।

  ক্রোম রিমোট ডেস্কটপ: ব্যক্তিগত কম্পিউটারের সমাপ্তি?

মনে রাখবেন যে Fail2ban লক স্ট্যাটাসটি SQLite ডাটাবেসে সংরক্ষণ করে। /var/lib/fail2ban/fail2ban.sqlite3সুতরাং, আপনি সার্ভারটি রিস্টার্ট করলে, ব্যান করা আইপিগুলো আনব্যান হয়ে যাবে। অবরুদ্ধ থাকবে আপনার শাস্তির মেয়াদ শেষ না হওয়া পর্যন্ত। যখনই আপনি কনফিগারেশন ফাইলগুলিতে কোনো পরিবর্তন করবেন, সেই পরিবর্তনগুলি প্রয়োগ করতে ভুলবেন না। sudo systemctl restart fail2ban.

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