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

একই উৎস থেকে পাওয়া শেল স্ক্রিপ্ট যেভাবে পড়তেন, সেভাবেই এটি পড়ুন।

এটি আপনার নয়, ক্লায়েন্টের ব্যাখ্যা

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

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

একবার সংযোগের পরেই রাউটিং পরিবর্তন দেখা যায়

ফুল-টানেল প্রোফাইল এমন রুট বসায় যা সবকিছু গেটওয়ে দিয়ে পাঠায়, আর স্প্লিট-টানেল প্রোফাইল কেবল নির্বাচিত প্রিফিক্স পাঠায়। কিছু প্রোফাইল একটি DNS সার্ভারও ঠেলে দেয়, যা চুপচাপ বদলে দেয় কে আপনার কোয়েরি দেখে। এর কোনোটিই নিজে থেকে ক্ষতিকর নয়, আর কোনোটিই ফাইলের নাম দেখে বোঝা যায় না।

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

বিশ্বাসের উপকরণ ও হুকরাই আসল ভার বহন করে

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

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

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

উৎস যাচাই করুন, তারপর গোপন তথ্য দিন

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

grep -nE '^(remote|proto|auth-user-pass|redirect-gateway|route|route-nopull)' office.ovpn
grep -nE '^(up|down|plugin|script-security|setenv)' office.ovpn
openssl x509 -in embedded-ca.crt -noout -subject -issuer -dates

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

ডাউনলোড নয়, ইমপোর্ট করা কপিটি সরান

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

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

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