এই মডিউল কী করে #
একটি রুটকিট হলো ক্ষতিকর সফটওয়্যার যা আপনার সার্ভারে লুকিয়ে ঢুকে গা ঢাকা দেওয়ার জন্য তৈরি: এটি সিস্টেম কমান্ড প্রতিস্থাপন করে, ব্যাকডোর খুলে দেয় এবং নিজের ছাপ মুছে ফেলে যাতে আপনি এটি দেখতে না পান। এটাই ঠিক সমস্যা — যখন এটি ভালোভাবে কাজ করে, আপনি টেরই পান না। তাই নিয়মিত সিস্টেম যাচাই করা মূল্যবান।
rkhunter মডিউলটি সেই কাজ আপনার হয়ে করতে rkhunter (Rootkit Hunter)-এর উপর নির্ভর করে: এটি পরিচিত রুটকিট সিগনেচারের সাপেক্ষে ফাইল ও কমান্ড তুলনা করে সিস্টেম স্ক্যান করে, সন্দেহজনক প্রোপার্টির উপর নজর রাখে (অস্বাভাবিক অনুমতি, লুকানো পোর্ট, পরিবর্তিত বাইনারি) এবং আপনার জন্য পরিষ্কার ভাষায় সতর্কতাগুলোর সারসংক্ষেপ দেয় যাতে আপনি জানেন কী দেখতে হবে। এটি একটি বেসলাইন-ও বজায় রাখে — আপনার ফাইল কেমন দেখানো উচিত তার একটি স্ন্যাপশট — এবং সিগনেচার হালনাগাদ রাখে, এই দুটি অংশের উপরই নির্ভরযোগ্য শনাক্তকরণ নির্ভর করে।
মডিউল ইনস্টল করার পর বা সিস্টেম প্যাকেজ হালনাগাদ করার পর, update-baseline দিয়ে বেসলাইন হালনাগাদ করুন। না করলে, বৈধ পরিবর্তন (উদাহরণস্বরূপ একটি apt upgrade) সতর্কতা হিসেবে দেখাবে এবং স্বাভাবিক থেকে সন্দেহজনক আলাদা করতে আপনার কষ্ট হবে।
সাধারণ কাজ #
আপনি কী করতে চান তা বেছে নিন। প্রতিটি রেসিপিতে কমান্ডটি আগে থেকেই লেখা আছে — কপি করুন, পেস্ট করুন এবং কপি করুন চাপুন।
1
এখনই সিস্টেম স্ক্যান করুন
একটি পূর্ণ বিশ্লেষণ চালু করুন এবং সতর্কতাগুলোর সারসংক্ষেপ পান।
ubuntu ব্যবহারকারী দিয়ে SSH-এর মাধ্যমে আপনার সার্ভারে সংযোগ করুন।
স্ক্যান চালু করুন। এতে কিছুটা সময় লাগে: rkhunter শত শত ফাইল ও কমান্ড পর্যালোচনা করে।
$ sudo imaxe rkhunter checkএকটি স্ক্রিপ্ট থেকে ডাকছেন বা অন্য কোনো টুলের সাথে একীভূত করতে চান? --json যোগ করুন:
$ sudo imaxe rkhunter check --json2
সর্বশেষ স্ক্যানের সতর্কতা দেখুন
rkhunter যা চিহ্নিত করেছে তা পাঠযোগ্য ফরম্যাটে পর্যালোচনা করুন।
আবার স্ক্যান না করেই সর্বশেষ check-এর সতর্কতাগুলো দেখান:
$ sudo imaxe rkhunter report3
অবস্থা যাচাই করুন
এক নজরে: ইনস্টলেশন, বেসলাইন, সর্বশেষ স্ক্যান ও সতর্কতা।
rkhunter প্রস্তুত কিনা, একটি বেসলাইন আছে কিনা, সর্বশেষ স্ক্যান কখন হয়েছিল, কতগুলো সতর্কতা রেখে গেছে এবং একটি স্ক্যান নির্ধারিত আছে কিনা তার একটি দ্রুত সারসংক্ষেপ:
$ sudo imaxe rkhunter statusনিরীক্ষণ বা স্ক্রিপ্টের জন্য, এটি JSON-এ চান:
$ sudo imaxe rkhunter status --json4
বেসলাইন হালনাগাদ করুন
ফাইলের বর্তমান অবস্থাকে একটি ভালো রেফারেন্স হিসেবে গ্রহণ করুন।
ফাইলের বর্তমান প্রোপার্টিগুলো বেসলাইন হিসেবে সংরক্ষণ করুন (rkhunter --propupd-এর সমতুল্য)। এটি কেবল তখনই করুন যখন আপনি সিস্টেমের অবস্থায় আস্থা রাখেন — উদাহরণস্বরূপ, এটি ইনস্টল করার ঠিক পরে বা আপনার চেনা একটি হালনাগাদের পরে:
$ sudo imaxe rkhunter update-baselinecheck এই নতুন রেফারেন্স স্ন্যাপশট থেকে শুরু করে।5
সিগনেচার হালনাগাদ করুন
rkhunter-এর সবচেয়ে সাম্প্রতিক ডাটা ফাইলগুলো ডাউনলোড করুন।
rkhunter-এর ডাটা ফাইল ও সিগনেচার হালনাগাদ করুন (rkhunter --update-এর সমতুল্য) যাতে শনাক্তকরণ সবচেয়ে সাম্প্রতিক রুটকিট সম্পর্কে জানে:
$ sudo imaxe rkhunter update-datacheck আরও সাম্প্রতিক হুমকি শনাক্ত করে। একটি গুরুত্বপূর্ণ স্ক্যানের আগে এটি করা মূল্যবান।প্রথমবার বা প্যাকেজ হালনাগাদ করার ঠিক পরে এটি স্বাভাবিক: rkhunter এমন পরিবর্তন দেখে যা এখনো বেসলাইনে নেই। report দিয়ে সেগুলো পর্যালোচনা করুন, এবং যদি বৈধ বলে চিনতে পারেন, update-baseline দিয়ে গ্রহণ করুন। যদি সন্দেহ হয় সিস্টেম ইতিমধ্যে আপোসকৃত, তবে কখনো বেসলাইন হালনাগাদ করবেন না।
সারসংক্ষেপ #
imaxe rkhunter <subcomando> [--json]সব সাবকমান্ডের জন্য root প্রিভিলেজ প্রয়োজন (sudo ব্যবহার করুন) কারণ rkhunter-কে সিস্টেম ফাইল পড়তে, বাইনারি তুলনা করতে এবং এর বেসলাইন ও ডাটা লিখতে হয়। স্ক্রিপ্টিং ও নিরীক্ষণের উপযোগী মেশিন-পাঠযোগ্য আউটপুট পেতে check বা status-এ --json যোগ করুন।
সাবকমান্ড #
| সাবকমান্ড | কী করে | প্রাসঙ্গিক ফ্ল্যাগ |
|---|---|---|
| check | একটি রুটকিট/ম্যালওয়্যার স্ক্যান চালু করে এবং সতর্কতাগুলোর সারসংক্ষেপ দেয়। | --json |
| report | সর্বশেষ স্ক্যানের সতর্কতাগুলো পাঠযোগ্যভাবে দেখায়। | — |
| status | অবস্থা: ইনস্টল করা, বেসলাইন উপস্থিত, সর্বশেষ স্ক্যান, সতর্কতা ও নির্ধারিত স্ক্যান। | --json |
| update-baseline | ফাইলের বর্তমান প্রোপার্টিগুলো বেসলাইন হিসেবে গ্রহণ করে (rkhunter --propupd)। | — |
| update-data | rkhunter-এর ডাটা/সিগনেচার ফাইল হালনাগাদ করে (rkhunter --update)। | — |
আর্গুমেন্ট ও ফ্ল্যাগ #
| ফ্ল্যাগ | ধরন | ডিফল্ট | বিবরণ |
|---|---|---|---|
| --json | bool | false | check/status-এ, ফলাফল stdout-এ কাঠামোবদ্ধ JSON হিসেবে দেয়, যা স্ক্রিপ্টিং ও নিরীক্ষণের উপযোগী। |
report, update-baseline ও update-data সাবকমান্ড কোনো ফ্ল্যাগ নেয় না: এগুলো আর্গুমেন্ট ছাড়াই চলে।
ফাইল ও পাথ #
| পাথ | বিষয়বস্তু |
|---|---|
| /etc/imaxe/rkhunter.yml | মডিউলের কনফিগারেশন: ডিফল্টভাবে, check কেবল সতর্কতা রিপোর্ট করে (report_warnings_only)। |
| /var/lib/rkhunter/db/ | ফাইল প্রোপার্টি বেসলাইন এবং ডাটা/সিগনেচার ফাইল যা update-baseline ও update-data হালনাগাদ করে। |
| /var/log/rkhunter.log | সর্বশেষ স্ক্যানের লগ, যেখান থেকে report সতর্কতাগুলো বের করে। |
rkhunter.yml-এর উদাহরণ:
check:
report_warnings_only: trueপ্রস্থান কোড ও লগ #
প্রতিটি চালানো একটি কোড ফেরত দেয় যা আপনি echo $? দিয়ে যাচাই করতে পারেন — স্ক্রিপ্টে চেইন করা বা নিরীক্ষণ থেকে সতর্কতা দেওয়ার জন্য উপযোগী:
পর্যালোচনার সময় সর্বশেষ স্ক্যানের লগ যাচাই করুন:
$ sudo imaxe rkhunter report
$ sudo tail -f /var/log/rkhunter.logসমস্যা সমাধান #
| উপসর্গ | সম্ভাব্য কারণ | সমাধান |
|---|---|---|
| প্যাকেজ হালনাগাদের পর WARN (কোড 1) আসে | বৈধ পরিবর্তন যা এখনো বেসলাইনে নেই। | report দিয়ে পর্যালোচনা করুন; চিনতে পারলে update-baseline দিয়ে গ্রহণ করুন। |
status বলে "baseline: not present" | মডিউলটি সবেমাত্র ইনস্টল হয়েছে এবং কোনো রেফারেন্স স্ন্যাপশট নেই। | সিস্টেম বিশ্বস্ত অবস্থায় থাকা অবস্থায় একবার update-baseline চালান। |
| পুরনো ফাইল বা সংস্করণ সম্পর্কে অনেক সতর্কতা | rkhunter-এর সিগনেচার ও ডাটা পুরনো হয়ে গেছে। | update-data চালান এবং check পুনরাবৃত্তি করুন। |
| ERR (কোড 3) আসে | rkhunter ইনস্টল করা নেই বা বাইনারিটি সাড়া দিচ্ছে না। | মডিউলের ইনস্টলেশন যাচাই করুন এবং /var/log/rkhunter.log দেখুন। |
rkhunter মডিউল নিয়ে আটকে গেছেন?
«imaxe <module> status --json» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।