SSD Nodes Learn Hosting plans →
تعلیمی Matt Connorتحریر: Matt Connor · اپ ڈیٹ شدہ 2026-08-13

Ubuntu 24.04 میں unattended-upgrades بطور default فعال ہے؟

Ubuntu Server 24.04 میں unattended-upgrades شامل ہوتا ہے، مگر 20auto-upgrades اسے فعال کرتا ہے۔ Automatic-Reboot false رہتا ہے، جبکہ dry run بتاتا ہے کہ کیا install ہوگا۔

خودکار security updates ترتیب دینا کیوں مفید ہے

جس server پر patches نہ لگے ہوں، وہ internet پر سب سے آسان target ہوتا ہے۔ چھوٹے servers کے زیادہ تر breaches کسی پیچیدہ حملے کا نتیجہ نہیں ہوتے؛ عموماً وجہ کسی پرانے package کا معلوم bug ہوتا ہے جسے owner نے کبھی update نہیں کیا۔ Ubuntu ایک ایسا tool فراہم کرتا ہے جو یہ خلا خود پُر کرتا ہے: unattended-upgrades security updates خودکار طور پر، مقررہ schedule کے مطابق، آپ کے login کیے بغیر install کرتا ہے۔ VPS پر یہ دستیاب سب سے کم لاگت والا security فائدہ ہے، اور Ubuntu میں اسے ترتیب دینے میں صرف چند منٹ لگتے ہیں۔

یہ tool جان بوجھ کر محتاط پالیسی استعمال کرتا ہے۔ بطور default یہ ہر package upgrade کے بجائے صرف security updates apply کرتا ہے، کیونکہ security patch کم خطرے والا ہوتا ہے اور review کے بغیر install کرنا مناسب ہوتا ہے، جبکہ feature upgrade اس رویے کو بدل سکتا ہے جس پر آپ انحصار کر رہے ہوں۔ زیادہ تر servers کے لیے یہ default درست ہے، اور یہ guide اسی پالیسی کو برقرار رکھتے ہوئے صرف وہ چند settings دکھاتی ہے جنہیں تبدیل کرنا مفید ہے۔

مرحلہ 1: اسے install اور enable کریں

Ubuntu 24.04 پر یہ package اکثر موجود ہوتا ہے، لیکن ہمیشہ enabled نہیں ہوتا۔ اسے install کریں اور فعال کریں:

sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

dpkg-reconfigure prompt صرف ایک yes-or-no سوال پوچھتا ہے: کیا stable updates خودکار طور پر download اور install کیے جائیں؟ yes کا جواب دیں۔ اس سے وہ file لکھی جاتی ہے جو daily job کو فعال کرتی ہے:

cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

پہلی line روزانہ package list refresh کرتی ہے؛ دوسری unattended upgrade روزانہ چلاتی ہے۔ دونوں کا 1 پر set ہونا اس بات کا مطلب ہے کہ machine روزانہ systemd timer کے ذریعے security updates تلاش اور apply کرتی ہے، اور آپ کی مزید کارروائی ضروری نہیں رہتی۔

مرحلہ 2: طے کریں کہ خودکار طور پر کیا apply ہوگا

Policy /etc/apt/apt.conf.d/50unattended-upgrades میں موجود ہے۔ اسے کھولیں اور اوپر کے قریب موجود Allowed-Origins block دیکھیں:

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}";
    "${distro_id}:${distro_codename}-security";
    "${distro_id}ESMApps:${distro_codename}-apps-security";
    "${distro_id}ESM:${distro_codename}-infra-security";
};

اہم lines -security ہیں، اور یہ بطور default enabled ہوتی ہیں۔ یہی محتاط policy ہے: security updates خودکار طور پر install ہوں، جبکہ عام feature updates آپ کی مرضی کے وقت دستی طور پر apply کی جائیں۔ تمام updates خودکار طور پر apply کرنے کے لیے "${distro_id}:${distro_codename}-updates" origin line شامل کی جا سکتی ہے، لیکن جس server پر اہم سروس چل رہی ہو وہاں صرف security patches خودکار طور پر لینا زیادہ محفوظ default ہے۔ اسے اسی طرح رہنے دیں، جب تک اسے تبدیل کرنے کی کوئی مخصوص وجہ نہ ہو۔

مرحلہ 3: reboots کا انتظام کریں

کچھ updates، مثلاً kernel یا core library، reboot کے بعد ہی مکمل طور پر مؤثر ہوتے ہیں۔ unattended-upgrades آپ کی ہدایت کے بغیر server reboot نہیں کرے گا، اس لیے patched kernel اس وقت تک غیر فعال رہ سکتا ہے جب تک آپ اتفاقاً server restart نہ کریں۔ طے کریں کہ آپ اس صورت حال کا کیسے انتظام کرنا چاہتے ہیں، اور اسے 50unattended-upgrades میں واضح طور پر set کریں:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

یہ server کو صبح چار بجے reboot کرتا ہے، لیکن صرف اس وقت جب کسی update کے لیے reboot ضروری ہو۔ ایسے واحد VPS پر جسے کسی دوسرے cluster کو fail over نہیں کیا جا سکتا، صبح سویرے مختصر reboot عموماً kernel fixes کے ساتھ updated رہنے کے لیے مناسب trade-off ہے۔ اگر آپ کا server ایسی سروس چلاتا ہے جسے غیر متوقع طور پر کبھی restart نہیں ہونا چاہیے، تو reboot بند رکھیں اور /var/run/reboot-required چیک کرنے کے بعد خود reboot کرنے کی عادت بنائیں۔

مرحلہ 4: ثابت کریں کہ یہ کام کر رہا ہے

یہ جاننے کے لیے ایک دن انتظار نہ کریں کہ job چلتی ہے یا نہیں۔ ایسی dry run چلائیں جو بالکل دکھائے کہ کیا apply ہوگا، مگر کوئی تبدیلی نہ کرے:

sudo unattended-upgrade --dry-run --debug

Output میں وہ packages اور ان کے origins درج ہوتے ہیں جنہیں یہ job consider کرتی ہے، اس لیے آپ policy کو عملی طور پر دیکھ سکتے ہیں۔ حقیقی job کم از کم ایک بار چلنے کے بعد اس کا record یہاں موجود ہوگا:

cat /var/log/unattended-upgrades/unattended-upgrades.log

یہ log اس سوال کا جواب ہے کہ "کیا میرا server واقعی خود کو patch کر رہا ہے؟" اگر اس میں schedule کے مطابق security packages install ہوتے دکھائی دیں، تو job کام کر رہی ہے۔

یہ کہاں موزوں ہے

Automatic updates hardened server کی ایک layer ہیں، مکمل حل نہیں۔ یہ معلوم bugs کو برقرار رہنے سے روکتی ہیں، لیکن اس بات پر اثر نہیں ڈالتی کہ کون login کر سکتا ہے یا کیا exposed ہے۔ انہیں key-only SSH hardening کے ساتھ استعمال کریں تاکہ front door کو brute-force نہ کیا جا سکے، default-deny UFW firewall کے ساتھ تاکہ صرف وہی چیز reachable ہو جسے آپ منتخب کریں، اور unprivileged service users کے ساتھ تاکہ breached app پورے box پر قبضہ نہ کر سکے۔ ان سب کے علاوہ host کی گئی apps اپنے secrets بھی رکھتی ہیں۔ اس لیے اگر یہ box self-hosted password vault چلاتا ہے تو Vaultwarden hardening pass admin token اور backup file کا بھی احاطہ کرتا ہے، جنہیں apt patching کی کوئی مقدار protect نہیں کر سکتی۔ Patching ان holes کو بند کرتی ہے جن کے بارے میں آپ جانتے ہیں؛ دوسری layers ان holes سے ہونے والے نقصان کو محدود کرتی ہیں جن کے بارے میں آپ نہیں جانتے۔

FAQ

کیا unattended-upgrades ہر update apply کرتا ہے یا صرف security updates؟

بطور default صرف security updates۔ Allowed-Origins block، /etc/apt/apt.conf.d/50unattended-upgrades میں، -security origins کو enable کرتا ہے اور عام feature updates آپ کے لیے دستی طور پر apply کرنے کے لیے چھوڑ دیتا ہے۔ یہ جان بوجھ کر رکھا گیا ہے: security patches کم خطرے والے ہوتے ہیں اور خودکار طور پر لینا مناسب ہے، جبکہ feature upgrades رویہ بدل سکتے ہیں۔ اسی لیے زیادہ تر servers کو محتاط default برقرار رکھنا چاہیے۔

کیا automatic updates میرے server کو reboot کریں گے؟

صرف اس صورت میں جب آپ انہیں ایسا کرنے کی ہدایت دیں۔ Configuration میں Unattended-Upgrade::Automatic-Reboot "true" اور Automatic-Reboot-Time set کریں۔ اس کے بعد جب کسی update کے لیے reboot ضروری ہو، مثلاً kernel patch کے بعد، server اس وقت reboot ہوگا۔ اگر یہ setting بند ہو تو patched kernel آپ کے خود reboot کرنے تک منتظر رہے گا؛ یہ جاننے کے لیے /var/run/reboot-required چیک کریں کہ reboot زیر التوا ہے یا نہیں۔

میں کیسے چیک کروں کہ automatic updates واقعی چل رہی ہیں؟

sudo unattended-upgrade --dry-run --debug چلائیں تاکہ موجودہ وقت میں apply ہونے والی چیزیں، بغیر کسی تبدیلی کے، دیکھی جا سکیں، اور گزشتہ runs کا record دیکھنے کے لیے /var/log/unattended-upgrades/unattended-upgrades.log پڑھیں؛ ہر automatic install /var/log/apt/history.log میں بھی درج ہوتی ہے۔ اگر log میں روزانہ schedule کے مطابق security packages install ہوتے دکھائی دیں تو timer کام کر رہا ہے۔ اگر dry run No packages found that can be upgraded unattended دکھائے تو یا تو تمام packages پہلے ہی current ہیں، یا allowed origins اتنے محدود ہیں کہ security repository سے match نہیں کرتے۔

کیا unattended-upgrades میرے server کو secure رکھنے کے لیے کافی ہے؟

نہیں، لیکن یہ ایک ضروری layer ہے۔ یہ معلوم vulnerabilities کو unpatched رہنے سے روکتا ہے اور breaches کی سب سے عام قسم کو ختم کرتا ہے، مگر access یا exposure کو control نہیں کرتا۔ ایسے server کے لیے جس میں داخل ہونا واقعی مشکل ہو، اسے SSH hardening، default-deny firewall، اور least-privilege service users کے ساتھ استعمال کریں۔