यदि आप अपने स्वयं के सर्वर का प्रबंधन करते हैं, तो देर-सबेर आपको इस समस्या का सामना करना पड़ता है:आपको ऑपरेटिंग सिस्टम को रीबूट करना होगा, लेकिन मशीन एक महत्वपूर्ण सेवा प्रदान करती है जिसे आप बाधित नहीं कर सकते।
लेकिन पहली जगह में रिबूट क्यों? ऐसा लगता है कि apt-get upgrade
के बाद सब कुछ ठीक चल रहा है आज्ञा। हालांकि, चीजें हमेशा वैसी नहीं होती हैं जैसी वे दिखती हैं। भले ही सिस्टम हर अपग्रेड के बाद खुशी-खुशी चलना जारी रखता है, विंडोज की तरह रिबूट को मजबूर नहीं करता है, फिर भी इसे एक की आवश्यकता हो सकती है।
उदाहरण के लिए, जब सिस्टम के मूल (कर्नेल) में एक भेद्यता की खोज की जाती है, तो इसे पैच किया जाता है और एक नए पैकेज के रूप में आपके सर्वर पर धकेल दिया जाता है। पैच किए गए कर्नेल को स्थापित करने के बाद, कुछ फाइलें डिस्क पर लिखी जाती हैं, लेकिन यह अभी भी पुराना कर्नेल है जो शो चला रहा है, क्योंकि यह मेमोरी (रैम) में लोड किया गया है।
इसका मतलब है कि आपका सर्वर अभी भी पहले से खोजे गए सुरक्षा छेदों के प्रति संवेदनशील है। अन्य प्रक्रियाओं, डेमॉन और सेवाओं को ऑपरेटिंग सिस्टम को पुनरारंभ किए बिना पुनः लोड किया जा सकता है। हालांकि, कर्नेल सिस्टम के केंद्र में बैठता है और इसे केवल अगले बूट पर पुनः लोड किया जा सकता है।
उबंटू लाइवपैच आपको बिना पुनरारंभ किए कर्नेल सुरक्षा छेद बंद करने की अनुमति देकर इसे हल करता है। इस तरह, आप सुरक्षा से समझौता किए बिना हफ्तों या महीनों के लिए रिबूट से बच सकते हैं या देरी कर सकते हैं।
लाइव पैचिंग के पीछे मूल विचार सरल है:जब कोई फ़ंक्शन असुरक्षित होता है, तो उसे फिर से लिखें, दोष को समाप्त करें, और नए फ़ंक्शन को स्मृति में कहीं लोड करें। जब फ़ंक्शन को कॉल किया जाता है, तो कर्नेल में कोड चलाने के बजाय, फिर से लिखे गए कोड का उपयोग करने के लिए कॉल को रीडायरेक्ट करें।
लेकिन, जैसा कि ज्यादातर चीजें सरलता से काम करने लगती हैं, कार्यान्वयन और तकनीकी विवरण इतने सरल नहीं हैं।
उबंटू पर लाइवपैच कैसे सेट करें
इस पेज पर जाएं और अपना उबंटू वन अकाउंट बनाएं। (या अगर आपके पास पहले से ही लॉग इन है।) अपना ईमेल जांचें और बाद में खाता पुष्टिकरण लिंक पर क्लिक करें। इसके बाद, कैननिकल लाइवपैच सर्विस पेज पर जाएं। चुनें कि आप "उबंटू उपयोगकर्ता" हैं और अपना टोकन जेनरेट करने के लिए बटन पर क्लिक करें। अगला पृष्ठ आपको सटीक कमांड दिखाएगा जो आपको अपने सर्वर पर दर्ज करना है। पहले कमांड के बाद, एंटर करें
sudo snap install canonical-livepatch
स्नैप पैकेज पूरी तरह से स्थापित होने तक कुछ सेकंड प्रतीक्षा करें। जब यह हो जाएगा, तो आपको उसी तरह का परिणाम मिलेगा जैसा आप निम्न चित्र में देख सकते हैं।
अंत में, कैननिकल के पेज से अंतिम कमांड के साथ,
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 डेमॉन को पुनः लोड करने के लिए। अन्यथा, भले ही एक पैकेज अपग्रेड किया गया हो, फिर भी यह पुराने, कमजोर कोड के साथ चल सकता है, जिससे आपके सर्वर को ज्ञात हमलों का खतरा हो सकता है। कुछ पैकेज अपग्रेड आपके लिए ऐसा करते हैं, लेकिन अन्य नहीं करते हैं। इसलिए "उपयुक्त अपग्रेड" क्या करता है, इस पर ध्यान देना और यदि आवश्यक हो तो कुछ सेवाओं को पुनरारंभ करना एक अच्छी आदत है। आप यह देखने के लिए लॉग भी देख सकते हैं कि क्या यह स्वचालित रूप से किया गया है।
निष्कर्ष
जैसा कि आप देख सकते हैं, Canonical ने सर्वर पर इसे लागू करना काफी आसान बना दिया है। जहां तक कर्नेल का संबंध है, आपकी ओर से किसी रखरखाव कार्य की आवश्यकता नहीं है। केवल एक चीज जो आप कर सकते हैं वह है दौड़ना
canonical-livepatch status
समय-समय पर चीजों की जांच करने के लिए।