WireGuard কনফিগকে OpenVPN-এ রূপান্তর করা যায় কি?
WireGuard ফাইলের নাম বদলে OpenVPN প্রোফাইল বানানো যায় না। অপর প্রান্তকে প্রোটোকলটি বলতে হবে, তাই সমাধান মিলতি প্রোফাইল, কনভার্টার নয়।
আপনার কাছে wg0.conf আছে আর ক্লায়েন্ট শুধু .ovpn গ্রহণ করে, তাই কেউ ফাইলটি রূপান্তরের পরামর্শ দেয়। নাম বদলালে এমন প্রোফাইল হয় যা OpenVPN পড়তে পারে না, আর যত্নসহকারে ঘর ধরে ধরে অনুবাদ করলে এমন প্রোফাইল হয় যা পড়া যায় কিন্তু হ্যান্ডশেকে ব্যর্থ হয়। কারণ ফাইলের ফরম্যাট নয়। WireGuard ও OpenVPN ভিন্ন প্রোটোকল—তাদের হ্যান্ডশেক ভিন্ন, প্রমাণীকরণের মডেল ভিন্ন, আর peer বলতে কী বোঝায় সে ধারণাও ভিন্ন। রূপান্তর কেবল সেই অর্থে কাজ করে যে আপনি অপর প্রান্ত যিনি চালান তাঁর কাছ থেকে একটি OpenVPN প্রোফাইল নিতে পারেন।
আপনার ফাইলটি সংযোগ প্রোফাইল নয়, একটি peer বর্ণনা করে
WireGuard কনফিগ ছোট, কারণ প্রোটোকলটাই এমন: একটি ইন্টারফেস যাতে প্রাইভেট কী ও ঠিকানা থাকে, তারপর একটি বা একাধিক peer যাতে পাবলিক কী, endpoint ও AllowedIPs তালিকা থাকে। কনফিগ করার মতো কোনো দর-কষাকষির স্তর নেই, বাছাই করার মতো সাইফার স্যুটও নেই।
OpenVPN প্রোফাইল হলো TLS-ভিত্তিক কন্ট্রোল চ্যানেলের ক্লায়েন্ট, তাই এতে সার্টিফিকেট বা ক্রেডেনশিয়ালের রেফারেন্স আর প্রমাণীকরণ কীভাবে হবে তা বর্ণনা করা নির্দেশ থাকে।
অনুবাদ করা ফাইলও হ্যান্ডশেকে কেন ব্যর্থ হয়
WireGuard শুরু হয় Noise-ভিত্তিক হ্যান্ডশেক দিয়ে, যার চাবি peer-দের স্থির কী, আর peer-এর পাবলিক কী আগে থেকে জানা না থাকলে এটি চুপ থাকে। OpenVPN একটি TLS সেশন খোলে, সার্ভার সার্টিফিকেট বা স্থির কী যাচাই করে, তারপর ব্যবহারকারীকে সার্টিফিকেট, ব্যবহারকারীনাম ও পাসওয়ার্ড, বা দুটোই দিয়ে প্রমাণীকরণ করে। WireGuard ফাইলে এর কিছুই বর্ণিত নেই। অনুবাদ করা ফাইলে সঠিক endpoint থাকত আর বাকি সব ভুল থাকত।
ঠিকানা ও পোর্ট পুনরায় ব্যবহার করেও লাভ নেই, কারণ অপর প্রান্ত ভিন্ন প্যাকেটের জন্য অপেক্ষা করছে।
সরবরাহকারীকে কী জিজ্ঞাসা করবেন
যদি সরবরাহকারীই WireGuard ফাইল দিয়ে থাকেন, জিজ্ঞাসা করুন একই অ্যাকাউন্টের OpenVPN অ্যাক্সেস আছে কি না এবং সেই প্রোফাইল চান। অনেকেরই থাকে, আর সেটি প্রথমটির পরিবর্তিত কপি নয়, নিজস্ব ক্রেডেনশিয়াল নিয়ে আসে।
উত্তর না হলে সীমাবদ্ধতা ফাইলে নয়, সাবস্ক্রিপশনে, এবং কোনো কনভার্টার তা বদলায় না।
রাউটার বা ক্লায়েন্ট যদি শুধু OpenVPN বোঝে
যে ডিভাইসটিকে সংযোগ করতে হবে সেটি যদি কেবল OpenVPN সমর্থন করে, তবে অন্য এক্সটেনশন খোঁজার আগে অপর প্রান্তের নথিভুক্ত প্রোটোকল সমর্থন দেখে নিন। OpenVPN টার্মিনেট করা রাউটারকে ফাইল আমদানি করে WireGuard গ্রহণ করতে রাজি করানো যায় না। কাজের বিকল্প হলো সার্ভার পাশে OpenVPN endpoint, অথবা WireGuard বোঝে এমন ভিন্ন ডিভাইস।
কে অপর প্রান্ত পরিচালনা করেন তার ভিত্তিতে বাছুন, আপনার কাছে কোন ফাইল আছে তার ভিত্তিতে নয়।
সার্ভার যদি আপনি চালান, প্রোটোকলটি যোগ করুন
দ্বিতীয় প্রোটোকল সমর্থন করা মানে দ্বিতীয় সার্ভিস চালানো। Linux সার্ভারে সেটি একটি OpenVPN ইনস্ট্যান্স—নিজস্ব CA, সার্ভার সার্টিফিকেট, ক্লায়েন্ট সার্টিফিকেট এবং server ও push নির্দেশ, সঙ্গে তার পোর্টের জন্য ফায়ারওয়াল নিয়ম। বিদ্যমান WireGuard peer এন্ট্রি এসবের কোনোটিই বর্ণনা করে না। ঠিকানা পুল ও পুশ করা রুট WireGuard-এর AllowedIPs থেকে আলাদাভাবে পরিকল্পনা করুন, কারণ তারা একই ব্যবস্থার দুই নাম নয়।
তারপর ক্লায়েন্ট থেকে যাচাই করুন: প্রোফাইল লোড হয়, TLS সেশন সম্পূর্ণ হয়, পুশ করা রুট দেখা যায়, আর ট্রাফিক এমন হোস্টে পৌঁছায় যা কেবল টানেল দিয়েই পৌঁছানো যায়।
কনভার্টারের ধারণা কোথায় নিরাপদ
মানগুলো হাতে লিখে নোট বানানো ঠিক এবং প্রায়ই কাজে লাগে, কারণ endpoint, ঠিকানাগুলো ও peer-এর পাবলিক কী কেবল স্থাপনার তথ্য। তবে প্রাইভেট কী এমন ওয়েবসাইটে আপলোড করা ঠিক নয় যা রূপান্তরের প্রতিশ্রুতি দেয়, কারণ সেই কী-ই ক্রেডেনশিয়াল আর সেই সার্ভিসের কাছে রূপান্তর করার কোনো প্রোটোকল নেই। OpenVPN ক্লায়েন্ট থেকে একই অ্যাক্সেস দরকার হলে বরং OpenVPN ক্রেডেনশিয়াল চান।
দুটি কনফিগ পাশাপাশি রাখুন এবং আলাদা অ্যাক্সেস পথ হিসেবে দেখুন, কারণ তারা তাই।