দুটি VPN চেইন করা: এটি কী লুকায় আর কী খরচ করায়
স্তরিত টানেল বদলায় কে কোন প্রান্ত দেখে, আপনি কে দেখে তা নয়। ভেতরের প্রান্তটি বাইরের টানেল দিয়ে চালান, তারপর DNS, MTU ও ফলব্যাক যাচাই করুন।
দুটি স্তরিত টানেল আপনাকে নামবিহীন করে না। তারা পর্যবেক্ষণ দুটি প্রদানকারীর মধ্যে ভাগ করে দেয়, তাই কোনোটিই আপনার বাড়ির ঠিকানা আর আপনার গন্তব্য একসাথে দেখে না। এটি সত্যিকারের তবে সংকীর্ণ একটি সুবিধা, এবং এর সাথে রাউটিং, DNS ও MTU সমস্যা আসে, যেগুলো আপনি প্রথমবার এর উপর নির্ভর করলেই দেখা দেয়।
1. দ্বিতীয় হপটি কীসের জন্য তা ঠিক করুন
কিছু কনফিগার করার আগে লক্ষ্যটি এক বাক্যে লিখে ফেলুন. লক্ষ্য যদি হয় আপনার ISP কোন সাইটে যান তা দেখতে পারবে না, তবে একটি টানেলই তা অর্জন করে। লক্ষ্য যদি হয় কোনো একক প্রদানকারী আপনার ঠিকানাকে আপনার ট্রাফিকের সাথে যুক্ত করতে পারবে না, তবে দুটি তা করে। আর লক্ষ্য যদি হয় কেউ আপনাকে চিহ্নিত করতে পারবে না, তবে হপের সংখ্যা যতই হোক তা হয় না।
চেইনটি ততটাই শক্তিশালী যতটা দুর্বল প্রদানকারীর লগ আর তাদের দুজনের রাখা অ্যাকাউন্ট রেকর্ড। পেমেন্ট, সাইনআপ ইমেইল ও অ্যাপ টেলিমেট্রি পুরোপুরি টানেলের বাইরে থাকে।
2. ভেতরের প্রান্তটি বাইরের টানেল দিয়ে পৌঁছানো যায় করে তুলুন
সাধারণ ব্যর্থতা হলো ভেতরের টানেল কখনোই প্রতিষ্ঠিত না হওয়া। পূর্ণ-টানেল বাইরের সংযোগ ডিফল্ট রুটের মালিক, তাই ভেতরের ক্লায়েন্টের নিজের প্রান্তে পৌঁছানোর চেষ্টা বাইরের টানেল গিলে ফেলে এবং ফেলে দেয় বা লুপে পাঠায়। ভেতরের প্রান্তের জন্য বাইরের ইন্টারফেস দিয়ে একটি স্পষ্ট রুট দরকার, যা ভেতরের ক্লায়েন্ট শুরুর আগেই বসাতে হবে। নাহলে হ্যান্ডশেক রুটের সাথে দৌড়ে হেরে যায়।
WireGuard একই দ্বন্দ্ব উল্টো দিক থেকে দেখায়। প্রতিটি পিয়ারের AllowedIPs ঠিক করে কোন গন্তব্যগুলো ওই টানেলে ঢোকে, তাই যে ভেতরের ইন্টারফেস সব ঠিকানার দাবি করে সে বাইরের প্রান্তেরও দাবি করে, যদি না আরও নির্দিষ্ট রুট জিতে যায়। দুটি ইন্টারফেসে ওভারল্যাপিং AllowedIPs এমন এক কনফিগারেশন যেখানে এক পক্ষ নিঃশব্দে হেরে যায়।
কন্টেইনার চেইনিং বিচ্ছেদটিকে স্পষ্ট আর ফাঁদটিকে সুস্পষ্ট করে। নিজের নেমস্পেস, নিজের ডিফল্ট রুট আর ভেতরে একটি ক্লায়েন্ট থাকা কন্টেইনার হোস্ট যা পাঠায় তা ফরওয়ার্ড করে; হোস্ট নিজে থেকে ওই পথ ব্যবহার শুরু করে না। ফরওয়ার্ডিং চালু করুন, কন্টেইনারের টানেলের জন্য একটি রুট যোগ করুন, আর সার্ভিসটিকে কন্টেইনারের ঠিকানায় নির্দেশ করুন।
3. DNS-কে একই পথে রাখুন
DNS-কে যেতে হবে সেখানে যেখানে ট্রাফিক যায়। ভেতরের প্রদানকারী রিজলভার দিলেও হোস্ট যদি এখনো স্থানীয়গুলোকে জিজ্ঞাসা করে, তবে ওই লুকআপগুলো ঠিক সেই সাইটগুলোই ফাঁস করে দেয় যা টানেলের লুকানোর কথা ছিল। ক্লায়েন্টের স্টেটাস প্যানেলে ভরসা না করে প্রতিটি টানেল ইন্টারফেসে ক্যাপচার দিয়ে যাচাই করুন। এখানে লিক সাধারণ ব্রাউজিংয়ে অদৃশ্য আর ক্যাপচারে স্পষ্ট।
বিভক্ত DNS ডিজাইন এটিকে কঠিন করে, কারণ স্থানীয় নামের জন্য একটি কোয়েরি বৈধভাবে টানেলের বাইরের হতে পারে। ব্যতিক্রমের তালিকাটি ইচ্ছাকৃতভাবে লিখুন, যে রিজলভার হঠাৎ উত্তর দিয়েছে তার কাছ থেকে আবিষ্কার করতে যাবেন না।
4. ব্যবহারকারীরা আপনার চেয়ে আগে জানার আগেই MTU ঠিক করুন
MTU হলো আরেকটি অনুমেয় ক্ষতি। দুটি এনক্যাপসুলেশন দুটি হেডার বিয়োগ করে, আর যে বাইরের টানেল ইতিমধ্যে পথের MTU কমিয়েছে সে ভেতরে কম জায়গা রাখে। উপসর্গগুলো পরিচিত: ছোট অনুরোধ সফল হয়, বড় স্থানান্তর ও TLS হ্যান্ডশেক আটকে যায়।
ip link set dev wg1 mtu 1280 হলো ভোঁতা সমাধান, আর ফরওয়ার্ডারে MSS ক্ল্যাম্প করা হলো আরও পরিচ্ছন্নটি। সংযোগ আবার চেষ্টা করা একেবারেই সমাধান নয়।
5. যে ব্যর্থতা সত্যিই পাবেন সেটাই পরীক্ষা করুন
ইচ্ছাকৃতভাবে বাইরের টানেল ভাঙুন আর দেখুন কী ঘটে। যে চেইন বাইরের হপ মরে গেলে নিঃশব্দে সরাসরি পথে ফিরে যায় তা চেইন না থাকার চেয়েও খারাপ, কারণ এটি ঠিক সেই মুহূর্তে ফাঁস করে যখন আপনি ভেবেছিলেন আপনি সুরক্ষিত। লক্ষ্য হওয়া উচিত এমন কিল সুইচ যা সব ট্রাফিক থামায়। ফলাফল লিখে রাখুন, কারণ ঘটনার মাঝপথে এটি আবার আবিষ্কার করতে চাইবেন না।
লেটেন্সি আর দ্বিতীয় ব্যর্থতার বিন্দু হলো স্থায়ী খরচ। অসুবিধাজনক সময়ে কিছু ভাঙলে দুটি হপ মানে দুটি সাপোর্ট সারিও।