dpkg
apt আসলে একটি স্মার্ট এসিস্ট্যান্ট যে ইন্টারনেট থেকে ফাইল খুঁজে আনে। আর dpkg হলো সেই কারিগর যে আপনার পিসিতে থাকা কোনো নির্দিষ্ট .deb ফাইল নিয়ে কাজ করে। এটি একটি lower-level টুল।
.deb File Internals
একজন সিকিউরিটি লার্নার হিসেবে আপনার জানা উচিত একটি .deb ফাইলের ভেতরে আসলে কী থাকে। এটি মূলত একটি ar archive (এক প্রকার জিপ ফাইল), যার ভেতরে তিনটি মূল জিনিস থাকে:
- debian-binary: এটি একটি টেক্সট ফাইল যা বলে দেয় এটি কোন ভার্সনের ডেবিয়ান প্যাকেজ।
- control.tar.xz: এখানে থাকে সব মেটাডাটা— যেমন প্যাকেজের নাম, ভার্সন, এবং সবচেয়ে গুরুত্বপূর্ণ Maintainer Scripts (pre-install, post-install স্ক্রিপ্ট)।
- data.tar.xz: এখানে থাকে সেই আসল সফটওয়্যার ফাইলগুলো যা আপনার সিস্টেমে ইন্সটল হবে।
Advanced Inspection (dpkg-deb)
আমরা প্রায়ই ইন্টারনেটে অনেক টুল পাই যেগুলো .deb ফাইল হিসেবে থাকে। কিন্তু কোনো অপরিচিত ফাইল সরাসরি sudo দিয়ে ইন্সটল করা বিপজ্জনক। ইন্সটল করার আগেই ফাইলটি পরীক্ষা করা বুদ্ধিমানের কাজ।
১. ইন্সটল না করেই ফাইল লিস্ট দেখা
সফটওয়্যারটি ইন্সটল হলে আপনার পিসির কোথায় কী ফাইল বসাবে তা দেখতে:
dpkg -c package.deb২. কন্ট্রোল ফাইল বা স্ক্রিপ্ট এক্সট্র্যাক্ট করা
সফটওয়্যারটি ইন্সটল হওয়ার সময় কোনো সিক্রেট কোড বা ম্যালওয়্যার রান করবে কি না তা দেখতে আমরা তার কন্ট্রোল ফাইলগুলো আলাদা করতে পারি:
# কন্ট্রোল ফাইলগুলো 'tmp_info' ফোল্ডারে বের করো
dpkg-deb -e package.deb tmp_info
ls tmp_infoএখানে যদি আপনি postinst বা preinst ফাইল দেখেন, তবে বুঝবেন ইন্সটলেশনের সময় এই স্ক্রিপ্টগুলো রুট (root) পাওয়ার নিয়ে চলবে।
৩. কনটেন্ট এক্সট্র্যাক্ট করা (Extract without Installing)
সিস্টেমে ইন্সটল না করে শুধু ফাইলগুলো কোনো এক জায়গায় বের করে দেখতে:
dpkg-deb -x package.deb ./extracted_folderCommon Use Cases
| কমান্ড | কাজ | কেন ব্যবহার করবে? |
|---|---|---|
dpkg -i | ইন্সটল করা | নতুন ডাউনলোড করা সফটওয়্যারের জন্য। |
dpkg -r | রিমুভ করা | কনফিগ ফাইল রেখে সফটওয়্যার মোছা। |
dpkg -P | পার্জ করা | একদম ক্লিন ভাবে সব মোছা। |
dpkg -l | লিস্ট দেখা | সিস্টেমে কী কী ইন্সটল আছে দেখতে। |
dpkg -L | লোকেশন দেখা | একটি বিশেষ সফটওয়্যারের ফাইলগুলো কোথায় আছে। |
Dependency Resolution
dpkg নিজে থেকে ডিপেন্ডেন্সি (Dependency) হ্যান্ডেল করতে পারে না। যদি এরর দেয়, তবে আপনাকে ম্যানুয়ালি apt ব্যবহার করে তা ফিক্স করতে হবে।
# ১. ইন্সটল করার চেষ্টা করো
sudo dpkg -i mytool.deb
# ২. যদি এরর দেয়, তবে এটি দিয়ে ফিক্স করো
sudo apt install -fCyberSec Note
The Danger of Pre-install Scripts:
অ্যাটাকাররা অনেক সময় এমন .deb প্যাকেজ তৈরি করে যা ইন্সটল হওয়ার সাথে সাথে আপনার ব্যাকগ্রাউন্ডে একটি রিভার্স শেল (Reverse Shell) ওপেন করে দেয়। কারণ dpkg -i কমান্ডটি রুট পাওয়ারে চলে এবং এটি প্যাকেজের ভেতরের স্ক্রিপ্টগুলোকেও রুট পাওয়ার দেয়।
Forensics Tip:
যদি কোনো সন্দেহজনক প্যাকেজ অডিট করতে হয়, তবে সবসময় dpkg-deb -e কমান্ডটি ব্যবহার করে তার ভেতরের স্ক্রিপ্টগুলো আগে পড়ে দেখুন।
Quick Check
- একটি
.debফাইলের ভেতরেcontrol.tar.xzএর কাজ কী? - ইন্সটল না করে কোনো প্যাকেজের কন্টেন্ট দেখার কমান্ডটি কী?
- কেন অবিশ্বস্ত সোর্স থেকে
.debফাইল ইন্সটল করা রিস্কি? -
dpkg -L nmapকমান্ডটি কেন লিনাক্স ট্রাবলশুটিংয়ে কাজে লাগে?
পরবর্তী → Logs & Monitoring