একটি আপডেট ব্যর্থ হয়, আর থ্রেডের পরামর্শ চেনা পথেই চলে: ট্রাফিক VPN-এর ভেতর দিয়ে যায়, তাই ডাউনলোড নিশ্চয়ই বিশ্বাসযোগ্য, এবং ত্রুটি পেরোতে সই যাচাই শিথিল করা হয়। দুটি আলাদা ধারণা এক বাক্যে মিশে গেছে। এনক্রিপশন দুই প্রান্তের মধ্যে পথ রক্ষা করে; প্রমাণীকরণ ঠিক করে বাইটগুলো আপনার ইচ্ছাকৃত প্রকাশকের কাছ থেকে এসেছে কি না। সুড়ঙ্গ প্রথমটি দেয় এবং দ্বিতীয়টি নিয়ে কিছুই বলে না।

লক্ষণ সাধারণত একটি হোস্টে, একটি ভাণ্ডারে যাচাই ত্রুটি, অথচ বাকি সব স্বাভাবিকভাবে হালনাগাদ হয়। এই চেহারা আগেই বলে দেয় যে নেটওয়ার্ক পথ কাজ করছে এবং মতভেদটি বিশ্বাস নিয়ে।

ভিন্ন প্রশ্নের উত্তর দেওয়া দুটি নিয়ন্ত্রণ

পরিবহন নিরাপত্তা বলে এই সংযোগের অপর প্রান্তে কে আছে এবং পথের কেউ তা পড়তে বা বদলাতে পারে কি না। প্যাকেজ প্রমাণীকরণ বলে এই উপাদানটি আপনার কনফিগার করা কর্তৃপক্ষ প্রকাশ করেছে কি না, এবং আপনার নিয়ন্ত্রণহীন একটি মিরর দিয়ে ডাউনলোডের মধ্যেও তা টিকতে হবে।

এই প্রশ্নগুলো কেবল প্রান্তে মেলে। মিররে সঠিক সার্টিফিকেট প্রমাণ করে মিররটি মিরর; এটি প্রমাণ করে না যে মিররে অপরিবর্তিত প্রকাশক-বিষয়বস্তু আছে। সই করা প্যাকেজ প্রমাণ করে প্রকাশক এটি সই করেছেন; এটি আপনাকে বলে না যে নেটওয়ার্ক সর্বশেষ সংস্করণ পৌঁছেছে বা আপনি যে ভাণ্ডার দেখিয়েছেন সেটিই আপনার প্রতিষ্ঠানের অনুমোদিত।

যাচাই বন্ধ করে মানুষ যে ব্যর্থতা তৈরি করে তা হলো দ্বিতীয় নিশ্চয়তার স্থায়ী ক্ষতি, একটিমাত্র সফল ডাউনলোডের বিনিময়ে। এই বিনিময় অদৃশ্য থাকে যেদিন এটি গুরুত্বপূর্ণ হয় সেদিন পর্যন্ত।

apt আসলে কী প্রমাণীকরণ করে

APT-এর মডেল একটি প্রমাণীকৃত আর্কাইভ শৃঙ্খল। সই করা রিলিজ মেটাডেটা চেকসাম দিয়ে প্যাকেজ সূচিতে নিয়ে যায়, আর সেই সূচিগুলো চেকসাম দিয়ে আলাদা প্যাকেজ ফাইলে নিয়ে যায়। শৃঙ্খল যাচাই করাই মিররকে অবিশ্বস্ত কিন্তু ব্যবহারযোগ্য করে: মিরর যা চায় পরিবেশন করতে পারে, আর মেটাডেটার সই ঠিক করে APT তা গ্রহণ করবে কি না।

এটি সচেতনভাবেই প্রতিটি ইনস্টল করা প্যাকেজে রক্ষণকর্তার সই যাচাইয়ের সমান নয়, এবং এই পার্থক্যই ব্যাখ্যা করে কেন বাগ প্রতিবেদনে «প্যাকেজটি সই করা» আর «আর্কাইভটি প্রমাণীকৃত» পরস্পরের বদলে ব্যবহৃত হয়, যদিও তারা ভিন্ন কথা বলে।

apt-get update
apt-cache policy
apt-config dump | grep -iE 'AllowInsecure|AllowDowngrade'

আপডেটের আউটপুট পড়ুন, কেবল এক্সিট কোড নয়। APT যে ভাণ্ডারের মেটাডেটা ব্যর্থ হয়েছে তার নাম বলে, এবং সেই নামই তদন্তের সীমা। সই যাচাই ছাড়া বিশ্বস্ত হিসেবে চিহ্নিত ভাণ্ডার, বা অনিরাপদ ভাণ্ডারের জন্য ওভাররাইড, হলো কারও নেওয়া একটি কনফিগারেশন সিদ্ধান্ত, যা সে ব্যাখ্যা করতে পারা উচিত।

সতেজতা আবার আলাদা একটি গুণ। বৈধভাবে সই করা মেটাডেটা ফাইল গত সপ্তাহে দেখা ফাইলের চেয়ে পুরোনো হতে পারে, তাই রিলিজ মেটাডেটায় মেয়াদ থাকে এবং তাই ক্লায়েন্টে ঘড়ির সমস্যা চাবির সমস্যার মতো দেখতে যাচাই ব্যর্থতা তৈরি করতে পারে।

dnf5 আলাদাভাবে কী যাচাই করে

RPM দিকটি দুটি আলাদা সুইচ প্রকাশ করে, আর তাদের গুলিয়ে ফেললে অন্য দিকে একই ধরনের ভুল হয়। একটি নিয়ন্ত্রণ করে প্যাকেজ ফাইলে বৈধ সই থাকতে হবে কি না; অন্যটি নিয়ন্ত্রণ করে ভাণ্ডারের মেটাডেটা সই করা থাকতে হবে কি না। এগুলো স্বতন্ত্রভাবে সেট করা যায়, এবং একটি সিস্টেম একটিতে কঠোর ও অন্যটিতে শিথিল হতে পারে।

dnf5 config-manager --dump 2>/dev/null | grep -iE 'gpgcheck|repo_gpgcheck'
rpm -q --qf '%{NAME} %{SIGPGP:pgpsig}\n' bash

প্যাকেজ জিজ্ঞাসা দেখায় ইনস্টল করা অনুলিপির সই মেটাডেটা কেমন দেখায়, যা কঠোরতার দাবি করা কনফিগারেশন ফাইলের বিরুদ্ধে দরকারি বাস্তবতা-পরীক্ষা। এটি আপনাকে যা বলে না তা হলো ডিস্ট্রিবিউশনের সমর্থিত নীতি, আর ফোরামের সাধারণ «GPG চালু করুন» নির্দেশের বদলে ঠিক সেই নীতিই অনুসরণ করা উচিত।

যেখানে দুই ম্যানেজার আলাদা, সেখানে পার্থক্যটি স্থাপত্যের, একে দুর্বল হওয়ার চিহ্ন নয়। দুটোই প্রকাশকের বিষয়বস্তু প্রমাণীকরণ করে; তারা সইটি শৃঙ্খলের ভিন্ন বিন্দুতে রাখে।

সুড়ঙ্গ কী যোগ করে আর কী করে না

একটি VPN প্রয়োজনীয় রুট দিতে পারে, আপডেট ট্রাফিক অবিশ্বস্ত অ্যাক্সেস নেটওয়ার্কের বাইরে রাখতে পারে এবং স্থানীয় পর্যবেক্ষক যা দেখে তা কমাতে পারে। এগুলো বাস্তব পরিচালন সুবিধা, এবং এর একটিও প্রকাশক-প্রমাণীকরণ নয়।

HTTPS নিজের নিশ্চয়তা যোগ করে, আর তা অনুভবের চেয়ে সংকীর্ণ। এটি আপনার সংযুক্ত TLS প্রান্তটি প্রমাণীকরণ করে। সেই প্রান্ত যদি মিরর হয়, আপনি মিররটি প্রমাণীকরণ করেছেন, তার পরিবেশন করা আর্কাইভ-বিষয়বস্তু নয়। সই করা মেটাডেটা-শৃঙ্খল ঠিক এই ক্ষেত্রটির জন্যই আছে।

কোনো নিয়ন্ত্রণই প্রাপ্যতার প্রতিশ্রুতি দেয় না। নেটওয়ার্ক ডেলিভারি অস্বীকার করতে পারে, আর প্রমাণীকৃত বস্তু স্বয়ংক্রিয়ভাবে নতুন নয়। তালার আইকন দেখে অনুমান না করে প্যাকেজ ম্যানেজারের নিজের সতেজতা নীতি ব্যবহার করুন।

ব্যর্থ হওয়া সীমাটি নির্ণয় করুন

কিছু বদলানোর আগে ধাপটির নাম দিন: DNS সমাধান, প্রক্সি বা রুট, TLS প্রান্তের পরিচয়, আর্কাইভ প্রমাণীকরণ, প্যাকেজ সই যাচাই, বা ইনস্টলেশন। প্রতিটির আলাদা ত্রুটি-আকৃতি ও আলাদা মালিক আছে।

নেটওয়ার্ক পথ মেরামত করতে কখনোই অজানা সই-চাবিকে বিশ্বস্ত ঘোষণা করা, সার্টিফিকেট উপেক্ষা করা, বা আপনি যে ভাণ্ডার-কনফিগ চাননি তা গ্রহণ করা থাকা উচিত নয়। চাবি সত্যিই ঘুরানো হলে ডিস্ট্রিবিউশন বা ভাণ্ডার-মালিক নতুন চাবি এমন চ্যানেলে প্রকাশ করে যা আপনি যাচাই করতে পারেন, আর সেটিই প্রয়োগ করার সংশোধন।

কোন সীমা ব্যর্থ হয়েছে এবং তার মালিক কে, তা লিখে রাখুন। পরের আপডেট ব্যর্থতা ভিন্ন সীমায় হবে, আর তালিকাটি থাকলে তা সুড়ঙ্গ আপডেট নিরাপদ করে কি না নিয়ে আরেকটি তর্কের বদলে পাঁচ মিনিটের নির্ণয়ে পরিণত হয়।

সম্পর্কিত নিবন্ধ