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

দুটি ফাইল, দুটি চুক্তি

একটি OpenVPN প্রোফাইল হলো ক্লায়েন্ট কনফিগারেশন: একটি দূরবর্তী এন্ডপয়েন্ট, একটি পরিবহন, TLS উপাদান এবং রাউটিং ও পুনরায় আলোচনার নির্দেশনা। একটি SoftEther সংযোগ হলো ভার্চুয়াল হাবের বিরুদ্ধে নেটিভ ক্লায়েন্ট সেশন, যার সঙ্গে একটি ভার্চুয়াল অ্যাডাপ্টার যুক্ত থাকে।

তারা একই নেটওয়ার্কে প্রবেশ বর্ণনা করতে পারে, তবে বিনিময়যোগ্য নয়। OpenVPN লিসেনার একটি সামঞ্জস্য বৈশিষ্ট্য যা সার্ভার আলাদা পোর্টে প্রকাশ করতে পারে, এবং এটি নেটিভ প্রোটোকলের বদলে OpenVPN বলে। নেটিভ ক্লায়েন্ট নেটিভ প্রোটোকল বলে এবং নিজের প্রোফাইল আশা করে। একটি সার্ভার, দুটি দরজা, আর প্রতিটি দরজার নিজস্ব চাবি।

ফাইলের এক্সটেনশন আপনাকে প্রায় কিছুই বলে না, তাই অপারেটরের উত্তর ফাইলের নামের চেয়ে বেশি গুরুত্বপূর্ণ।

সার্টিফিকেট ব্লকে হাত দেওয়ার আগে সার্ভার পড়ুন

অপারেটরকে তিনটি জিনিস জিজ্ঞাসা করুন: কোন পোর্ট ও পরিবহন, কোন প্রমাণীকরণ পদ্ধতি, এবং তারা কোন ক্লায়েন্ট ব্যবহার করতে চায়। এই উত্তরগুলো বেশিরভাগ অনুমান দূর করে।

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

ss -lunp | grep -E ':1194|:443'
sudo ss -ltnp | grep -E ':992|:5555'
grep -nE '^(remote|proto|auth-user-pass|ca |cert |key )' profile.ovpn

লিসেনার তালিকা থেকে একটি UDP পোর্ট অনুপস্থিত থাকা ফায়ারওয়াল সমস্যা নয়, বরং একটি নিষ্ক্রিয় বৈশিষ্ট্য।

নেটিভ ক্লায়েন্টের যা দরকার আর প্রোফাইল যা দিতে পারে না

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

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

ব্যক্তিগত কী যেকোনো রূপান্তর পরিষেবা থেকে দূরে রাখুন, কারণ মেশিন ছেড়ে যাওয়া একটি কী প্রকাশিত হিসেবেই ধরতে হবে।

OpenVPN-সামঞ্জস্যপূর্ণ লিসেনার কী গ্রহণ করে

ক্লায়েন্টের দৃষ্টিকোণ থেকে সামঞ্জস্য লিসেনার একটি প্রকৃত OpenVPN সার্ভার: এটি একটি OpenVPN ক্লায়েন্ট এবং ওই ক্লায়েন্ট যে নির্দেশনাগুলো সমর্থন করে তা আশা করে। ইনলাইন সার্টিফিকেট ব্লক OpenVPN-এর বৈশিষ্ট্য, আর সেগুলো বেড়ার ওই পাশের।

এটি যা করবে না তা হলো নেটিভ SoftEther প্রোফাইল গ্রহণ করা, কারণ সেই প্রোফাইল কোনো OpenVPN কনফিগারেশন নয়। লিসেনার নেটিভ ক্লায়েন্টকে OpenVPN ক্লায়েন্টেও বদলে দেয় না। অপারেটর যদি কেবল নেটিভ পরিষেবা দেয়, উত্তর নেটিভ ক্লায়েন্ট; যদি সামঞ্জস্য লিসেনার দেয়, উত্তর OpenVPN এবং তার নিজস্ব উপাদান।

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

নির্দেশনা সম্পাদনার আগে পথটি প্রমাণ করুন

ক্লায়েন্ট বেছে নেওয়ার পর রাউটে হাত দেওয়ার আগে টানেল পরীক্ষা করুন। সফল লগইন আর ট্রাফিক বহনকারী ইন্টারফেস দুটি ভিন্ন ফলাফল।

sudo openvpn --config profile.ovpn --verb 3
ip -br addr
ip route get 10.70.4.20
resolvectl status | grep -A2 'DNS Servers'

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

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