আপনি যদি নিজে আপনার সার্ভার(গুলো) অ্যাডমিনিস্টার করেন, তবে 조만간 আপনি এই সমস্যার মুখোমুখি হবেন: আপনাকে অপারেটিং সিস্টেম রিবুট করতে হবে, কিন্তু মেশিনটি একটি গুরুত্বপূর্ণ সার্ভিস দেয় যা আপনি ইন্টারрап্ট করতে পারবেন না।
কেন রিবুট করা প্রয়োজন? apt-get upgrade কমান্ডের পর সব কিছু ঠিকমতো কাজ করছে মনে হয়। যাইহোক, জিনিসগুলো সবসময় যে মনে হয় সেটি নয়। ম্যালওয়্যার সিস্টেম হ্যাপ্পিলি প্রতিটি আপগ্রেডের পর চলতে থাকে, উইন্ডোজের মতো রিবুট ফোর্স না করলেও, এটিকে এখনও রিবুট দরকার হতে পারে।
উদাহরণস্বরূপ, সিস্টেমের কোরে (কার্নেল) একটি ভালনারেবিলিটি ডিসকভার হলে, এটি প্যাচ করা হয় এবং আপনার সার্ভারে একটি নতুন প্যাকেজ হিসেবে পুশ করা হয়। প্যাচড কার্নেল ইনস্টল করার পর, কিছু ফাইল ডিস্কে লেখা হয়, কিন্তু এখনও পুরানো কার্নেলই শো চালাচ্ছে, কারণ এটি হলো যা মেমরি (RAM)-এ লোডেড।
এর মানে আপনার সার্ভার এখনও পূর্বে ডিসকভার করা সিকিউরিটি হোলগুলোর জন্য ভালনারেবল। অন্যান্য প্রসেস, ডেমন, এবং সার্ভিসগুলো অপারেটিং সিস্টেম রিস্টার্ট ছাড়া রিলোড করা যায়। যাইহোক, কার্নেল সিস্টেমের হৃদয়ে বসে এবং শুধু নেক্সট বুটে রিলোড করা যায়।
Ubuntu Livepatch এই সমস্যাটি সমাধান করে কার্নেল সিকিউরিটি হোল বন্ধ করার মাধ্যমে রিস্টার্ট ছাড়া। এইভাবে, আপনি সিকিউরিটি কামপ্রোমাইজ ছাড়া সপ্তাহ বা মাস ধরে রিবুট এড়াতে বা ডिले করতে পারেন।
লাইভ প্যাচিং-এর কোর আইডিয়া সিম্পল: যখন একটি ফাংশন ভালনারেবল, এটি রিরাইট করুন, ফ্ল Emperors, এবং নতুন ফাংশন কোথাও মেমরিতে লোড করুন। যখন ফাংশনটি কল করা হয়, কার্নেলের কোড রান করার বদলে, কলটিকে রিডাইরেক্ট করুন রিরাইট করা কোড ব্যবহার করতে।
যাইহোক, অধিকাংশ জিনিসের মতো যা সিম্পললি কাজ করতে মনে হয়, ইমপ্লিমেন্টেশন এবং টেকনিক্যাল ডিটেইলগুলো সতেই সিম্পল নয়।
Ubuntu-এ Livepatch সেট আপ করার পদ্ধতি
এই পেজে যান এবং আপনার Ubuntu One অ্যাকাউন্ট তৈরি করুন। (অথবা শুধু লগ ইন করুন যদি ইতিমধ্যে থাকে।) আপনার ইমেইল চেক করুন এবং তারপর অ্যাকাউন্ট কনফার্মেশন লিংকে ক্লিক করুন। এরপর, Canonical Livepatch Service পেজে যান। সিলেক্ট করুন যে আপনি একটি "Ubuntu user", এবং আপনার টোকেন জেনারেট করার বাটনে ক্লিক করুন। নেক্সট পেজ আপনাকে আপনার সার্ভারে এন্টার করতে হবে সঠিক কমান্ডগুলো দেখাবে। প্রথম কমান্ডের পর, লিখুন
sudo snap install canonical-livepatch
কয়েক সেকেন্ড অপেক্ষা করুন যতক্ষণ না স্ন্যাপ প্যাকেজ ফুলি ইনস্টল হয়। একবার হলে, আপনি নিচের ছবির মতো একটি রেজাল্ট পাবেন।
শেষে, Canonical-এর পেজ থেকে লাস্ট কমান্ডটি দিয়ে,
sudo canonical-livepatch enable #PASTE_YOUR_TOKEN_HERE
সার্ভিসটি এক্টিভ হয়ে যাবে এবং আপনার কার্নেলে সিকিউরিটি প্যাচ আটোমেটিক্যালি অ্যাপ্লাই করবে, যখনই প্রয়োজন, আপনার পক্ষ থেকে কোনো ইনপুট ছাড়া।
প্রয়োজন হলে Snap Daemon ইনস্টল করুন
কিছু রেয়ার আক্সidente, পिछলা সেকশনের প্রথম কমান্ড ফেইল করতে পারে, নিচের এরর মেসেজের সাথে: -bash: /usr/bin/snap: No such file or directory। এই কেসে মানে আপনার সার্ভার প্রোভাইডারের একটি Ubuntu অপারেটিং সিস্টেম ইমেজ আছে যেটি ডিফল্টভাবে snap daemon সার্ভিস অন্তর্ভুক্ত করে না। এটি ইনস্টল করুন:
sudo apt update && sudo apt install snapd
এখন পिछলা সেকশনের দুটি কমান্ড আবার রান করুন।
আপনার সার্ভার আপডেটেড রাখা
Livepatch আপনার কার্নেলে সব প্রয়োজনীয় সিকিউরিটি আপডেট অ্যাপ্লাই করবে। যাইহোক, আপনাকে আপনার সিস্টেমের বাকি অংশ নিয়মিত আপগ্রেড করতে থাকা উচিত নিচের কমান্ডের মতো দিয়ে:
sudo apt update && sudo apt upgrade
আপনাকে এটি সাপ্তাহিক, বা আরও বেশি ofte, যদি পারেন তবে করা উচিত। গুরুত্বপূর্ণ সিস্টেম প্যাকেজ আপনাকে প্রম্পট করতে পারে যে সেগুলো লেটেস্ট সিকিউরিটি ফিক্স অ্যাপ্লাই করার জন্য রিস্টার্ট দরকার।
এইগুলোর বেশিরভাগ গ্রেসফুল রিস্টার্ট, অর্থাৎ প্রসেসে কোনো সার্ভিস ডিসরাপ্ট করে না। উদাহরণস্বরূপ, এই কেসে, SSH ডেমন আটোমেটিক্যালি রিস্টার্ট হয়েছিল একটিভ SSH সেশন ইন্টারрап্ট ছাড়া।
অন্য পরিস্থিতিতে, আপনি নিজে সার্ভিসগুলো রিস্টার্ট করতে পারেন নিশ্চিত করতে যে নতুন, প্যাচড কোড রিলোড হয়েছে এবং সিকিউরিটি ফিক্সগুলো অ্যাপ্লাই হয়েছে। উদাহরণস্বরূপ, আপনি যদি লক্ষ্য করেন যে nginx প্যাকেজ আপগ্রেড হয়েছে, আপনি রান করতে পারেন
systemctl restart nginx.service
nginx ডেমন মেমরিতে রিলোড করার জন্য। অন্যথায়, এমনকি যদি একটি প্যাকেজ আপগ্রেড হয়, তবে এটা এখনও পুরানো, ভালনারেবল কোড দিয়ে চলতে পারে, আপনার সার্ভারকে পরিচিত আক্রমণের ঝুঁকিতে ফেলে। কিছু প্যাকেজ আপগ্রেড এটি আপনার জন্য করে, কিন্তু অন্যগুলো করে না। সেই কারণে এটা একটি ভালো অভ্যাস "apt upgrade" কী করে সেটিতে অন্ধকার রাখা এবং প্রয়োজনে কিছু সার্ভিস রিস্টার্ট করা। আপনি লগও দেখতে পারেন এটি আটোমেটিক্যালি হয়েছে কিনা।
উপসংহার
আপনি দেখতে পাচ্ছেন, Canonical এটি সার্ভারে ইমপ্লিমেন্ট করা খুব সহজ করে দিয়েছে। কার্নেলের দিক থেকে, আপনার পক্ষ থেকে কোনো মেইনটেনেন্স ওয়ার্ক প্রয়োজন নেই। একমাত্র জিনিস যা আপনি করতে পারেন তা হলো নিচের কমান্ড রান করা সময়ে সময়ে:
canonical-livepatch status
स्थितি চেক করতে।