শুধু অন্তর্ভুক্তি না শুধু বাদ দেওয়া স্প্লিট টানেলিং: কোনটি ডিফল্ট?
তালিকা তৈরির আগেই ডিফল্ট ঠিক করুন: শুধু যেগুলোর নাম দিয়েছেন সেগুলোই টানেল করুন, নয়তো সবকিছু টানেল করে ব্যতিক্রমগুলো বাদ দিন। তারপর এমন অ্যাপ পরীক্ষা করুন যা কেউ তালিকায় রাখেনি।
আপনার VPN ক্লায়েন্টের রাউটিং অংশটি খুললে দেখবেন দুটি ভিন্ন আকৃতির নিয়ন্ত্রণ, যারা প্রায়ই একই লেবেল পরে থাকে। একটি আপনাকে বলে টানেলে যেসব গন্তব্য থাকবে সেগুলোর তালিকা করুন, আর বাকি সবকিছু স্থানীয় নেটওয়ার্কই ব্যবহার করতে থাকবে। অন্যটি ধরে নেয় সবকিছুই টানেলের ভেতর দিয়ে যাচ্ছে এবং জিজ্ঞেস করে কী কী বাইরে কেটে নিতে হবে। দুটিই প্রথম পরীক্ষাতেই কাজ করা টানেল দেয়, আর দুটিই তালিকায় লাইন যোগ করে রক্ষণাবেক্ষণ করা হয়, তাই কেউ নতুন কিছু ইনস্টল না করা পর্যন্ত পার্থক্যটি অদৃশ্য থাকে।
এই সিদ্ধান্তটি একটি ডিফল্ট, কোনো ফিচার নয়। তালিকায় বিশটি এন্ট্রি হওয়ার আগেই এটি ঠিক করে নিন।
ডিফল্টটি ব্রোশিওর থেকে নয়, ক্লায়েন্ট থেকেই পড়ুন
WireGuard সিদ্ধান্তটিকে অস্বাভাবিকভাবে দৃশ্যমান করে, কারণ AllowedIPs হলো একটি অন্তর্ভুক্তি তালিকা, আর কিছু নয়। 0.0.0.0/0, ::/0 থাকা পিয়ার সবকিছু টানেল করে; 10.20.0.0/16 থাকা পিয়ার শুধু সেটুকুই টানেল করে। বাদ দেওয়ার কোনো সিনট্যাক্স নেই, তাই একটি সাবনেট বাইরে রাখতে চাইলে হয় বাকি সব প্রিফিক্স গুনে লিখতে হবে, নয়তো ইন্টারফেসের বাইরে পলিসি রাউটিং যোগ করতে হবে।
OpenVPN উল্টো দিক থেকেই একই জায়গায় পৌঁছায়: redirect-gateway def1 একটি পূর্ণ টানেল বসায়, আর স্পষ্ট route নির্দেশ নির্দিষ্ট প্রিফিক্স যোগ করে বা সেগুলোকে ছাপিয়ে যায়। বাণিজ্যিক ক্লায়েন্ট সাধারণত দুটোকেই একটি চেকবক্স ও একটি গন্তব্য তালিকার পেছনে লুকিয়ে রাখে, তাই লেবেলে ভরসা করার আগে পড়ুন তালিকাটি আসলে কোনটি সম্পাদনা করে।
যে প্রশ্নটি করা দরকার তা চেকবক্সের নাম নয়। প্রশ্নটি হলো, যে প্যাকেটের গন্তব্য দুই তালিকার কোথাও নেই তার কী হয়। এটির লিখিত উত্তর দিন, বাকি কনফিগারেশন উত্তর থেকেই আসবে। প্রশ্নটি এড়িয়ে গেলে প্রথম ব্যাখ্যাহীন ব্যর্থতাটি সেদিন যে ক্লায়েন্টের সবচেয়ে কাছে থাকবে সে-ই ঠিক করবে।
কেউ তালিকায় না রাখা একটি অ্যাপ অনুসরণ করুন
শুধু অন্তর্ভুক্তির নকশায় ওই অ্যাপটি সরাসরি, স্থানীয় নেটওয়ার্কে, স্থানীয় DNS নিয়ে যায়। শুধু বাদ দেওয়ার নকশায় এটি টানেলের ভেতর দিয়ে যায়, সার্ভার যা অনুমোদন করে তার সাপেক্ষে, আর এটাই প্রায়ই নতুন একটি SaaS টুল প্রথম দিনেই কাজ করার সঙ্গে আর VPN এটি নষ্ট করেছে বলে টিকিটের পার্থক্য।
কোনো ডিফল্টই নিজে থেকে বেশি নিরাপদ নয়। শুধু অন্তর্ভুক্তি টানেল যা বহন করে তা সংকুচিত করে এবং স্থানীয় নেটওয়ার্ককে সবচেয়ে কম বাধার পথ বানায়; শুধু বাদ দেওয়া টানেলকে স্বাভাবিক পথ ধরে নেয় এবং ব্যতিক্রমগুলোকে ব্যতিক্রম হিসেবেই দেখে, যা অধিকাংশ কর্পোরেট নীতি আসলে যা বোঝায় তার কাছাকাছি।
| Question | Include-only | Exclude-only |
|---|---|---|
| Unlisted new app | goes direct | goes through the tunnel |
| A site that breaks over the VPN | add it to the list | carve it out |
| Internal names still resolve | only if routed and served | usually, until split DNS says otherwise |
| Upkeep | one entry per internal service | one entry per misbehaving public service |
প্ল্যাটফর্মটি কোন ধরনের বস্তু তালিকাভুক্ত করে তা খেয়াল করুন
Android-এ VpnService.Builder অনুমোদিত অ্যাপের তালিকা ও নিষিদ্ধ অ্যাপের তালিকাকে দুটি আলাদা মডেল হিসেবে প্রকাশ করে, আর প্রতি-অ্যাপ নিয়ম গন্তব্য নয়, প্যাকেজ দিয়ে বেছে নেয়। এমন তালিকায় রাখা ব্রাউজার তার খোলা প্রতিটি গন্তব্য বহন করে, যা রাউট টেবিলের চেয়ে ভিন্ন সূক্ষ্মতা এবং কাজ করা অ্যাপের ভেতরে একটি নষ্ট সাইট ঠিক করতে পারে না।
ডেস্কটপ ক্লায়েন্ট সাধারণত দুই ধরনকেই একটি ইন্টারফেসে মেশায়, তাই দেখুন আপনি যে সারি যোগ করছেন সেটি প্যাকেজ, হোস্টনেম, নাকি প্রিফিক্স। এরা ভিন্নভাবে ব্যর্থ হয় এবং ভিন্ন জায়গায় সমাধান হয়। হোস্টনেমের সারি সাধারণত একটি রাউট প্লাস একটি নাম হয়ে যায়, আর প্যাকেজের সারি ক্লায়েন্টের ভেতরে একটি পলিসি সিদ্ধান্ত হয়ে যায়। কোনটি যোগ করলেন লিখে রাখুন, কারণ পরে এটি ডিবাগ করা ব্যক্তি অন্যটিই ধরে নেবে।
শুধু সফল পথ নয়, ব্যর্থতার অবস্থাও পরীক্ষা করুন
টানেল থেকে বাদ দেওয়া অ্যাপ স্বয়ংক্রিয়ভাবে পরিষ্কার সরাসরি অ্যাক্সেস পায় না। ক্লায়েন্ট যদি VPN ছাড়া ব্লক করার নিয়মও প্রয়োগ করে, তবে বাদ দেওয়া ট্রাফিক সম্পূর্ণ ফেলে দেওয়া হতে পারে, যা রাউটিং সিদ্ধান্তের বদলে নষ্ট অ্যাপের মতো দেখায়। ব্যবহারকারীর রিপোর্ট থেকে জানার বদলে ওই পরিস্থিতিটি ইচ্ছাকৃতভাবে পরীক্ষা করুন।
তারপর DNS ও IPv6 আলাদা আলাদা বিষয় হিসেবে দেখুন। যে টানেল কেবল IPv4 বহন করে, সে v6-সক্ষম অ্যাপের জন্য তার চারপাশ দিয়ে যাওয়ার পথ রেখে দেয়, আর স্প্লিট DNS ঠিক করে টানেলের বাইরের ট্রাফিকের জন্য অভ্যন্তরীণ নামগুলো সমাধান হয় কি না। তালিকাভুক্ত একটি অ্যাপ, তালিকাহীন একটি অ্যাপ, একটি নাম অনুসন্ধান ও একটি পুনঃসংযোগ চালান, এবং ফলাফলগুলো কনফিগারেশনের সঙ্গে রাখুন।
ডিফল্টটি সেখানেই লিখে রাখুন যেখানে পরের ব্যক্তি তা পাবেন
বেছে নেওয়া ডিফল্ট, ব্যতিক্রমগুলো এবং কে সেগুলোর মালিক, তা ক্লায়েন্ট প্রোফাইলের সঙ্গে একই জায়গায় লিখে রাখুন, কারণ পরের প্রশাসক এই যুক্তিটি না পড়েই একটি এন্ট্রি যোগ করবেন। প্রতিটি ব্যতিক্রমের তারিখ ও কারণ টুকে রাখুন, যাতে পরে ঠিক হয়ে যাওয়া কোনো সাইটের পুরোনো বাদকরণ আত্মবিশ্বাসের সঙ্গে সরানো যায়। কারণহীন তালিকা চিরকাল বাড়তেই থাকে।
কেউ একটি নষ্ট গন্তব্যের কথা জানালে বেসলাইন নয়, ব্যতিক্রমটিই বদলান। একটি সাইট ঠিক করতে ডিফল্ট উল্টে দিলে তালিকাহীন প্রতিটি অ্যাপ নিঃশব্দে টানেলের অপর পাশে সরে যায়।