এক ফোনে দুটি VPN: অ্যাপের সংখ্যা নয়, বিন্যাস বেছে নিন
সুইচিং, প্রোফাইল পৃথকীকরণ ও নেস্টেড চেইন তিনটি ভিন্ন নকশা। অ্যাপের একই মুহূর্তের প্রয়োজন অনুযায়ী বেছে নিন, তারপর MTU ও পথ যাচাই করুন।
দুটি VPN ব্যবহার করা একটিই অনুরোধ নয়। এর অর্থ হতে পারে দুটি প্রতিষ্ঠানে একের পর এক পৌঁছানো, কাজ ও ব্যক্তিগত অ্যাপ আলাদা রাখা, বা একটি টানেল আরেকটির ভিতরে চালানো। Android এই তিনটি ক্ষেত্রকে সম্পূর্ণ ভিন্নভাবে সামলায়, আর ফোনে ইনস্টল করা VPN অ্যাপের সংখ্যা কোনো স্থাপত্য নয়। যে প্রশ্নটি এদের আলাদা করে তা সহজ: একই অ্যাপের জন্য কি একই মুহূর্তে দুটি পথ থাকতে হবে?
তিনটি বিন্যাস, একটি প্রশ্ন
যদি উত্তর না হয়, কারণ দুটি নেটওয়ার্ক আলাদা সময়ে ব্যবহৃত হয়, তাহলে আপনার দরকার ইচ্ছাকৃত সুইচ। যদি উত্তর না হয় কারণ অ্যাপগুলো নিজেরাই আলাদা, তাহলে আপনার দরকার প্রোফাইল পৃথকীকরণ, যেখানে প্রতিটি অ্যাপ সেই কনটেক্সটে থাকে যা তার টানেলের মালিক। যদি উত্তর হ্যাঁ হয় এবং একটি পথকে অন্যটিকে শারীরিকভাবে বহন করতে হয়, তাহলে আপনার দরকার চেইন, আর তিনটির মধ্যে এটিই একমাত্র যেখানে ক্রম নকশার অংশ।
বাকি সবকিছু সেই পছন্দ থেকেই আসে। সুইচের একটি রূপান্তর-জানালা থাকে, পৃথকীকরণের একটি নীতি-সীমানা থাকে, আর চেইনের অতিরিক্ত ব্যয় ও নির্ভরতার খরচ থাকে। ভুলটি বেছে নিলে সেটি পরিষ্কারভাবে ব্যর্থ হয় না; এটি এমন একটি ফোন তৈরি করে যা সংযুক্ত দেখায় আর এমন একটি অ্যাপ যা কিছুই পৌঁছাতে পারে না।
একটি ব্যবহারকারী কনটেক্সটের ভিতরে সুইচিং
Android প্রতি ব্যবহারকারীর জন্য একটি সক্রিয় VPN সেবা অনুমোদন করে। একই কনটেক্সটে দ্বিতীয় VPN অ্যাপ চালু করলে প্রথমটি প্রতিস্থাপিত হয় বা সরাসরি প্রত্যাখ্যাত হয়; এটি কখনোই দুটি রুট সেট একত্র করে না, এবং তাদের এনক্রিপশন অবশ্যই স্তূপ করে না। এক ব্যবহারকারীর ভিতরে দুটি টানেল একটি ক্রম, কোনো যোগফল নয়।
এটি কার্যকর যখন অ্যাক্সেস সত্যিই ধারাবাহিক। প্রোফাইলগুলোর এমন নাম দিন যাতে সক্রিয়টি স্পষ্ট হয়, সুইচ করার আগে সংবেদনশীল সবকিছু শেষ করুন, এবং একটি ছোট জানালা আশা করুন যেখানে কোনো পথই সম্পূর্ণ প্রতিষ্ঠিত নয়। ব্রাউজার ট্যাব বন্ধ করা সেশন শেষ করার সমান নয়: ট্যাবটি তার অ্যাকাউন্ট অবস্থা ধরে রাখতে পারে এবং নতুন বেছে নেওয়া নেটওয়ার্ক দিয়ে পরের অনুরোধ পাঠাতে পারে, আর ঠিক এটাই সেই ফাঁস যা মানুষ পরে লক্ষ করে।
সুইচিং আপনাকে যা দিতে পারে না তা হলো এমন একটি মেশিন যা একইসঙ্গে দুটি নেটওয়ার্কে আছে। যদি কোনো অ্যাপের প্রতিটি দিক থেকে একটি ব্যক্তিগত ঠিকানা দরকার হয়, তবে ক্লায়েন্টের কোনো শৃঙ্খলা তা তৈরি করবে না।
প্রোফাইল অনুযায়ী পৃথকীকরণ
একটি পরিচালিত কাজের প্রোফাইল হলো আলাদা ব্যবহারকারী, যার নিজের অ্যাপ, কীস্টোর ও নেটওয়ার্ক নীতি থাকে। একটি কাজের মেইল ক্লায়েন্ট প্রতিষ্ঠানের টানেল ব্যবহার করতে পারে, অথচ একটি ব্যক্তিগত ব্রাউজার ব্যক্তিগত টানেল ব্যবহার করে, এবং দুটিই একই সময়ে সংযুক্ত থাকতে পারে কারণ তারা একই কনটেক্সটে নেই যেটি স্লটের জন্য প্রতিযোগিতা করে।
পৃথকীকরণই সীমাও। ব্যক্তিগত ব্রাউজার কাজের টানেল ধার নেয় না, কাজের DNS প্রত্যয় দেখে না, এবং কেবল দুটি সেবা সংযুক্ত দেখাচ্ছে বলে কাজের নেটওয়ার্কে পৌঁছায় না। কেউ যখন জানায় যে একটি লিংক খুলছে না, তখন যেকোনো VPN স্পর্শ করার আগে দেখুন অ্যাপের কোন কপি সেটি সামলেছে এবং কোন প্রোফাইল সেই অ্যাকাউন্টের মালিক।
সীমানাটিকে স্থির ধরে নিন। নিয়োগকর্তার রাউটিং সিদ্ধান্ত এড়াতে দ্বিতীয় প্রোফাইল তৈরি করা বা কাজের প্রোফাইল সরানো ঠিক সেই পৃথকীকরণটিই ধ্বংস করে যা বিন্যাসটিকে কাজ করিয়েছিল, আর পরিচালিত ডিভাইসে এটি সাধারণত কনফিগারেশন বদল নয়, নীতি লঙ্ঘন।
চেইন, যেখানে ক্রমই নকশা
চেইন হলো সেই বিন্যাস যা মানুষ সাধারণত বোঝায় যখন বলে দুটিই একসঙ্গে: ফোনের টানেল রাউটারের টানেলের ভিতরে চলে। এটি কাজ করতে পারে, আর সীমাবদ্ধতাগুলো নির্দিষ্ট। বাইরের প্রদানকারীকে ফোনের VPN এন্ডপয়েন্ট পর্যন্ত একটি কার্যকর পথ অনুমোদন করতে হবে, যার অর্থ UDP-ভিত্তিক প্রোটোকলের ক্ষেত্রে বাইরের সেবাটি সেই ট্রাফিক ব্লক বা থ্রটল করতে পারবে না।
কে কী দেখে তা বুঝুন। বাইরের প্রদানকারী ভিতরের এন্ডপয়েন্টের দিকে একটি সংযোগ দেখে। ভিতরের প্রদানকারী বাইরের এক্সিট থেকে ফোনের ট্রাফিক পায় এবং তা সামনে পাঠায়। চূড়ান্ত গন্তব্য সাধারণত ভিতরের সেবার এক্সিট দেখে, আর চেইনের কোনো প্রদানকারীই অন্ধ নয়; অ্যাপ্লিকেশন অ্যাকাউন্ট পথ যাই হোক ব্যবহারকারীকে চিহ্নিত করে।
ব্যবহারিক খরচ আশা করুন। প্রতিটি স্তর এনক্যাপসুলেশন যোগ করে, তাই কার্যকর MTU কমে যায় এবং একটি টানেলের জন্য উপযুক্ত মান এখন খণ্ডিত হয় বা আটকে যায়, যতক্ষণ না ভিতরের টানেলের MTU রক্ষণশীলভাবে সেট করা হয়। দুটি স্তর মানে দুটি ব্যর্থতা-নির্ভরতা ও দুই সেট কিপঅ্যালাইভও, আর ক্ষয়প্রবণ বাইরের লিংকের ওপর TCP-ভিত্তিক ভিতরের টানেল এমনভাবে আটকে যেতে পারে যা মৃত সার্ভারের মতো দেখায়।
সবচেয়ে গুরুত্বপূর্ণ, চেইন দুটি ব্যক্তিগত নেটওয়ার্ক একত্র করে না। রুট, ওভারল্যাপিং প্রিফিক্স, DNS রেজলিউশন ও অ্যাক্সেস নিয়ম আলাদা সিদ্ধান্তই থাকে, আর একটি VPN বহনকারী রাউটার আর একটি VPN বহনকারী ফোন ফোনটিকে দুটি ঠিকানা-স্থানই দেয় না।
ডিবাগ করার আগে নকশাটি যাচাই করুন
বিন্যাসটি এক বাক্যে লিখুন এবং ব্যর্থ হওয়া অ্যাপের বিরুদ্ধে তা পরীক্ষা করুন। ধারাবাহিক অ্যাক্সেসে একবারে একটি টানেল দেখানো উচিত; প্রোফাইল পৃথকীকরণে প্রতিটি অ্যাপকে তার নিজের ব্যবহারকারীতে দেখানো উচিত; চেইনে দেখানো উচিত ভিতরের টানেলটি ভৌতটির বদলে বাইরের ইন্টারফেসের ওপর প্রতিষ্ঠিত হচ্ছে।
adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpnযদি রুট অনুসন্ধান ভৌত ইন্টারফেসের নাম বলে, অথচ একটি অ্যাপ টানেল আশা করে, তবে নকশা ও অ্যাপ কনটেক্সট একমত নয়, এবং কোনো অতিরিক্ত VPN অ্যাপ তাদের মিলিয়ে দেবে না। রাউটিংয়ের বদলে নীতির বিস্তারিত দরকার হলে পরিচালিত প্রোফাইলের ডকুমেন্টেশন পৃথকীকরণের নিয়মগুলো কভার করে।