সার্টিফিকেট বদলের পর OpenConnect কেন গেটওয়েকে প্রত্যাখ্যান করে?
গেটওয়ের সার্টিফিকেট বদলের পর যাচাইয়ের ব্যর্থতা একটি বিশ্বাসের সিদ্ধান্ত, ভাঙা টানেল নয়। ইস্যুকারী CA আর একটি মাত্র কী পিন করার মধ্যে বেছে নিন।
গেটওয়ে সার্টিফিকেট বদলায়, আর গতকাল যে ক্লায়েন্ট সংযুক্ত হয়েছিল সে প্রথম TLS বিনিময়েই থেমে যেতে শুরু করে। বার্তাটি নেটওয়ার্ক ত্রুটি নয়, যাচাইয়ের কারণ বলে, আর মেশিনটি নিজে বদলায়নি—এটাই কাজের সূত্র। যা ভেঙেছে তা হলো এখন উপস্থাপিত সার্টিফিকেট আর ক্লায়েন্ট যে মূলগুলিকে গ্রহণ করতে রাজি তার সম্পর্ক। এটি মেরামত করা একটি বিশ্বাসের সিদ্ধান্ত, তাই কোনো অপশন লেখার আগেই সেই সিদ্ধান্ত নিন।
যেকোনো বিশ্বাস সেটিং বদলানোর আগে ব্যর্থতাটি পড়ুন
অনুপস্থিত স্বাক্ষরকারীর মতো ত্রুটি মানে শৃঙ্খলটি এমন কিছুতে শেষ হয় যা ক্লায়েন্ট গ্রহণ করে না। এটি অভ্যন্তরীণ কর্তৃপক্ষের নবায়নকৃত সার্টিফিকেট, কোনো সরকারি কর্তৃপক্ষের প্রতিস্থাপন, বা মাঝখানে থাকা কোনো ডিভাইসের নিজের সার্টিফিকেট হতে পারে। কেবল শব্দচয়ন সেই ঘটনাগুলো আলাদা করতে পারে না, তাই সিদ্ধান্তের আগে ইস্যুকারীর দিকে তাকান।
সংযোগটি একবার ফোরগ্রাউন্ডে চালান এবং ব্যর্থ হতে দিন, কারণ ইন্টারঅ্যাক্টিভ আউটপুটে সার্ভারের নাম, ইস্যুকারী শৃঙ্খল এবং ক্লায়েন্টের গণনা করা ফিঙ্গারপ্রিন্ট থাকে। সেই ইস্যুকারীকে আপনার প্রতিষ্ঠান সত্যিই পরিচালনা করে এমন কর্তৃপক্ষের সঙ্গে তুলনা করুন। ফিঙ্গারপ্রিন্ট বদলালে কিন্তু ইস্যুকারী না বদলালে, আপনি ইতিমধ্যে যে চ্যানেলে বিশ্বাস করেন সেখানে নবায়ন নিশ্চিত হওয়ার আগ পর্যন্ত এটিকে সন্দেহজনক ধরুন। এই মুহূর্তে অনুমান করাই একজন মানুষকে ইন্টারসেপ্টরের কী পিন করতে নিয়ে যায়।
একই নোটে ক্লায়েন্টের সংস্করণ লিখুন। বিশ্বাসের সমস্যার মতো দেখতে অনেক ব্যর্থতাই আসে পুরোনো ক্লায়েন্ট আর নতুন গেটওয়ে বিনিময়ের মুখোমুখি হওয়া থেকে।
ইস্যুকারীকে বিশ্বাস করা আর একটি কী পিন করার মধ্যে বেছে নিন
দুই অপশনই সংযোগ সফল করে। পরে তারা বিপরীত দিকে ভাঙে, তাই পছন্দটি আপনার যে ব্যর্থতা সহ্য করতে পারেন তার ওপর নির্ভর করে।
| Approach | Good fit | What breaks it |
|---|---|---|
Trust the issuing CA with --cafile | Internal PKI you can obtain over an already trusted channel | CA rotation, or a client that still falls back to public roots |
Pin one key with --servercert | No CA relationship, or exactly one key should ever be accepted | Any reissue that generates a new key pair |
CA ফাইলের দিকে যান যখন সার্টিফিকেট এমন কর্তৃপক্ষ থেকে আসে যা আপনি স্বাধীনভাবে যাচাই করতে পারেন, কারণ তখন নবায়নগুলো ক্লায়েন্ট আর্গুমেন্ট না ছুঁয়েই কাজ করতে থাকে। এটিকে সেই সুইচের সঙ্গে জুড়ুন যা সিস্টেম রুট নিষ্ক্রিয় করে, নইলে একটি সরকারি কর্তৃপক্ষ আপনার হয়ে যাচাইটি মেটাতে পারে। বরং পিন করুন যখন গেটওয়ের এমন CA নেই যা আপনি পেতে পারেন, বা যখন সবচেয়ে সংকীর্ণ সম্ভাব্য ব্যতিক্রমই লক্ষ্য। বিমূর্তভাবে কোনো পথই বেশি নিরাপদ নয়: CA নবায়ন জুড়ে স্কেল করে, পিন পর্যালোচনা করা সহজ।
যেটাই বেছে নিন, বিশ্বস্ত মানটি এমন চ্যানেল দিয়ে আসতে হবে যা পরিবর্তনের আগেই বিশ্বস্ত ছিল। একজন প্রশাসক, গেটওয়েতে একটি কনসোল সেশন, বা আগেই নেওয়া একটি অনুলিপি—সবই গ্রহণযোগ্য। প্রম্পট যেই ফিঙ্গারপ্রিন্ট দেখাক তা কপি করা সুবিধাজনক এবং ঠিক সেটাই যা একজন ইন্টারসেপ্টর আশা করে।
মানটি আসলে যে কমান্ড চালান তার মধ্যে রাখুন
পিনটি একটি সার্ভার-সার্টিফিকেট অপশনে যায়, আর তার উপসর্গটি এনকোডিং ঠিক করে: sha1 বা sha256-এর অধীনে হেক্সাডেসিমাল পাবলিক-কী ডাইজেস্ট, আর pin-sha256-এর অধীনে base64 কী পিন। এটি দিলে ওই চালনার জন্য সিস্টেমের বিশ্বাসও নিষ্ক্রিয় হয়, তাই পিন করা কী-ই হয়ে যায় গোটা সিদ্ধান্ত।
sudo openconnect --protocol=gp vpn.example.com --user alice \
--servercert pin-sha256:AbCdEf... # single key pin
sudo openconnect vpn.example.com --cafile /etc/ssl/internal-ca.pem --no-system-trust
ক্লায়েন্ট একটি ছাঁটা ডাইজেস্ট মেলায়, উপসর্গের পরে মাত্র চারটি অক্ষরও গ্রহণ করে, যা সুবিধা নয় বরং ফাঁদ। সংক্ষিপ্ত মান স্থানীয়ভাবে পাস করে এবং তবুও আপনি যে গেটওয়ে চেয়েছিলেন তা শনাক্ত করে না। বার্তা থেকে আবার টাইপ না করে প্রথম প্রয়াসে ক্লায়েন্ট যে পূর্ণ স্ট্রিং ছেপেছিল তা কপি করুন। তারপর সমাপ্ত অপশনটি র্যাপার স্ক্রিপ্ট, ইউনিট ফাইল বা প্রোফাইলে সরান যা সংযোগ চালু করে, যাতে বিশ্বাসের সিদ্ধান্ত পর্যালোচনাযোগ্য হয় এবং পরের সম্পাদনাগুলো ইচ্ছাকৃত হয়।
ডেস্কটপ লঞ্চার আর NetworkManager প্লাগইন সংযোগ আর্গুমেন্টের নিজস্ব অনুলিপি রাখে। ডিস্কে সম্পাদিত স্ক্রিপ্ট আগে আমদানি করা প্রোফাইলে পৌঁছায় না, তাই সংরক্ষিত মানই জিতে থাকে।
নিজেকে বাইরে আটকে না রেখে রোলওভার সামলান
অপশনটি একাধিকবার দেওয়া যায়, তাই পরিকল্পিত পরিবর্তন পুরনো ও নতুন কী একসঙ্গে গ্রহণ করতে পারে। গেটওয়ে বদলানোর আগে নতুন পিন যোগ করুন, সেশন সরে যাওয়ার সময় দুটিই তালিকায় রাখুন, আর পুরনো কী চলে গেলে অবসরপ্রাপ্তটি বাদ দিন। সেই জানালার একজন মালিক দরকার, কারণ ভুলে যাওয়া দ্বৈত পিন একটি কী-কে কেউ না দেখেই বিশ্বস্ত রেখে দেয়। নতুন কী-জোড়া তৈরি করা পুনর্নির্মাণ বিশুদ্ধ পিন ভেঙে দেয়, আর পুনরুদ্ধার হলো উল্টো দিকে একই পদ্ধতি।
পিনের পাশে পরিবর্তনের তারিখ লিখুন। পর্যালোচনার তারিখহীন পিন হলো বিভ্রান্তিকর ত্রুটি বার্তা বহনকারী ভবিষ্যতের বিভ্রাট।
বিশ্বাস সম্পাদনার আগে ক্লায়েন্ট সংস্করণ বাদ দিন
পুরোনো ক্লায়েন্ট গেটওয়ে যে প্রমাণীকরণ উত্তর বদলে দিয়েছে তা পার্স করার সময় ব্যর্থ হতে পারে, আর পৃষ্ঠের বার্তা তখনো পার্সার নয়, সংযোগের কথা বলে। ইনস্টল করা সংস্করণের সঙ্গে গেটওয়ে যা নথিভুক্ত করে তা মিলিয়ে দেখুন, আর কোনো বিশ্বাস সেটিং বদলানোর আগে একটি চলতি প্যাকেজ একবারের প্রোফাইলে পরীক্ষা করুন।
openconnect --version
মেরামতের পরে একটি নয়, দুটি জিনিস যাচাই করুন: পোর্টাল টানেল দিয়ে লোড হয়, এবং একটি সাধারণ অভ্যন্তরীণ ঠিকানা উত্তর দেয়। সম্পূর্ণ হ্যান্ডশেক কেবল প্রমাণ করে যে বিশ্বাসের সিদ্ধান্তটি গৃহীত হয়েছে।