Ubuntu 24.04 unattended-upgrades settings
Ubuntu 24.04 में unattended-upgrades default में आता है। जानें कि 20auto-upgrades कैसे काम करता है और Automatic-Reboot setting को कैसे manage करें।
Automatic security updates setup करना क्यों ज़रूरी है
एक server जिसे patch नहीं किया गया है, वह internet पर सबसे आसान target होता है। छोटे servers के अधिकांश breaches कोई बड़ी चालाकी नहीं होते; वे किसी पुराने package का known bug होते हैं जिसे owner ने kabhi update नहीं किया। Ubuntu एक tool प्रदान करता है जो इस कमी को खुद पूरा करता है: unattended-upgrades बिना login किए, एक schedule पर automatically security updates install करता है। VPS पर यह सबसे सस्ता security win है, और Ubuntu पर इसे setup करने में केवल कुछ minute लगते हैं।
यह tool जानबूझकर conservative रखा गया है। Default रूप से यह केवल security updates apply करता है, हर package upgrade नहीं, क्योंकि security patch low-risk होते हैं और बिना review के liye sahi hain, जबकि feature upgrade आपके behaviour को बदल सकते हैं। अधिकांश servers के लिए यह default सही है, और यह guide इसे बनाए रखते हुए आपको वे settings दिखाती है जिन्हें बदलना ज़रूरी है।
Step 1: Install और enable करें
Ubuntu 24.04 पर package अक्सर मौजूद होता है लेकिन हमेशा enabled नहीं होता। इसे install करें और चालू करें:
sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgradesdpkg-reconfigure prompt एक single yes-or-no सवाल पूछता है, कि क्या stable updates को automatically download और install करना है। Yes चुनें। इससे वह file बन जाएगी जो daily job को चालू करती है:
cat /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";पहली line daily package list refresh करती है; दूसरी line daily unattended upgrade चलाती है। दोनों को 1 पर set करने का मतलब है कि machine हर दिन systemd timer के माध्यम से security updates चेक करेगी और apply करेगी, जिसमें आपको कोई action नहीं लेना होगा।
Step 2: तय करें कि क्या automatically 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";
};-security lines सबसे महत्वपूर्ण हैं, और वे default रूप से enabled होती हैं। यह conservative policy है: security updates अंदर आते हैं, और ordinary feature updates आपके लिए छोड़ दिए जाते हैं जिन्हें आप अपनी पसंद से manually apply कर सकें। आप सभी updates को auto-apply करने के लिए "${distro_id}:${distro_codename}-updates" origin line जोड़ सकते हैं, लेकिन उस server के लिए जो किसी ज़रूरी service को host करता है, केवल security patches को automatically लेना एक सुरक्षित default है। जब तक आपके पास कोई विशेष कारण न हो, इसे default पर ही रहने दें।
Step 3: Reboots को handle करें
कुछ updates, जैसे kernel या core library, reboot के बाद ही पूरी तरह प्रभावी होते हैं। unattended-upgrades आपके server को तब तक reboot नहीं करेगा जब तक आप इसे न कहें, जिसका मतलब है कि एक patched kernel तब तक unused रह सकता है जब तक आप खुद restart न करें। तय करें कि आप इसे कैसे handle करना चाहते हैं, और इसे 50unattended-upgrades में explicitly set करें:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";यह server को सुबह चार बजे reboot कर देगा, यदि और केवल यदि किसी update की आवश्यकता हो। एक single VPS पर (जहाँ failover के लिए कोई cluster न हो), kernel fixes के लिए सुबह का एक छोटा reboot आमतौर पर सही विकल्प है। यदि आपका server ऐसी चीज़ चलाता है जिसे कभी भी unexpectedly restart नहीं होना चाहिए, तो reboot को off रखें और /var/run/reboot-required चेक करने के बाद खुद reboot करने की आदत डालें।
Step 4: Verify करें कि यह काम कर रहा है
यह जानने के लिए कि job चल रहा है या नहीं, एक दिन का इंतज़ार न करें। एक dry run चलाएँ जो बिना कुछ बदले यह दिखाएगा कि वास्तव में क्या apply किया जाएगा:
sudo unattended-upgrade --dry-run --debugOutput उन packages की list दिखाता है जिन्हें यह consider करता है और उनके origins, जिससे आप policy को action में देख सकते हैं। एक बार real job चलने के बाद, उसका record यहाँ मिलता है:
cat /var/log/unattended-upgrades/unattended-upgrades.logवह log इस सवाल का जवाब है कि "क्या मेरा server वास्तव में खुद को patch कर रहा है।" यदि यह schedule पर security packages install होते हुए दिखाता है, तो job काम कर रहा है।
यह कहाँ फिट बैठता है
Automatic updates एक hardened server की एक layer हैं, पूरी चीज़ नहीं। वे known bugs को बने रहने से रोकते हैं, लेकिन वे इस बारे में कुछ नहीं करते कि कौन log in कर सकता है या क्या exposed है। इन्हें key-only SSH hardening, default-deny UFW firewall, और unprivileged service users के साथ जोड़ें ताकि front door को brute-force न किया जा सके, केवल आपकी चुनी हुई चीज़ ही reachable हो, और कोई compromised app पूरे box को control न कर सके। Patching उन holes को बंद करता है जिन्हें आप जानते हैं; अन्य layers उन holes से होने वाले damage को सीमित करती हैं जिन्हें आप नहीं जानते।
FAQ
क्या unattended-upgrades हर update apply करता है या केवल security ones?
Default रूप से, केवल security updates। /etc/apt/apt.conf.d/50unattended-upgrades में Allowed-Origins block -security origins को enable करता है और ordinary feature updates को आपके manual application के लिए छोड़ देता है। यह जानबूझकर किया गया है: security patches low-risk होते हैं और automatically लेना सही है, जबकि feature upgrades behaviour बदल सकते हैं, इसलिए अधिकांश servers को conservative default रखना चाहिए।
क्या automatic updates मेरे server को reboot करेंगे?
केवल तभी जब आप उन्हें ऐसा करने के लिए कहें। config में Unattended-Upgrade::Automatic-Reboot "true" और Automatic-Reboot-Time set करें, और server उस समय reboot होगा जब किसी update (जैसे kernel patch) की आवश्यकता होगी। यदि off रखा जाए, तो patched kernel तब तक इंतज़ार करता है जब तक आप खुद reboot न करें; यह जानने के लिए कि क्या कोई pending है, /var/run/reboot-required चेक करें।
मैं कैसे check करूँ कि automatic updates वास्तव में चल रहे हैं?
बिना कुछ बदले अभी क्या apply किया जाएगा यह देखने के लिए sudo unattended-upgrade --dry-run --debug चलाएँ, और past runs के record के लिए /var/log/unattended-upgrades/unattended-upgrades.log पढ़ें; हर automatic install /var/log/apt/history.log में भी दर्ज होता है। यदि log दिखाता है कि security packages daily schedule पर install हो रहे हैं, तो timer काम कर रहा है। यदि dry run No packages found that can be upgraded unattended print करता है, तो या तो सब कुछ पहले से current है या आपके allowed origins security repository से match करने के लिए बहुत narrow हैं।
क्या मेरे server को secure रखने के लिए unattended-upgrades काफी है?
नहीं, लेकिन यह एक ज़रूरी layer है। यह known vulnerabilities को unpatched रहने से रोकता है, जो सबसे common प्रकार के breach को रोकता है, लेकिन यह access या exposure को control नहीं करता है। एक server जिसे break करना वास्तव में कठिन हो, उसके लिए इसे SSH hardening, default-deny firewall, और least-privilege service users के साथ combine करें।