Log Maintenance
একটি ব্যস্ত সার্ভার প্রতিদিন গিগাবাইট লেভেলের লগ তৈরি করতে পারে। যদি আপনি এই লগগুলো ঠিকমতো মেইনটেন না করেন, তবে আপনার হার্ড ড্রাইভ দ্রুত ফুল হয়ে সিস্টেম ক্র্যাশ করতে পারে। লিনাক্সে এই ক্লিনিংয়ের কাজ অটোমেটিকভাবে করে logrotate।
Log Rotation
Log Rotation হলো একটি প্রসেস যেখানে পুরনো লগ ফাইলগুলোকে আর্কাইভ বা ডিলিট করা হয় এবং নতুন লগ ফাইল শুরু করা হয়।
এটি লিনাক্সের একটি শিডিউলড টাস্ক (Cron Job) হিসেবে প্রতিনিয়ত চলতে থাকে। যখনই কোনো লগ নির্দিষ্ট আকার বা সময়ের সীমায় পৌঁছায়, লিনাক্স নিচের ধাপগুলো অনুসরণ করে:
১. মূল লগ ফাইলের নাম পরিবর্তন করে (যেমন: syslog থেকে syslog.1)।
২. একটি নতুন খালি লগ ফাইল তৈরি করে।
৩. আরও পুরনো ফাইলগুলোকে জিপ (.gz) করে আর্কাইভ করে।
How logrotate Works
logrotate এর সব কনফিগ ফাইল থাকে /etc/logrotate.d/ ডিরেক্টরিতে। প্রতিটি সার্ভিসের জন্য একটি আলাদা ফাইল থাকতে পারে। যেমন:
/var/log/apache2/*.log {
daily
missingok
rotate 14
compress
notifempty
}এই কনফিগারেশনের মানে হলো:
- daily: প্রতিদিন ফাইলটি চেক করবে।
- rotate 14: মাত্র ১৪টি পুরনো ফাইল সেভ রাখবে। এর চেয়ে পুরনো হলে ডিলিট করে দেবে।
- compress: জায়গা বাঁচানোর জন্য পুরনো ফাইলগুলোকে জিপ করবে।
- notifempty: যদি কোনো লগ না থাকে, তবে ফাইলটি রোটেট করবে না।
Monitoring Health
লগ ছাড়াও আমাদের সিস্টেমের হার্ডওয়্যার রিসোর্স মনিটর করা জরুরি। এর জন্য কিছু চমৎকার টুল লিনাক্সে বিল্ট-ইন থাকে:
১. রিয়েল-টাইম সিপিইউ (htop)
সিস্টেমের মেমোরি এবং সিপিইউ কোন প্রসেস খাচ্ছে তা লাইভ দেখতে:
htop২. ডিস্ক স্পেস (df)
হার্ড ড্রাইভ কতটুকু খালি আছে তা হিউম্যান রিডেবল ফরমেটে দেখতে:
df -h৩. স্টোরেজ বিশ্লেষণ (du)
কোন ফোল্ডার সবচেয়ে বেশি জায়গা দখল করে আছে তা জানতে:
sudo du -sh /var/logCyberSec Note
Log Scrubbing & Erasure:
একজন দক্ষ হ্যাকার বা ইনট্রুডার (Intruder) যখন কোনো সিস্টেমে কাজ শেষ করে বের হয়ে যায়, তখন সে তার সব চিহ্ন মুছে ফেলতে চায়। এজন্য সে প্রায়ই logrotate এর সেটিং বদলে দেয় যাতে লগ ফাইল বেশিদিন না টেকে (যেমন rotate 1 করে দেয়)। অথবা সে সরাসরি সব লগ rm -rf /var/log/* দিয়ে ডিলিট করে দিতে পারে।
Forensics Tip:
যদি ইনভেস্টিগেশন করার সময় দেখেন যে আপনার সিস্টেমে পর্যাপ্ত পুরনো লগ নেই, তবে বুঝবেন অ্যাটাকার সিস্টেমে ঢোকার পর “Log Scrubbing” করেছে। এজন্য প্রফেশনাল ক্ষেত্রে লগগুলো অন্য একটি রিমোট সার্ভারে (Syslog Server) রিয়েল-টাইমে পাঠিয়ে দেওয়া হয় যাতে হ্যাকার সেটি ডিলিট করতে না পারে।
Quick Check
-
logrotateকনফিগারেশনেrotate 14এর মানে কী? - কেন একটি সার্ভারের লগ ফাইল সবসময় জিপ বা কম্প্রেশ করা ভালো?
- ডিস্ক স্পেস কতটুকু খালি আছে তা দেখার কমান্ড কোনটি?
- কেন হ্যাকাররা লগ ফাইল ডিলিট বা রিডিউস করতে চায়?
পরবর্তী Section → Bash Scripting