গত সপ্তাহে এক সহকর্মী তাঁর iPhone আমার দিকে বাড়িয়ে দিলেন, সেটিংসে দুটি VPN এন্ট্রি ছিল: একটি প্রোভাইডার অ্যাপের রেখে যাওয়া, অন্যটি সহায়তা পৃষ্ঠা থেকে পেস্ট করা IKEv2 প্রোফাইলের। এগুলি একই জিনিসের প্রতিদ্বন্দ্বী সংস্করণ নয়। প্রোভাইডার অ্যাপ একটি ধারক যা নিজের টানেল কোড বহন করতে পারে, আর Apple-এর অন্তর্নির্মিত ক্লায়েন্ট একটি IKEv2 ক্লায়েন্ট, যা হাতে বা প্রোফাইল দিয়ে কনফিগার করা হয়। প্রোটোকল, ক্রেডেনশিয়াল পরিচালনা, ডিভাইস নিয়ন্ত্রণ ও পুনরুদ্ধারই পছন্দ নির্ধারণ করে।

অ্যাপ ও নেটিভ ক্লায়েন্ট ভিন্ন স্তরে অবস্থান করে

Apple-এর অন্তর্নির্মিত VPN ক্লায়েন্ট কার্যত একটি IKEv2 ক্লায়েন্ট। হাতে পূরণের ফর্মটি এখনও অপ্রচলিত IPsec-এর উপর L2TP ও Cisco IPsec বিকল্পের তালিকা দেয়, কিন্তু প্রোভাইডার ট্রান্সপোর্টের জন্য কোনো ক্ষেত্র নেই এবং OpenVPN বা WireGuard কনফিগারেশন পেস্ট করার জায়গা নেই। আপনি হয় সেটিংস > সাধারণ > VPN & ডিভাইস ব্যবস্থাপনায় ফর্ম পূরণ করেন, নয় VPN পেলোডসহ প্রোফাইল আমদানি করেন; পৃষ্ঠতল হলো একটি সার্ভার ঠিকানা, দুটি পরিচয়, একটি প্রমাণীকরণ পদ্ধতি এবং ঐচ্ছিক অন-ডিমান্ড নিয়ম।

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

পরিণাম বাস্তব: .ovpn বা WireGuard ফাইল ওই ক্ষেত্রগুলির প্রতিস্থাপন নয়, কারণ হ্যান্ডশেক ভিন্ন প্রোটোকল।

বৈশিষ্ট্য তুলনার আগে পেলোড পড়ুন

যখন প্রোফাইল IKEv2, পেলোডের কীগুলি যেকোনো বৈশিষ্ট্য-তুলনার চেয়ে বেশি ব্যর্থতা ব্যাখ্যা করে। Apple-এর IKEv2 সেটিংস রেফারেন্স প্রতিটি কী নথিভুক্ত করে; ছাঁটা পেলোড এমন দেখায়:

<key>VPNType</key><string>IKEv2</string>
<key>RemoteAddress</key><string>vpn.example.net</string>
<key>RemoteIdentifier</key><string>vpn.example.net</string>
<key>LocalIdentifier</key><string>[email protected]</string>
<key>AuthenticationMethod</key><string>Certificate</string>
<key>ServerCertificateIssuerCommonName</key><string>Example Issuing CA</string>

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

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

অ্যাপ যা করতে পারে আর নেটিভ ক্লায়েন্ট পারে না

প্রোটোকল নির্বাচন সুস্পষ্ট সুবিধা। যদি আপনার সার্ভার WireGuard বা OpenVPN বলে, অ্যাপই একমাত্র iOS ক্লায়েন্ট যা এটি ব্যবহার করতে পারে, এবং নেটিভ ফর্ম সম্পাদনা এ নিয়ে দরকষাকষি করবে না। অ্যাপ গন্তব্য বা অ্যাপ অনুযায়ী বিভক্ত টানেল, নিজস্ব DNS পরিচালনা, kill switch ধরনের বাধা, সার্ভার নির্বাচন এবং নিজের নেটওয়ার্কের সঙ্গে মিলিয়ে পুনঃসংযোগও প্রয়োগ করতে পারে।

মূল্য হলো এমন সফটওয়্যার যা আপনি অডিট করেননি এবং যা নেটওয়ার্ক এক্সটেনশনের বিশেষাধিকারে চলে। গুণমান স্টোর কার্ডের ইঙ্গিতের চেয়ে বেশি ওঠানামা করে: একটি অ্যাপ পরিষ্কারভাবে পুনঃসংযোগ করে অন্যটি নেটওয়ার্ক বদলের পর কয়েক সেকেন্ড ফাঁস করে, এবং অ্যাপের ভিতরের kill switch সেই অ্যাপের বৈশিষ্ট্য, iOS-এর নয়। ব্যবস্থাপিত ডিভাইসে আগে অনুমোদিত তালিকা দেখুন।

অন্তর্নির্মিত IKEv2 প্রোফাইল কী সঠিক করে

কম চলমান অংশই পুরো যুক্তি। IKEv2 ক্লায়েন্ট ও তার IPsec স্ট্যাক সিস্টেমের সঙ্গে আসে, তাই ক্র্যাশ করার মতো এক্সটেনশন নেই, প্রতিটি অ্যাপের জন্য জীবিত রাখার প্রক্রিয়া নেই, এবং আপনার ও কার্যকর টানেলের মধ্যে তৃতীয় পক্ষের হালনাগাদের চক্র নেই। প্রোফাইল লকও করা যায়: তত্ত্বাবধানে থাকা ডিভাইসে ব্যবহারকারী ব্যবস্থাপনা যা ইনস্টল করেছে তা সরাতে পারে না, এবং ব্যবহারকারীর সুইচ ছাড়াই যেকোনো নেটওয়ার্কে পুনঃসংযোগ করা Always On VPN কেবল সেই তত্ত্বাবধানে থাকা, প্রোফাইল-ব্যবস্থাপিত রূপেই বিদ্যমান।

অন্তর্নির্মিত পথ যা দেয় না তা নমনীয়তা। ব্যবস্থাপিত অ্যাপ ছাড়া প্রতি-অ্যাপ VPN নেই, ব্যবহারকারীর জন্য kill switch নেই, এবং IPsec অবরুদ্ধকারী নেটওয়ার্কে HTTPS-এর মতো দেখতে ট্রান্সপোর্ট নেই। UDP 500 ও 4500 ফেলে দেওয়া হোটেল নেটওয়ার্কে অন্তর্নির্মিত IKEv2-এর কোনো বিকল্প পথ নেই।

বেশিরভাগ ক্ষেত্রে নিষ্পত্তি করা একটি সিদ্ধান্ত সারণি

বাস্তবে প্রোটোকলের প্রশ্ন বৈশিষ্ট্য গুরুত্বপূর্ণ হওয়ার আগেই বেশিরভাগ ক্ষেত্রে নিষ্পত্তি করে।

What you were givenDevice situationWhat to use
An .ovpn or WireGuard configPersonal phoneProvider app; the native form cannot load it
IKEv2 host plus CA namePersonal or managedProfile, or the app's own IKEv2 mode
IKEv2 with username and secretPersonal phoneEither; the profile is simpler if you never switch servers
A management-installed profileSupervised, MDMNative client; do not add a second app entry
A per-app tunnelling requirementPersonal phoneApp, or accept a full tunnel; iOS cannot split by app without management
IPsec blocked on your main networkAnyApp with a transport that survives the block

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

একটি পরীক্ষায় পছন্দ যাচাই করুন

ব্যর্থতার ধরণগুলি পরীক্ষা করুন, সংযোগ বোতাম নয়। একবার সংযোগ করুন, VPN সূচক দেখা যায় কি না নিশ্চিত করুন, তারপর এমন পৃষ্ঠা খুলুন যা আপনার সার্বজনীন ঠিকানা ফেরত দেয় এবং আগেরটির সঙ্গে তুলনা করুন। VPN স্পর্শ না করে Wi-Fi থেকে মোবাইল ডেটায় যান এবং পুনঃসংযোগ লক্ষ্য করুন, তারপর ফোনটিকে এয়ারপ্লেন মোডে নিয়ে যান। পুনরায় চালু করুন এবং দেখুন টানেল নিজে থেকে ফেরে কি না: OnDemandEnabled থাকা প্রোফাইল ফেরা উচিত, অথচ অনেক অ্যাপ আগে খুলতে হয়।

যখন তা ফেরে না, ব্যর্থতাটিকে টানেল আদৌ আছে কি না তার ভিত্তিতে ভাগ করুন। VPN সূচক না থাকা মানে টানেল কখনও ওঠেনি: হয় হ্যান্ডশেক RemoteIdentifier, পিন করা CA বা ক্রেডেনশিয়ালে ব্যর্থ হয়েছে, নয় সংযোগের চেষ্টাই হয়নি কারণ অন-ডিমান্ড নিয়ম মেলেনি এবং কোনো অ্যাপ তা শুরু করেনি। সূচক থাকলেও ট্র্যাফিক ব্যর্থ হলে তা রাউটিং, DNS বা সার্ভার-পক্ষীয় নীতি, এবং ক্লায়েন্ট পুনঃস্থাপন এর কোনোটিকেই স্পর্শ করে না।

ডিভাইসটি পরের ব্যক্তির কাছে ব্যাখ্যাযোগ্য রাখতে একটি ছোট তালিকা:

  • একটি VPN এন্ট্রি, দুটি নয়;
  • প্রোফাইল বা অ্যাপ যে সার্ভারের সঙ্গে সংযোগ করে তার নামে;
  • পরিচয়ের মান যেখানে পাবেন সেখানে লেখা।

সারণির প্রোটোকল সারি দিয়ে শুরু করুন, এবং যদি তা প্রশ্নের উত্তর দেয় তবে সেখানেই থামুন।

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