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

ক্লায়েন্ট ফাইল দিয়ে নয়, অ্যাক্সেস চুক্তি দিয়ে শুরু করুন

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

একটি অফিস উদাহরণ আকৃতিটা স্পষ্ট করে: 10.60.0.0/16-এ অ্যাপ্লিকেশন সার্ভার, corp.example-এর অধীনে প্রাইভেট নাম, 10.61.0.53-এ একটি অভ্যন্তরীণ রিজলভার, আর ডিভাইস যে পথ আগে থেকেই ব্যবহার করে সেখানেই সাধারণ ব্রাউজিং রাখা। শেষ জিনিসটি ক্লায়েন্টের ডিফল্ট নয়, নীতিগত সিদ্ধান্ত, এবং কেউ অন্যথা না বললে বেশ কয়েকটি ক্লায়েন্ট সবকিছু টানেল দিয়ে পাঠাবে। চুক্তিটি তারিখ ও মালিকসহ লিপিবদ্ধ করুন, কারণ সেই রেকর্ডই পরে আপনাকে জানাবে টানেল বদলেছে নাকি নীতি বদলেছে।

এমন একটি প্রোটোকল ও একটি প্রমাণীকরণ জোড়া বেছে নিন যা আপনি রক্ষা করতে পারেন

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

ডিপ্লয়মেন্ট গাইড লেখার আগেই প্রতিটি লক্ষ্য প্ল্যাটফর্মে জোড়াটি পরীক্ষা করুন, পরে নয়। যে গেটওয়ে EAP-MSCHAPv2 ও EAP-TLS দুটোই দেয়, সেটি আপনাকে পিছিয়ে পড়ার জায়গা দেয়, তবে শর্ত হলো পিছিয়ে পড়াটি ঘটনার সময় আবিষ্কৃত না হয়ে সমর্থিত হিসেবে নথিভুক্ত থাকতে হবে। দুটি সমর্থিত পথ সস্তা বীমা; একটি অনথিভুক্ত তৃতীয় পথ ভবিষ্যতের টিকিট।

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

চুক্তি থেকে প্রতিটি প্ল্যাটফর্মের জন্য একটি আর্টিফ্যাক্ট তৈরি করুন

Windows একটি VPNv2 প্রোফাইল নেয়, যা MDM দিয়ে দেওয়া হয় বা Add-VpnConnection ও তার XML পেলোড দিয়ে স্থানীয়ভাবে তৈরি হয়। যে অংশগুলো কামড়ায় তা হলো স্কোপ ও বিশ্বাস। ডিভাইস-স্কোপড প্রোফাইল ও ইউজার-স্কোপড প্রোফাইল আলাদা স্টোরে ইনস্টল হয়, তাই ক্লায়েন্টের প্রয়োজনীয় সার্টিফিকেটকে আপনার বেছে নেওয়া স্কোপের সঙ্গে মেলা স্টোরেই থাকতে হবে। এই জোড়া ভুল হলে এমন প্রোফাইল তৈরি হয় যা পরিষ্কারভাবে ইমপোর্ট হয়, তারপর প্রথম সংযোগেই ব্যর্থ হয়।

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

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

তিনটি আর্টিফ্যাক্ট ফরম্যাটে আলাদা, কিন্তু প্রত্যেকটি একই পাঁচটি চুক্তি-লাইন এনকোড করে। একটি আর্টিফ্যাক্ট শেষ হয়েছে কি না তার পরীক্ষা এটাই: প্রতিটি লাইন কোথাও উপস্থাপিত, আর পথে বাড়তি কিছু বানানো হয়নি।

PlatformArtifactCheck before handoff
WindowsVPNv2 profile or Add-VpnConnectionScope matches certificate store
macOSManaged VPN payload plus certificate payloadBoth payloads present in one profile
LinuxNetworkManager connection with strongSwan backendPlugin package installed on the image

পরিষ্কার অ্যাকাউন্টে রুট, রিজলভার ও পুনঃসংযোগ যাচাই করুন

সংযুক্ত থাকাই গ্রহণযোগ্যতার পরীক্ষা নয়। Windows-এ Get-VpnConnection প্রোফাইল দেখায় আর route print দেখায় প্রাইভেট প্রিফিক্স টানেল ইন্টারফেসে পৌঁছেছে কি না। macOS-এ scutil --nc list সক্রিয় সেবা নিশ্চিত করে, আর scutil --dns দেখায় সিস্টেম আসলে যে রিজলভার ক্রম ব্যবহার করবে।

Linux-এ nmcli connection show --active প্রমাণ করে সংযোগ চালু আছে এবং resolvectl status প্রতি লিঙ্কে DNS দেখায়। সংযোগ ফাইলে থাকা রিজলভার প্রতি-লিঙ্ক আউটপুটে না থাকলে বোঝায় স্প্লিট DNS প্রয়োগ হচ্ছে না। এটাই নাম রিজলভ হওয়া আর টানেল দিয়ে নাম রিজলভ হওয়ার পার্থক্য, এবং এটি বদলে দেয় পরের ধাপ কোন সাপোর্ট দলের। সংযোগ ওঠার আগে ও পরে প্রতি-লিঙ্ক আউটপুট মিলিয়ে দেখুন, কেবল পরে নয়।

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

প্যাকেজের সংস্করণ রাখুন এবং রোলব্যাক পথ সংরক্ষণ করুন

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

প্রতিটি প্ল্যাটফর্মের আগের প্যাকেজ পৌঁছানোযোগ্য রাখুন, আর তার পাশে অপসারণের কমান্ড লিখুন। VPN প্রোফাইল আনইনস্টল করা Windows, macOS বা Linux-এ ইনস্টল করার আয়না-চিত্র নয়, আর পার্থক্যগুলো সবচেয়ে খারাপ সময়ে দেখা যায়। একটি অতিরিক্ত ডিভাইসে একবার অপসারণের মহড়া দিন, যাতে আর্কাইভটি প্রত্যাশার বদলে পরিকল্পনা হয়।

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