Tor ও VPN একসাথে ব্যবহার করলে DNS কোথায় যায়
Tor Browser, অপারেটিং সিস্টেম ও টানেল ক্লায়েন্ট প্রত্যেকে ভিন্ন পথে ভিন্ন নাম সমাধান করতে পারে। এটিকে লিক বলার আগে বিনিময়গুলো অনুসরণ করুন।
দুটি গোপনীয়তা সরঞ্জাম চলছে, একটি পৃষ্ঠা লোড হচ্ছে না, আর একটি রিজলভার পরীক্ষা বলছে ব্রাউজারের বাইরের কিছু একটি নাম পেয়েছে। এটিকে লিক রিপোর্ট বানানোর আগে কোন বিনিময় থেকে এটি এসেছে তার নাম দিন। Tor ও VPN সমন্বয়ে অন্তত তিনটি ভিন্ন মালিকের তিনটি ভিন্ন নাম জিজ্ঞাসা থাকে, আর যে ক্রমে সেগুলো ঘটে সেই ক্রমে সেগুলো দেখে যাওয়াই কোনটি ভুল আচরণ করছে তা বোঝার দ্রুততম উপায়।
লিক বলার আগে প্রতিটি বিনিময়ের নাম দিন
প্রথম বিনিময় VPN এন্ডপয়েন্ট নিজেই সমাধান করে, এবং এটি কোনো সুরক্ষা থাকার আগেই ঘটে। দ্বিতীয়টি Tor Browser-এর জন্য একটি গন্তব্য সমাধান করে, যা নামটি স্থানীয়ভাবে সমাধান না করে প্রক্সির কাছে হস্তান্তর করতে পারে। তৃতীয়টি মেশিনের বাকি সবকিছু কভার করে, যার মধ্যে আপডেট পরীক্ষা, মেইল ক্লায়েন্ট ও অপারেটিং সিস্টেমের নিজস্ব সেবা জিজ্ঞাসা রয়েছে। এদের মধ্যে শুধুমাত্র প্রথমটি অন্য দুটি জড়িত না হয়েও ঘটতে পারে।
এদের প্রত্যেকটি ভিন্ন পথ অনুসরণ করতে পারে, আর ব্রাউজারভিত্তিক একটি পরীক্ষা কেবল নিজের অনুরোধই পর্যবেক্ষণ করে। একটি ফলাফলকে তিনটিরই অবস্থা হিসেবে ধরে নেওয়া থেকেই বেশিরভাগ বিভ্রান্তি শুরু হয়।
কিছু বদলানোর আগে লিখে রাখুন কোন নাম কোন স্তরের। ব্যক্তিগত সাংগঠনিক নাম, একটি প্রকাশ্য গন্তব্য আর টানেল এন্ডপয়েন্ট নিজেই একই প্রয়োজন বহন করে না, আর যেসব নীতিমালা এগুলিকে এক শ্রেণিতে ফেলে সেগুলো কিছু একটা ভাঙবে।
বুটস্ট্র্যাপ জিজ্ঞাসা টানেলের আগেই ঘটে
হোস্টনাম দিয়ে কনফিগার করা ক্লায়েন্টকে টানেল খুলতে সেই নাম সমাধান করতে হয়, আর সেই মুহূর্তে জিজ্ঞাসাটি বহন করার মতো কোনো টানেল নেই। বর্তমান নেটওয়ার্কে অপারেটিং সিস্টেম যে রিজলভার দেয় সে-ই উত্তর দেয়, যা ক্যাপটিভ পোর্টাল, হোটেল রিজলভার বা প্রকাশ্য রিজলভার হতে পারে। এটি টানেলে লিক নয়, কারণ তখনও কোনো টানেল নেই।
ব্রাউজারের সুরক্ষিত DNS সেটিং বদলালেও এই জিজ্ঞাসায় কিছু হয় না, কারণ এটি এমন একটি সেবার অন্তর্গত যা ব্রাউজারের বাইরে চলে এবং কোনো পৃষ্ঠা খোলার আগেই শুরু হয়। এন্ডপয়েন্ট নামটি সমাধান না হলে টানেলের ভেতরের কোনো নীতিমালাই সাহায্য করবে না, কারণ ব্যর্থতাটি কনফিগারেশনের বর্ণিত সবকিছুর চেয়ে এক ধাপ আগে ঘটে।
এটিই একমাত্র জায়গা যেখানে এন্ডপয়েন্টের জন্য আক্ষরিক ঠিকানা ব্যবহার করা, যদি প্রদানকারী তা সমর্থন করে, নির্ভরতা যোগ না করে সরিয়ে দেয়। এটি এমন প্রদানকারী অনুসরণের ক্ষমতাও সরিয়ে দেয় যে ঠিকানা বদলায়, তাই এই বিনিময়টি বাস্তব এবং এটি আবিষ্কৃত হওয়ার বদলে সিদ্ধান্ত হওয়া উচিত।
ব্রাউজার আর মেশিনের বাকি অংশ আলাদা
Tor-এর SOCKS ইন্টারফেস গন্তব্য হোস্টনাম প্রক্সির কাছে পাঠানো সমর্থন করে, অর্থাৎ দূরপ্রান্ত সমাধান করে আর স্থানীয় মেশিন কখনো জিজ্ঞাসা করে না। প্রক্সি সমর্থনকারী সাধারণ অ্যাপ্লিকেশন প্রথমে নামটি স্থানীয়ভাবে সমাধান করে পরে প্রাপ্ত ঠিকানায় সংযোগ করতে পারে, যা ব্যবহারকারীর প্রক্সিযুক্ত মনে করা গন্তব্যের জন্য স্থানীয় জিজ্ঞাসা তৈরি করে। তাই দুটি অ্যাপ্লিকেশন একটি প্রক্সি সেটিং ভাগ করেও ভিন্ন জায়গায় লিক করতে পারে। ভাগ করা প্রক্সি ঠিকানায় কিছুই বলে না দুটির মধ্যে কোন আচরণ ব্যবহৃত হচ্ছে।
সুরক্ষিত DNS চালু থাকলে ব্রাউজার আরেকটি স্তর যোগ করে, কারণ ব্রাউজার নিজের প্রদানকারী বেছে নিয়ে সিস্টেম রিজলভার সম্পূর্ণ এড়িয়ে যেতে পারে। অন্যদিকে টানেল ক্লায়েন্ট পুরো মেশিনের জন্য টানেলের মধ্য দিয়ে একটি রিজলভার পাঠাতে পারে। এই দুটি সেটিং একসাথে সঠিক হয়েও ভিন্ন প্রোগ্রামের জন্য ভিন্ন আচরণ বর্ণনা করতে পারে।
একটি পরীক্ষা পৃষ্ঠা থেকে অনুমান না করে যে প্রোগ্রাম অনুরোধটি করেছে সেটি পরীক্ষা করুন। টানেলের ভেতরে বহন করা জিজ্ঞাসা আর Tor-এ কখনো না পৌঁছানো জিজ্ঞাসার মধ্যে পার্থক্যটাই ঠিক সেই পার্থক্য যা একটি রিজলভার ঠিকানা দেখাতে পারে না।
প্রতিটি প্রোগ্রাম পরীক্ষা করুন, তারপর উদ্দেশ্যের সাথে তুলনা করুন
পর্যবেক্ষণগুলো আলাদাভাবে চালান: সিস্টেম কী ব্যবহার করত, ব্রাউজার কী ব্যবহারের জন্য কনফিগার করা, আর SOCKS সংযোগ একটি নাম না ঠিকানা বহন করছে। শেষটি দূরবর্তী ও স্থানীয় সমাধানের পার্থক্য, আর SOCKS এক্সটেনশন স্পেসিফিকেশন বর্ণনা করে কীভাবে হোস্টনাম আগে সমাধান না করে পাঠানো হয়।
resolvectl status | grep -E "Current DNS Server|DNS Servers"
ss -tnp '( dport = :9050 )'
dig +short dev.internal.example
getent hosts vpn-endpoint.example.net
তারপর যা পর্যবেক্ষণ করেছেন তা আপনার উদ্দেশ্যের সাথে তুলনা করুন। আপনার বেছে নেওয়া রিজলভার টানেলের মধ্য দিয়ে যে প্রকাশ্য নাম সমাধান করে তা ফলের সময় প্রকাশ্য রিজলভারকে দেওয়া ব্যক্তিগত নামের মতো একই অনুসন্ধান নয়, আর সাধারণত কেবল দ্বিতীয়টির জন্য ব্যবস্থা নেওয়া দরকার। প্রথমটি নকশা অনুযায়ী কাজ করা কনফিগারেশন, এমনকি রিপোর্টে অপরিচিত দেখালেও।
আপনি যে ব্যতিক্রমগুলো গ্রহণ করেন সেগুলো লিখে রাখুন, যার মধ্যে সুরক্ষিত করা যায় না এমন বুটস্ট্র্যাপ জিজ্ঞাসাও রয়েছে। লিখিত ব্যতিক্রম একটি নকশা সিদ্ধান্ত, যেখানে একই ব্যতিক্রম পরে আবিষ্কৃত হলে ত্রুটি বলে মনে হয়। যে এটি খুঁজে পাবে সে এটিকে ত্রুটিই ভাববে, আর আপনি সভাটি কেন তা নয় তা ব্যাখ্যা করেই কাটাবেন।