Ubuntu 24.04-এ unattended-upgrades কি ডিফল্টভাবে চালু?
Ubuntu Server 24.04-এ unattended-upgrades প্যাকেজটি থাকলেও 20auto-upgrades ফাইলটি এটি সক্রিয় করে। Automatic-Reboot ডিফল্টভাবে বন্ধ থাকে। ড্রাই রান চালিয়ে কী ইনস্টল হবে তা দেখুন।
স্বয়ংক্রিয় নিরাপত্তা আপডেট সেটআপ করা কেন জরুরি
যে সার্ভারে প্যাচ করা হয় না, সেটি ইন্টারনেটের সবচেয়ে সহজ লক্ষ্যবস্তু। ছোট সার্ভারগুলোর বেশিরভাগ নিরাপত্তা লঙ্ঘনের ঘটনা কোনো জটিল কৌশলে হয় না; বরং এগুলো পুরনো প্যাকেজের পরিচিত ত্রুটির কারণে ঘটে, যা সার্ভারের মালিক কখনোই আপডেট করেননি। উবুন্টু এমন একটি টুল সরবরাহ করে যা এই ঝুঁকি নিজে থেকেই দূর করে: unattended-upgrades কোনো লগইন ছাড়াই নির্ধারিত সময়ে স্বয়ংক্রিয়ভাবে নিরাপত্তা আপডেট ইনস্টল করে। এটি একটি VPS-এর জন্য সবচেয়ে সাশ্রয়ী নিরাপত্তা ব্যবস্থা এবং উবুন্টুতে এটি সেটআপ করতে মাত্র কয়েক মিনিট সময় লাগে।
এই টুলটি ইচ্ছাকৃতভাবেই রক্ষণশীল। ডিফল্টভাবে এটি শুধুমাত্র নিরাপত্তা আপডেটগুলো প্রয়োগ করে, সব প্যাকেজ আপগ্রেড করে না। কারণ নিরাপত্তা প্যাচগুলো কম ঝুঁকিপূর্ণ এবং পর্যালোচনা ছাড়াই গ্রহণ করা যায়, কিন্তু ফিচার আপগ্রেড আপনার নির্ভর করা কোনো আচরণ পরিবর্তন করে ফেলতে পারে। বেশিরভাগ সার্ভারের জন্য এই ডিফল্ট সেটিংসটিই সঠিক। এই নির্দেশিকাটি সেই ডিফল্ট সেটিংস বজায় রেখে কেবল প্রয়োজনীয় কিছু সেটিংস পরিবর্তনের পরামর্শ দেয়।
ধাপ 1: এটি ইনস্টল ও সক্রিয় করুন
Ubuntu Server 24.04-এ প্যাকেজটি ডিফল্টভাবে ইনস্টল ও সক্রিয় থাকে। Ubuntu-এর server documentation অনুযায়ী, unattended-upgrades ডিফল্টভাবে ইনস্টল থাকে এবং ইনস্টলেশনের পরপরই security update স্বয়ংক্রিয়ভাবে ইনস্টল করার ব্যবস্থা সক্রিয় থাকে। ইনস্টলেশনের সময় প্যাকেজটি যে enabling প্রশ্ন করে, তার ডিফল্ট উত্তর yes। তাই কেউ স্পষ্টভাবে no না বললে daily job আগে থেকেই চালু থাকে। তবে custom বা trimmed provider image ভিন্ন হতে পারে। তাই ধরে না নিয়ে নিশ্চিত হয়ে নিন। নিচের command-গুলো যেকোনো অবস্থায় নিরাপদ: প্যাকেজ না থাকলে এগুলো সেটি ইনস্টল করবে এবং এটি চালু করার একমাত্র প্রশ্নটি আবার করবে:
sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgradesdpkg-reconfigure prompt-এ একটি yes-or-no প্রশ্ন থাকে: stable update স্বয়ংক্রিয়ভাবে download ও install করা হবে কি না। yes উত্তর দিন। এতে daily job চালু করার file-এ পরিবর্তন লেখা হবে:
cat /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";প্রথম line-টি প্রতিদিন package list refresh করে; দ্বিতীয়টি প্রতিদিন unattended upgrade চালায়। দুটির মান 1 থাকলে systemd timer-এর মাধ্যমে machine-টি প্রতিদিন security update পরীক্ষা করে এবং প্রয়োগ করে। আপনার আর কোনো পদক্ষেপের প্রয়োজন হয় না।
ধাপ 2: কোন update স্বয়ংক্রিয়ভাবে প্রয়োগ হবে তা নির্ধারণ করুন
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 line-গুলোই গুরুত্বপূর্ণ এবং এগুলো ডিফল্টভাবে সক্রিয় থাকে। এটি একটি conservative policy: security update স্বয়ংক্রিয়ভাবে ইনস্টল হবে, আর সাধারণ feature update আপনার পছন্দের সময় হাতে প্রয়োগ করার জন্য রাখা হবে। একই block-এ "${distro_id}:${distro_codename}-updates" line-টি uncomment করলে Ubuntu-এর নিয়মিত stable update-ও স্বয়ংক্রিয়ভাবে নেওয়া হবে। এতে policy শুধু Ubuntu-এর -updates archive পর্যন্ত বিস্তৃত হবে; machine-এর প্রতিটি repository বা PPA-তে নয়। সাধারণ যাচাইগুলোও প্রযোজ্য থাকবে: কোনো package প্রয়োগ করতে configuration-file prompt-এর প্রয়োজন হলে tool-টি সেটি hold back করবে, এবং অনুমোদিত origin থেকে dependency পাওয়া না গেলে কিছুই install করবে না। গুরুত্বপূর্ণ কোনো service চালানো server-এর জন্য শুধু security patch স্বয়ংক্রিয়ভাবে নেওয়াই নিরাপদ default। নির্দিষ্ট কারণ না থাকলে package যেভাবে সরবরাহ করা হয়েছে, সেভাবেই রাখুন।
ধাপ 3: রিবুট পরিচালনা করা
কিছু আপডেট, যেমন কার্নেল বা কোর লাইব্রেরি, রিবুট করার পরেই পুরোপুরি কার্যকর হয়। unattended-upgrades আপনার সার্ভারকে রিবুট করবে না যদি না আপনি তাকে নির্দেশ দেন। এর মানে হলো, একটি প্যাচ করা কার্নেল আপনি রিবুট না করা পর্যন্ত অব্যবহৃত অবস্থায় পড়ে থাকতে পারে। আপনি এটি কীভাবে পরিচালনা করতে চান তা ঠিক করুন এবং 50unattended-upgrades ফাইলে স্পষ্টভাবে সেট করুন:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";এটি ভোর চারটার সময় সার্ভার রিবুট করবে, তবে কেবল তখনই যখন কোনো আপডেটের জন্য রিবুট প্রয়োজন হবে। একক VPS-এর ক্ষেত্রে, যেখানে কোনো ক্লাস্টার নেই, সেখানে ভোরবেলায় সংক্ষিপ্ত রিবুট কার্নেল ফিক্স আপডেট রাখার জন্য একটি সঠিক সিদ্ধান্ত। যদি আপনার সার্ভারে এমন কিছু চলে যা কখনোই অপ্রত্যাশিতভাবে বন্ধ হওয়া উচিত নয়, তবে রিবুট অপশনটি বন্ধ রাখুন এবং /var/run/reboot-required চেক করার পর নিজে রিবুট করার অভ্যাস করুন।
ধাপ 4: এটি কাজ করছে কিনা যাচাই করা
কাজটি চলছে কিনা তা দেখার জন্য একদিন অপেক্ষা করবেন না। একটি ড্রাই রান (dry run) চালান যা কোনো কিছু পরিবর্তন না করেই দেখাবে ঠিক কী কী প্রয়োগ করা হবে:
sudo unattended-upgrade --dry-run --debugআউটপুটটি সেই প্যাকেজগুলোর তালিকা দেখাবে যা এটি বিবেচনা করছে এবং সেগুলো কোন উৎস থেকে আসছে, যাতে আপনি নীতিমালাটি কার্যকর হতে দেখতে পারেন। আসল কাজটি অন্তত একবার চলার পর, এর রেকর্ড এখানে পাওয়া যাবে:
cat /var/log/unattended-upgrades/unattended-upgrades.logএই লগটিই উত্তর দেয় যে "আমার সার্ভার কি সত্যিই নিজেকে প্যাচ করছে?"। যদি এটি প্রতিদিনের সময়সূচী অনুযায়ী নিরাপত্তা প্যাকেজ ইনস্টল হতে দেখায়, তবে কাজটি সঠিকভাবে চলছে।
এটি কোথায় মানানসই
স্বয়ংক্রিয় আপডেট একটি সুরক্ষিত সার্ভারের একটি স্তর মাত্র, পুরো সমাধান নয়। এগুলো পরিচিত ত্রুটিগুলোকে দীর্ঘস্থায়ী হতে বাধা দেয়, কিন্তু কারা লগইন করতে পারবে বা কী উন্মুক্ত থাকবে সে বিষয়ে এগুলো কোনো ভূমিকা রাখে না। এর সাথে SSH hardening ব্যবহার করুন যাতে মূল প্রবেশপথটি ব্রুট-ফোর্স করা না যায়, একটি ডিফল্ট-ডিনাই UFW firewall ব্যবহার করুন যাতে কেবল আপনার অনুমোদিত জিনিসগুলোই অ্যাক্সেসযোগ্য থাকে, এবং unprivileged service users ব্যবহার করুন যাতে কোনো আপস করা অ্যাপ পুরো সার্ভারের নিয়ন্ত্রণ নিতে না পারে। আপনার হোস্ট করা অ্যাপগুলোর নিজস্ব গোপনীয়তা থাকে, তাই যদি এই বক্সে কোনো সেলফ-হোস্টেড পাসওয়ার্ড ভল্ট চলে, তবে একটি Vaultwarden hardening pass অ্যাডমিন টোকেন এবং ব্যাকআপ ফাইলকে সুরক্ষিত রাখবে, যা কেবল apt প্যাচিং দিয়ে সম্ভব নয়। প্যাচিং আপনার জানা ছিদ্রগুলো বন্ধ করে; অন্যান্য স্তরগুলো আপনার অজানা ঝুঁকি থেকে ক্ষতি সীমিত করে।
FAQ
unattended-upgrades কি সব আপডেট প্রয়োগ করে নাকি শুধু নিরাপত্তা আপডেট?
ডিফল্টভাবে, শুধুমাত্র নিরাপত্তা আপডেট। /etc/apt/apt.conf.d/50unattended-upgrades ফাইলের Allowed-Origins ব্লকটি -security অরিজিনগুলোকে সক্রিয় করে এবং সাধারণ ফিচার আপডেটগুলো আপনার হাতে রাখে। এটি ইচ্ছাকৃত: নিরাপত্তা প্যাচগুলো কম ঝুঁকিপূর্ণ এবং স্বয়ংক্রিয়ভাবে নেওয়া উচিত, কিন্তু ফিচার আপগ্রেড আচরণ পরিবর্তন করতে পারে, তাই বেশিরভাগ সার্ভারের জন্য রক্ষণশীল ডিফল্ট সেটিংস বজায় রাখাই ভালো।
স্বয়ংক্রিয় আপডেট কি আমার সার্ভার রিবুট করবে?
শুধুমাত্র যদি আপনি নির্দেশ দেন। কনফিগারেশনে Unattended-Upgrade::Automatic-Reboot "true" এবং একটি Automatic-Reboot-Time সেট করুন, তাহলে কোনো আপডেটের জন্য প্রয়োজন হলে (যেমন কার্নেল প্যাচের পর) সার্ভার সেই সময়ে রিবুট হবে। এটি বন্ধ থাকলে, একটি প্যাচ করা কার্নেল আপনার রিবুট করার অপেক্ষায় থাকবে; কখন রিবুট প্রয়োজন তা জানতে /var/run/reboot-required চেক করুন।
স্বয়ংক্রিয় আপডেট চলছে কিনা তা কীভাবে চেক করব?
কোনো কিছু পরিবর্তন না করে এখন কী প্রয়োগ করা হবে তা দেখতে sudo unattended-upgrade --dry-run --debug চালান এবং অতীতের রেকর্ড পড়তে /var/log/unattended-upgrades/unattended-upgrades.log দেখুন; প্রতিটি স্বয়ংক্রিয় ইনস্টল /var/log/apt/history.log ফাইলে রেকর্ড হয়। যদি লগ প্রতিদিনের সময়সূচী অনুযায়ী নিরাপত্তা প্যাকেজ ইনস্টল হতে দেখায়, তবে টাইমার কাজ করছে। যদি ড্রাই রান No packages found that can be upgraded unattended প্রিন্ট করে, তবে হয় সবকিছু আপডেট করা আছে অথবা আপনার অনুমোদিত অরিজিনগুলো নিরাপত্তা রিপোজিটরির সাথে মিলছে না।
আমার সার্ভার সুরক্ষিত রাখার জন্য কি unattended-upgrades যথেষ্ট?
না, তবে এটি একটি প্রয়োজনীয় স্তর। এটি পরিচিত দুর্বলতাগুলোকে প্যাচবিহীন অবস্থায় পড়ে থাকতে বাধা দেয়, যা সবচেয়ে সাধারণ ধরনের লঙ্ঘন রোধ করে, কিন্তু এটি অ্যাক্সেস বা এক্সপোজার নিয়ন্ত্রণ করে না। এটিকে SSH হার্ডেনিং, ডিফল্ট-ডিনাই ফায়ারওয়াল এবং ন্যূনতম সুবিধাপ্রাপ্ত সার্ভিস ইউজারদের সাথে যুক্ত করুন, যাতে সার্ভারটি ভাঙা সত্যিই কঠিন হয়ে পড়ে।