यदि आप अपने स्वयं के सर्वर(एस) को प्रशासित करते हैं, तो जल्दी या बाद में आप इस समस्या का सामना करते हैं: आपको ऑपरेटिंग सिस्टम को रीबूट करना होगा, लेकिन मशीन एक महत्वपूर्ण सेवा प्रदान करती है जिसे आप बाधित नहीं कर सकते।
लेकिन पहली जगह में रीबूट क्यों? सब कुछ apt-get upgrade कमांड के बाद ठीक काम करता प्रतीत होता है। हालांकि, चीजें हमेशा वैसी नहीं होती जैसी दिखती हैं। भले ही सिस्टम हर अपग्रेड के बाद खुशी-खुशी चलता रहता है, विंडोज की तरह रीबूट को मजबूर नहीं करता, फिर भी इसे एक की आवश्यकता हो सकती है।
उदाहरण के लिए, जब सिस्टम के कोर (कर्नेल) में एक भेद्यता की खोज की जाती है, तो इसे पैच किया जाता है और एक नए पैकेज के रूप में आपके सर्वर पर भेजा जाता है। पैच्ड कर्नेल इंस्टॉल करने के बाद, कुछ फाइलें डिस्क पर लिखी जाती हैं, लेकिन यह अभी भी पुराना कर्नेल है जो शो चला रहा है, क्योंकि यह वही है जो मेमोरी (RAM) में लोड है।
इसका मतलब है कि आपका सर्वर पहले खोजे गए सुरक्षा छेदों के प्रति अभी भी संवेदनशील है। अन्य प्रोसेस, डेमन्स, और सर्विस को ऑपरेटिंग सिस्टम को रीस्टार्ट किए बिना रीलोड किया जा सकता है। हालांकि, कर्नेल सिस्टम के केंद्र में बैठता है और केवल अगले बूट पर रीलोड किया जा सकता है।
उबंटू Livepatch आपको कर्नेल सुरक्षा छेद को रीस्टार्ट किए बिना बंद करने की अनुमति देकर इसे हल करता है। इस तरह, आप सुरक्षा से समझौता किए बिना हफ्तों या महीनों के लिए रीबूट से बच सकते हैं या देरी कर सकते हैं।
लाइव पैचिंग के पीछे मुख्य विचार सरल है: जब कोई फ़ंक्शन कमजोर होता है, तो इसे रीराइट करें, दोष को खत्म करें, और नए फ़ंक्शन को कहीं मेमोरी में लोड करें। जब फ़ंक्शन को कॉल किया जाता है, तो कर्नेल में कोड चलाने के बजाय, कॉल को रीराइट किए गए कोड का उपयोग करने के लिए रीडायरेक्ट करें।
लेकिन, ज्यादातर चीजों की तरह जो सरलता से काम करती प्रतीत होती हैं, कार्यान्वयन और तकनीकी विवरण इतने सरल नहीं हैं।
उबंटू पर Livepatch कैसे सेट करें
इस पेज पर जाएं और अपना उबंटू वन अकाउंट बनाएं। (या बस लॉग इन करें यदि आपके पास पहले से है।) अपना ईमेल जांचें और बाद में अकाउंट पुष्टिकरण लिंक पर क्लिक करें। अगला, Canonical Livepatch सर्विस पेज पर जाएं। चुनें कि आप एक "उबंटू यूजर" हैं, और अपना टोकन जनरेट करने के लिए बटन पर क्लिक करें। अगला पेज आपको वे सटीक कमांड दिखाएगा जिन्हें आपको अपने सर्वर पर दर्ज करना होगा। पहली कमांड के बाद, दर्ज करें
sudo snap install canonical-livepatch
कुछ सेकंड प्रतीक्षा करें जब तक स्नैप पैकेज पूरी तरह से इंस्टॉल न हो जाए। जब यह हो जाए, तो आपको निम्न तस्वीर के समान परिणाम मिलेगा।
अंत में, Canonical के पेज से अंतिम कमांड के साथ,
sudo canonical-livepatch enable #PASTE_YOUR_TOKEN_HERE
सर्विस सक्रिय हो जाती है और जब भी आवश्यक हो, आपके इनपुट की आवश्यकता के बिना, आपके कर्नेल पर सुरक्षा पैच ऑटोमैटिकली लागू करेगी।
यदि आवश्यक हो तो Snap डेमन इंस्टॉल करें
कुछ दुर्लभ अवसरों पर, पिछले सेक्शन में पहली कमांड विफल हो सकती है, निम्न त्रुटि संदेश के साथ: -bash: /usr/bin/snap: No such file or directory। इस मामले में इसका मतलब है कि आपके सर्वर प्रोवाइडर के पास एक उबंटू ऑपरेटिंग सिस्टम इमेज है जिसमें डिफ़ॉल्ट रूप से स्नैप डेमन सर्विस शामिल नहीं है। इसे इंस्टॉल करें:
sudo apt update && sudo apt install snapd
अब पिछले सेक्शन से दो कमांड फिर से चलाएं।
अपने सर्वर को अपडेट रखना
Livepatch आपके कर्नेल पर सभी आवश्यक सुरक्षा अपडेट लागू करेगा। हालांकि, आपको अभी भी अपने बाकी सिस्टम को नियमित रूप से निम्न जैसी कमांड से अपग्रेड करना चाहिए:
sudo apt update && sudo apt upgrade
आपको इसे साप्ताहिक रूप से करना चाहिए, या यदि आप कर सकते हैं तो और भी अधिक बार। महत्वपूर्ण सिस्टम पैकेज आपको संकेत दे सकते हैं कि उन्हें नवीनतम सुरक्षा सुधार लागू करने के लिए रीस्टार्ट करने की आवश्यकता है।
ये आमतौर पर ग्रेसफुल रीस्टार्ट होते हैं, जिसका अर्थ है कि वे प्रक्रिया में किसी भी सर्विस को बाधित नहीं करते। उदाहरण के लिए, इस मामले में, SSH डेमॉन को एक्टिव SSH सत्र को बाधित किए बिना रीस्टार्ट किया गया था।
अन्य स्थितियों में, आप स्वयं सर्विस को रीस्टार्ट कर सकते हैं ताकि यह सुनिश्चित हो सके कि नया, पैच्ड कोड रीलोड हो गया है और सुरक्षा सुधार लागू हो गए हैं। उदाहरण के लिए, यदि आप देखते हैं कि nginx पैकेज अपग्रेड किया गया है, तो आप चला सकते हैं
systemctl restart nginx.service
nginx डेमॉन को मेमोरी में रीलोड करने के लिए। अन्यथा, भले ही एक पैकेज अपग्रेड किया गया हो, यह अभी भी पुराने, कमजोर कोड के साथ चल सकता है, जिससे आपका सर्वर ज्ञात हमलों के जोखिम में पड़ सकता है। कुछ पैकेज अपग्रेड आपके लिए यह करते हैं, लेकिन अन्य नहीं करते। इसलिए यह एक अच्छी आदत है कि आप इस पर ध्यान दें कि "apt upgrade" क्या करता है और यदि आवश्यक हो तो कुछ सर्विस को रीस्टार्ट करें। आप यह देखने के लिए लॉग भी देख सकते हैं कि क्या यह ऑटोमैटिकली किया गया है।
निष्कर्ष
जैसा कि आप देख सकते हैं, Canonical ने इसे सर्वर पर लागू करना काफी आसान बना दिया है। जहां तक कर्नेल का संबंध है, आपके हिस्से पर कोई रखरखाव कार्य आवश्यक नहीं है। आप केवल एक चीज कर सकते हैं वह है समय-समय पर चलाएं
canonical-livepatch status
चीजों पर नज़र रखने के लिए।