SSTP বনাম OpenVPN: একই পোর্ট 443, ভিন্ন প্রোটোকল
SSTP পিপিপি-কে HTTPS-এর ভিতরে মুড়ে দেয় এবং Windows-এর সঙ্গে আসে। OpenVPN নিজের ক্লায়েন্ট নিয়ে আসে এবং UDP ব্যবহার করতে পারে। পোর্ট নম্বরই প্রোটোকল নয়।
দুটি বিকল্পই TCP 443-এর পেছনে বসতে পারে, তাই মানুষ ধরে নেয় এরা বিনিময়যোগ্য এন্ডপয়েন্ট। তা নয়: SSTP সার্ভার HTTPS-এর ভিতরে PPP বলে, আর একটি OpenVPN সার্ভার TLS-এর উপরে বা কাঁচা UDP প্রবাহে নিজের প্রোটোকল বলে। একটি ক্লায়েন্টকে অন্যটির পোর্টে ফেললে এমন সংযোগ তৈরি হয় যা কখনও লগইন প্রম্পটে পৌঁছায় না। পছন্দটি কোন ক্লায়েন্ট ও ট্রান্সপোর্ট আপনি সমর্থন করতে পারেন, নম্বরটি নিয়ে নয়।
একই পোর্ট মানেই একই প্রোটোকল নয়
TLS হ্যান্ডশেক সম্পন্ন হতে পারে এবং তবুও কোথাও পৌঁছাতে পারে না, কারণ এরপর ক্লায়েন্ট ও সার্ভার পরের কথাটি নিয়ে একমত হয় না। প্যাকেট ক্যাপচারে আপনি একটি পরিচ্ছন্ন হ্যান্ডশেক দেখেন, তারপর অ্যাপ্লিকেশন ডেটা যা অপর প্রান্ত প্রত্যাখ্যান বা উপেক্ষা করে। এই ধরনটি প্রোটোকল অমিলের চিহ্ন, ফায়ারওয়াল ব্লকের নয়।
নাম বদলানো প্রোফাইল বা ভিন্ন মেনু এন্ট্রি কোনোটিই একটিকে অন্যটিতে রূপান্তর করে না। SSTP সংযোগ Windows-এর VPN সেটিংস থেকে সার্ভার ঠিকানা ও অপারেটরের প্রমাণীকরণ বিবরণ দিয়ে তৈরি হয়, আর OpenVPN সংযোগের জন্য ক্লায়েন্ট ও মিলে যাওয়া কনফিগারেশন ফাইল দরকার। Microsoft-এর SSTP স্পেসিফিকেশন প্রথমটির বর্ণনা দেয়, এবং OpenVPN হ্যান্ডশেকের বর্ণনা দেয় না।
পোর্ট 443 একটি নীতি-সুবিধা। এটি এমন নেটওয়ার্ক পেরোয় যেগুলো খুব কম কিছু অনুমোদন করে, এবং এটি সত্যিকারের সুবিধা, কিন্তু এর পেছনে কোন প্রোটোকল চলছে তা কিছুই বলে না।
SSTP HTTPS-এর ভিতরে PPP টানেল করে
নামটি গঠনটাই বর্ণনা করে: HTTPS সেশনের ভিতরে বহন করা PPP ফ্রেম, অর্থাৎ নিচে TLS এবং একটি সার্টিফিকেট যা ক্লায়েন্ট যাচাই করতে পারে। Windows এটিকে নেটিভ VPN ধরন হিসেবে অন্তর্ভুক্ত করে, তাই একটি পরিচালিত ল্যাপটপ প্রায়ই অপারেটরের দেওয়া প্রোফাইল ছাড়া অতিরিক্ত সফটওয়্যার ছাড়াই সংযোগ করতে পারে।
অন্য প্ল্যাটফর্মগুলো ভিন্ন গল্প। Linux বা macOS ক্লায়েন্টের জন্য একটি রক্ষণাবেক্ষিত বাস্তবায়ন দরকার, আর সেগুলো কী সমর্থন করে ও কীভাবে ত্রুটি জানায় তা ভিন্ন। আপনি সত্যিই যে ক্লায়েন্ট ব্যবহার করতে চান সেটি যাচাই করুন, Windows-এর অন্তর্নির্মিত সামর্থ্য হস্তান্তর হবে ধরে নেবেন না, এবং প্রোফাইলের সার্ভার নাম সার্ভারের উপস্থাপিত সার্টিফিকেটের সঙ্গে মেলে কিনা নিশ্চিত করুন।
SSTP সাধারণত কেবল TCP। এই একক ট্রান্সপোর্ট ক্ষতিপূর্ণ লিঙ্কে এর আচরণকে প্রভাবিত করে, কারণ পুনঃপ্রেরণ টানেলের ভিতরেও এবং তার নিচেও ঘটে।
OpenVPN নিজের ক্লায়েন্ট ও ট্রান্সপোর্টের পছন্দ নিয়ে আসে
OpenVPN নিজের ক্লায়েন্ট ও প্রোফাইল সরবরাহ করে, যা আপনাকে এমন ডায়াগনস্টিক দেয় যা নেটিভ Windows ডায়ালগ দেখায় না। সার্ভার UDP বা TCP-তে শুনতে পারে, এবং অপারেটরের কনফিগারেশন ঠিক করে আপনার ক্লায়েন্ট কোনটি ব্যবহার করবে। ভুল ট্রান্সপোর্টে নির্দেশিত প্রোফাইল প্রমাণীকরণের আগেই ব্যর্থ হয়।
প্রমাণীকরণও সমানভাবে কনফিগারেশন-চালিত। একটি স্থাপনা কেবল সার্টিফিকেট, সার্টিফিকেটের সঙ্গে ব্যবহারকারীর নাম ও পাসওয়ার্ড, বা তার উপরে দ্বিতীয় ফ্যাক্টর দাবি করতে পারে, এবং ক্লায়েন্টকে সেই বিন্যাসের সঙ্গে হুবহু মিলতে হবে। সংযোগ TLS পর্যায়ে পৌঁছেছে এই তথ্য বলে না এরপর কোন শংসাপত্র চাইবে।
UDP স্বাভাবিক ডিফল্ট কারণ এটি একটি নির্ভরযোগ্য প্রবাহকে আরেকটি নির্ভরযোগ্য প্রবাহের ভিতরে বসানো এড়ায়। TCP মোড UDP ব্লক করা নেটওয়ার্কের জন্য আছে, এবং এটি কাজ করে, কিন্তু ভারী ক্ষতি এটিকে যে UDP পথটি প্রতিস্থাপন করেছে তার চেয়ে খারাপ মনে করাতে পারে। যখন দরকার তখন TCP বেছে নিন, বেশি নির্ভরযোগ্য শোনায় বলে নয়।
ক্লায়েন্ট, ট্রান্সপোর্ট ও সহায়তা দিয়ে বেছে নিন
তিনটি প্রশ্ন এই সিদ্ধান্তগুলোর বেশিরভাগ মীমাংসা করে। প্রতিটি ক্লায়েন্ট ডিভাইসের কি শূন্য অতিরিক্ত সফটওয়্যারে কাজ করা সংযোগ দরকার? আপনি যে নেটওয়ার্কের উপর নির্ভর করেন তা UDP অনুমোদন করে, নাকি TCP 443 একমাত্র নির্গমন? আর প্রোফাইলের মেয়াদ শেষ হলে কে ক্লায়েন্ট, তার আপডেট ও পুনরুদ্ধার সমর্থন করে?
দুটির তুলনা করার সময় একই ডিভাইসে ও একই অ্যাক্সেস নেটওয়ার্কে পরীক্ষা করুন। SSTP এন্ডপয়েন্ট ও OpenVPN এন্ডপয়েন্ট যদি ভিন্ন সার্ভার বা ভিন্ন সাইট হয়, তবে আপনার ফলাফলে প্রোটোকল আলাদা না করে সেই রুট ও মেশিনগুলোও অন্তর্ভুক্ত থাকে। এভাবেই এই তুলনাগুলো আত্মবিশ্বাসী কিন্তু ভুল উত্তর দেয়।
তারপর অন্য কিছু ডিবাগ করার আগে নিশ্চিত করুন আপনি আসলে কোনটি প্রতিষ্ঠা করেছেন:
> Get-VpnConnection -Name "Office SSTP" | Select-Object TunnelType, ServerAddress
> openvpn --config office.ovpn --verb 4
যেভাবেই হোক, টানেলের অবস্থায় সফলতা ঘোষণা না করে আপনার প্রয়োজনীয় রিসোর্স ও DNS পরীক্ষা করে শেষ করুন। উভয় প্রোটোকলই কেবল নির্বাচিত ব্যক্তিগত ট্রাফিক বহনের জন্য কনফিগার করা যায়, এবং কাজ করা নাম-রেজল্যুশন ছাড়া সংযুক্ত টানেল দেখতে ভাঙা VPN-এর মতো লাগে, অথচ সেটি আসলে স্প্লিট-টানেল বা DNS নকশা।
পরিচালিত ফ্লিটে প্রোফাইল বিতরণ ও আপডেট সমর্থন সাধারণত যেকোনো ট্রান্সপোর্ট বেঞ্চমার্কের অনেক আগেই প্রশ্নটি নিষ্পত্তি করে।