এই মডিউল কী করে #
fail2ban হলো সেই প্রহরী যে আপনার সার্ভারের লগ পর্যবেক্ষণ করে এবং ক্ষতিকর অ্যাক্সেসের চেষ্টা (যেমন SSH-এ বহুবার পাসওয়ার্ড ব্যর্থতা) শনাক্ত করলে অপরাধী IP-কে কিছু সময়ের জন্য স্বয়ংক্রিয়ভাবে ব্যান করে দেয়। পর্যবেক্ষণাধীন প্রতিটি সেবা একটি jail-এ সংগঠিত হয় (যেমন sshd)।
fail2ban মডিউল আপনাকে fail2ban-client-এর সিনট্যাক্স মনে না রেখেই রানটাইমে এই ব্যানগুলোর নিয়ন্ত্রণ দেয়: jail-গুলোর অবস্থা দেখুন, কে ব্যান হয়েছে তালিকাভুক্ত করুন, কোনো নির্দিষ্ট IP ব্লক হয়ে আছে কিনা যাচাই করুন, হাতে-হাতে ব্যান বা আনব্যান করুন, জরুরি অবস্থায় সব একসাথে আনলক করুন এবং কোনো পরিবর্তনের পর কনফিগারেশন পুনরায় লোড করুন।
এই মডিউল ইতিমধ্যে ইনস্টল করা ও চালু থাকা একটি fail2ban-এর ওপর কাজ করে। সব সাবকমান্ড সেবার অবস্থা দেখে বা পরিবর্তন করে, তাই এদের root সুবিধা দরকার (sudo ব্যবহার করুন)। আপনার নিজের IP-র কারণে বাইরে আটকে গেলে সরাসরি জরুরি আনলক-এ চলে যান।
সাধারণ কাজ #
আপনি কী করতে চান বেছে নিন। প্রতিটি রেসিপিতে কমান্ড লেখা রয়েছে — শুধু IP বা jail-টি আপনার নিজেরটা দিয়ে বদলান, আর কপি করুন-এ চাপ দিন।
1
অবস্থা ও jail দেখুন
এক নজরে দেখুন fail2ban সক্রিয় কিনা এবং কতজন ব্যান হয়েছে।
ubuntu ব্যবহারকারী দিয়ে SSH-এর মাধ্যমে আপনার সার্ভারে যুক্ত হয়ে সাধারণ অবস্থা জানতে চান:
$ sudo imaxe fail2ban statusস্ক্রিপ্ট বা প্যানেলের জন্য মেশিন-পাঠযোগ্য ফরম্যাটে চান? --json যোগ করুন:
$ sudo imaxe fail2ban status --jsonsshd) এবং প্রতিটিতে কতটি IP ব্যান হয়েছে তা দেখতে পাবেন।2
কোন IP ব্যান হয়েছে দেখুন
সব jail বা কোনো নির্দিষ্ট jail-এর সক্রিয় ব্যান তালিকাভুক্ত করুন।
সব jail-এর সমস্ত ব্যান হওয়া IP একসাথে:
$ sudo imaxe fail2ban bannedশুধু একটি jail-এ আগ্রহী? সেটি আর্গুমেন্ট হিসেবে দিন:
$ sudo imaxe fail2ban banned sshd3
কোনো IP ব্যান হয়েছে কিনা যাচাই করুন
একটি নির্দিষ্ট ঠিকানা কোন কোন jail-এ ব্লক হয়ে আছে জেনে নিন।
সরাসরি IP নিয়ে জিজ্ঞাসা করুন; এটি কোন কোন jail-এ ব্যান হয়ে আছে তা জানিয়ে দেবে:
$ sudo imaxe fail2ban check 203.0.113.74
কোনো IP ব্যান বা আনব্যান করুন
অপব্যবহারকারী ঠিকানাকে হাতে-হাতে ব্লক করুন বা বৈধ ব্যবহারকারীকে মুক্ত করুন।
একটি নির্দিষ্ট jail-এ IP ব্যান করুন (যদি একটিমাত্র jail থাকে, সেটি নিজেই অনুমান করে নেওয়া হয়):
$ sudo imaxe fail2ban ban 203.0.113.7 --jail sshdবৈধ কাউকে ব্যান করে ফেলেছেন? সব jail থেকে একসাথে তাকে আনব্যান করুন:
$ sudo imaxe fail2ban unban 203.0.113.7imaxe fail2ban check দিয়ে নিশ্চিত করুন।5
সব আনলক করুন (জরুরি)
আপনি বাইরে আটকে গেছেন: সব jail-এর সমস্ত IP মুক্ত করুন।
আপনার নিজের IP আটকে গেছে এবং এখনই অ্যাক্সেস ফিরে পেতে চান? সবগুলো আনব্যান করুন। নিশ্চিতকরণ এড়াতে --yes যোগ করুন:
$ sudo imaxe fail2ban unban-all --yesjail কনফিগারেশনে পরিবর্তনের পর, তা কার্যকর করতে পুনরায় লোড করুন:
$ sudo imaxe fail2ban reloadunban-all নিয়ে সতর্ক থাকুনএটি ব্যানের একটি ধ্বংসাত্মক অপারেশন: সব IP-কে ব্লকমুক্ত করে দেয়, ক্ষতিকরগুলোসহ। শুধু জরুরি অবস্থায় অ্যাক্সেস ফিরে পেতে এটি ব্যবহার করুন এবং পরে imaxe fail2ban status দিয়ে অবস্থা যাচাই করুন।
সারসংক্ষেপ #
imaxe fail2ban <subcomando> [<ip>|<jail>] [--jail JAIL] [flags]সব সাবকমান্ডের root সুবিধা দরকার (sudo ব্যবহার করুন), কারণ এরা fail2ban-client-এর মাধ্যমে fail2ban-এর অবস্থা দেখে বা পরিবর্তন করে। মেশিন-পাঠযোগ্য, স্ক্রিপ্টিং-উপযোগী আউটপুট পেতে status, banned বা check-এ --json যোগ করুন।
সাবকমান্ড #
| সাবকমান্ড | কী করে | প্রাসঙ্গিক ফ্ল্যাগ |
|---|---|---|
| status | fail2ban-এর অবস্থা: সক্রিয় কিনা, jail এবং প্রতি jail-এ ব্যান হওয়া IP-র সংখ্যা। | --json |
| banned | ব্যান হওয়া IP তালিকাভুক্ত করে (সব jail বা কোনো নির্দিষ্ট jail)। | --json |
| check | একটি IP কোন কোন jail-এ ব্যান হয়ে আছে তা জানায়। | --json |
| ban | একটি jail-এ কোনো IP হাতে-হাতে ব্যান করে। | --jail |
| unban | সব jail থেকে একটি IP আনব্যান করে। | — |
| unban-all | জরুরি: সব jail-এর সমস্ত IP আনব্যান করে। | --yes |
| reload | fail2ban-এর কনফিগারেশন পুনরায় লোড করে (jail.local যাচাই করে)। | — |
আর্গুমেন্ট ও ফ্ল্যাগ #
| আর্গুমেন্ট / ফ্ল্যাগ | ধরন | ডিফল্ট | বিবরণ |
|---|---|---|---|
| <ip> আবশ্যক | string | — | যে IP-র ওপর কাজ করা হবে। check, ban ও unban-এ আবশ্যক। |
| <jail> | string | সব | banned-এ তালিকাভুক্ত করার নির্দিষ্ট jail। আর্গুমেন্ট ছাড়া সব jail তালিকাভুক্ত হয়। |
| --jail | string | auto | ban-এ, ব্যানের গন্তব্য jail। একটিমাত্র jail থাকলে সেটি নিজেই অনুমান করা হয়। |
| --yes | bool | false | unban-all-এ, না জিজ্ঞেস করে নিশ্চিত করে (ব্যানের ধ্বংসাত্মক অপারেশন)। |
| --json | bool | false | status/banned/check-এ, ফলাফল JSON হিসেবে stdout-এ দেয়। |
ফাইল ও পাথ #
| পাথ | বিষয়বস্তু |
|---|---|
| /etc/fail2ban/jail.local | fail2ban-এর স্থানীয় কনফিগারেশন: সক্রিয় jail, ব্যানের সময় ও থ্রেশহোল্ড। যা reload যাচাই করে। |
| /var/run/fail2ban/fail2ban.sock | যে কন্ট্রোল সকেটের মাধ্যমে fail2ban-client সেবার সঙ্গে কথা বলে। |
| /var/log/fail2ban.log | fail2ban-এর নিজস্ব লগ: ব্যান, আনব্যান ও রিলোড। |
এক্সিট কোড ও লগ #
প্রতিটি চালনা একটি কোড ফেরত দেয় যা echo $? দিয়ে যাচাই করা যায় — স্ক্রিপ্টে একসাথে চেইন করতে কাজে লাগে:
ডিবাগ করার সময় লগ সরাসরি অনুসরণ করুন:
$ sudo journalctl -u fail2ban -f
$ sudo tail -f /var/log/fail2ban.logসমস্যা সমাধান #
| লক্ষণ | সম্ভাব্য কারণ | সমাধান |
|---|---|---|
| SERVICE (কোড 3) আসে | fail2ban বন্ধ আছে বা সকেট সাড়া দিচ্ছে না। | systemctl start fail2ban দিয়ে সেবা চালু করে আবার চেষ্টা করুন। |
| JAIL (কোড 4) আসে | --jail-এর jail বিদ্যমান নেই বা একাধিক আছে এবং অনুমান করা যায় না। | imaxe fail2ban status দিয়ে jail-গুলো দেখুন এবং --jail-এ সঠিকটি দিন। |
| RELOAD (কোড 5) আসে | jail.local-এ সিনট্যাক্স ত্রুটি আছে। | /etc/fail2ban/jail.local ঠিক করে আবার reload চালান। |
| SSH দিয়ে বাইরে আটকে গেছি | আপনার নিজের IP-তে ব্যর্থতা জমে sshd-এ ব্যান হয়ে গেছে। | অন্য উপায় থেকে, unban দিয়ে সেটি আনব্যান করুন বা unban-all --yes দিয়ে সবগুলো মুক্ত করুন। |
Fail2ban মডিউল নিয়ে আটকে গেছেন?
«imaxe <module> status --json» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।