বাতিলকরণ কখনও চলমান টানেলের ভেতরে ঢুকে সেশন মুছে দেয় না। তালিকাটি সার্টিফিকেট যাচাইয়ের একটি ইনপুট, যা TLS সেশন শুরু করা কন্ট্রোল-চ্যানেল বিনিময়ের সময় দেখা হয়। এই একটি তথ্যই দুই বিস্ময়ের ব্যাখ্যা দেয়: বাতিল করা ক্লায়েন্ট আবার সংযোগ করে, কারণ তালিকাটি কখনও যাচাইকারীর কাছে পৌঁছায়নি, আর চলমান সেশন টিকে থাকে, কারণ কেউ কিছু পুনরায় যাচাই করেনি।

তালিকা একটি ইনপুট, কোনো কাজ নয়

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

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

নতুন সংযোগ বনাম চলমান সেশন

সেশন প্রতিষ্ঠা বা পুনরায় সমঝোতার সময় বাতিলকরণ মূল্যায়িত হয়, প্রতিটি প্যাকেটে ডেটা চ্যানেলের বিপরীতে নয়। যে ক্লায়েন্ট ইতিমধ্যে সংযুক্ত সে ট্রাফিক কী ধরে রাখে, তাই তার সার্টিফিকেট তালিকায় দেখা দেওয়ার পরেও সে প্যাকেট পার করতে থাকে। ডিফল্ট পুনঃসমঝোতা বিরতি ঘণ্টায় মাপা হয়, তাই হালনাগাদ তালিকা নতুনদের জন্য কার্যকর হতে পারে, অথচ চলমান টানেল চালু থাকে।

SituationWhat the list doesWhen it applies
Fresh connectionBlocks the handshakeAt verification, immediately
RenegotiationBlocks the new exchangeAt the next renegotiation interval
Established data channelNothingUntil the session ends

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

যাচাইকারী যে ফাইলটি সত্যিই পড়ে সেটিই পৌঁছে দিন

তালিকাটি কর্তৃপক্ষের রেকর্ড থেকে তৈরি করে তারপর সার্টিফিকেট যাচাই করে এমন প্রতিটি মেশিনে অনুলিপি করতে হবে। এটি CA হোস্টে তৈরি করে সার্ভারে কখনও ইনস্টল না করা সবচেয়ে সাধারণ ব্যর্থতা, এবং এটি দেখতে ঠিক একটি ভাঙা বাতিলকরণ বৈশিষ্ট্যের মতো।

ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem

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

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

ক্লায়েন্টে নয়, সার্ভারে নিশ্চিত করুন

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

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

কোনো কিছু বাতিল করে না যা

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

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

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