hosts ফাইল বনাম রাউটার ফিল্টার: VPN-এর উপর দিয়ে সাইট ব্লক করা
hosts এন্ট্রি স্থানীয়ভাবে উত্তর দেয় এবং যেকোনো টানেল পার হয়। রাউটার ফিল্টার কেবল রাউটারের মধ্য দিয়ে যাওয়া জিনিস দেখে, তাই ল্যাপটপে শেষ হওয়া VPN নামটি লুকিয়ে রাখে।
hosts ফাইলের একটি এন্ট্রি এবং রাউটার ফিল্টার একই সাইটকে সম্পূর্ণ ভিন্ন কারণে ব্লক করে, তাই একটি VPN-এর অধীনে কাজ করতে থাকে আর অন্যটি চুপচাপ থেমে যায়। hosts ফাইল কোনো প্যাকেট মেশিন ছাড়ার আগেই নামের উত্তর দেয়। রাউটার ফিল্টার তার মধ্য দিয়ে যাওয়া ট্রাফিক দেখে। ওই দুই বিন্দুর মধ্যে একটি টানেল বসালে দ্বিতীয়টি তার দৃশ্য হারায়, আর প্রথমটি কিছুই টের পায় না।
নাম কোথায় সমাধান হয় তা-ই সব ঠিক করে
প্রতিটি ব্লক শুরু হয় একটি প্রশ্ন দিয়ে: নামটিকে ঠিকানায় কে বদলায়? সাধারণ ডেস্কটপে উত্তর দেয় সিস্টেম রিজলভার, যা তার কনফিগার করা ক্রম অনুসরণ করে এবং সাধারণত DNS জিজ্ঞাসার আগে hosts ফাইল পড়ে। ফিল্টার করা নেটওয়ার্কে উত্তর দিতে পারে রাউটার, যা জিজ্ঞাসাটি কেবল তখনই দেখে যখন ক্লায়েন্ট সেটি রাউটার দিয়ে অসুরক্ষিতভাবে পাঠায়। পথ বদলান, আর কে উত্তর দিতে পারবে সেটাও বদলে যায়।
VPN এখানে একসাথে দুটি কাজ করে: এটি ডিফল্ট রুট সরায়, এবং নিজের DNS সার্ভার পাঠাতে পারে। এই দুটি পরিবর্তনের যেকোনো একটি-ই নাম সমাধানকে সেই ডিভাইস থেকে সরিয়ে দিতে যথেষ্ট, যা ব্লকটি প্রয়োগ করছিল।
এটাই সেই পরিচিত অভিযোগের পেছনের প্রক্রিয়া, যে ফিল্টার VPN সংযুক্ত হওয়ার আগ পর্যন্ত কাজ করে।
hosts এন্ট্রি টানেল তৈরির আগেই উত্তর দেয়
127.0.0.1 www.example.com-এর মতো একটি লাইন স্থানীয় রিজলভার পড়ে, তাই কোনো নেটওয়ার্ক জড়িত না হয়েই উত্তরটি মেশিনেই তৈরি হয়। টানেল সংযুক্ত করুন, DNS সার্ভার বদলান, নেটওয়ার্ক পাল্টান: এন্ট্রি তখনও loopback ফেরত দেয়। এই কারণেই hosts ব্লক দুটির মধ্যে একমাত্র, যেটি VPN কোথায় শেষ হয় তা নিয়ে প্রভাবিত হয় না।
এর অন্ধ দাগগুলোও সমানভাবে স্থানীয়। যে অ্যাপ নিজের রিজলভার বহন করে, DNS over HTTPS বলে বা কোনো আক্ষরিক ঠিকানায় সংযুক্ত হয়, সে সিস্টেমকে কখনও জিজ্ঞাসা করে না, তাই এন্ট্রিটি দেখা হয় না। চলমান প্রক্রিয়ার ভেতরে ক্যাশ করা ঠিকানারও একই ফল হয়, যতক্ষণ না ওই প্রক্রিয়া আবার চালু হয়।
ব্রাউজার ট্যাবের উপর ভরসা না করে Linux-এ getent ahosts বা Windows-এ Resolve-DnsName দিয়ে উত্তরটি নিশ্চিত করুন।
রাউটার ফিল্টার কেবল তার মধ্য দিয়ে যাওয়া জিনিস দেখে
বাড়ির রাউটারে কন্টেন্ট বা URL ফিল্টার তার মধ্য দিয়ে পাঠযোগ্য আকারে যাওয়া নাম ও অনুরোধের সাথে মিল খোঁজে। যখন ক্লায়েন্ট অন্য কোথাও থাকা সার্ভারের দিকে এনক্রিপ্টেড টানেল তৈরি করে, রাউটার ওই সার্ভারের দিকে কেবল একটি প্রবাহ দেখে, ভেতরের কিছু নয়। ফিল্টারের মেলানোর মতো কোনো নাম থাকে না, তাই এটি ট্রাফিককে অনুমতি দেয়, আর তা ফিল্টার ব্যর্থ হয়েছে এমন দেখায়, এড়িয়ে যাওয়া হয়েছে এমন নয়।
যে টোপোলজি কাজ করে সেটি অন্যটি: রাউটার নিজেই টানেল ধরে, প্রান্তে ডিক্রিপ্ট করে এবং সেখানেই ফিল্টার প্রয়োগ করে। সেই নকশায় ফিল্টার বসে যেখানে প্লেইনটেক্সট দেখা যায়।
যদি টানেল ল্যাপটপে শেষ হয়, তবে নিয়ম যেভাবেই লেখা হোক, রাউটার সংজ্ঞা অনুযায়ী সুরক্ষিত পথের বাইরে।
চারটি প্রয়োগবিন্দু এবং প্রতিটি কী মিস করে
চারটি জায়গা ব্লক প্রয়োগ করতে পারে, এবং প্রতিটি আলাদাভাবে ব্যর্থ হয়। তালিকাটিকে র্যাঙ্কিং নয়, কভারেজ ম্যাপ হিসেবেই পড়ুন।
- hosts ফাইল বা স্থানীয় রিজলভার: অফলাইনে এবং যেকোনো টানেলের অধীনে কাজ করে, কিন্তু বান্ডল করা রিজলভার বা হার্ডকোড করা ঠিকানা এটিকে এড়িয়ে যায়।
- VPN গেটওয়েতে DNS ফিল্টারিং: যে ক্লায়েন্টরা পুশ করা রিজলভার ব্যবহার করে তাদের ঢাকে, আর যারা DNS-কে অগ্রাহ্য করে তাদের মিস করে।
- ঠিকানা বা SNI অনুযায়ী গেটওয়ে ইগ্রেস নিয়ম: ক্লায়েন্ট DNS থেকে স্বাধীন, কিন্তু যে নাম পড়তে পারে না এবং যে ঠিকানা শেখেনি সেগুলোর ব্যাপারে অন্ধ।
- ম্যানেজড ব্রাউজার বা ডিভাইস নীতি: ম্যানেজড হার্ডওয়্যারে শক্তিশালী, ব্যক্তিগত ডিভাইসে অনুপস্থিত।
এর কোনোটিই অসংরক্ষিত ডিভাইসে দৃঢ়প্রতিজ্ঞ ব্যবহারকারীর বিরুদ্ধে নিরাপত্তা সীমানা নয়। এগুলো নীতি-নিয়ন্ত্রণ, এবং সৎ বর্ণনা বলে দেয় প্রতিটি আসলে কোন ট্রাফিক ঢাকে।
উদ্দেশ্যের সাথে মেলে এমন স্তরটি বেছে নিন: ঘরোয়া সুবিধা ডিভাইসে থাকে, আর সাংগঠনিক নিয়ম গেটওয়েতে।
শেষ বলার আগে দুই অবস্থাই পরীক্ষা করুন
VPN সংযুক্ত ও বিচ্ছিন্ন অবস্থায় একই তিনটি কমান্ড চালান: রিজলভারের উত্তর দেখতে getent ahosts, জিজ্ঞাসা কী ফেরত দেয় দেখতে nslookup, এবং সংযোগ এখনও সম্পূর্ণ হয় কি না দেখতে সাইটের বিরুদ্ধে curl -I। যদি প্রথমটি loopback ফেরত দেয় আর তৃতীয়টি আসল ঠিকানায় সংযুক্ত হয়, তবে কিছু রিজলভারকে এড়িয়ে গেছে এবং hosts এন্ট্রি আপনার ভাবা নিয়ন্ত্রণ নয়।
রাউটারে অনুরোধের আগে ও পরে ফিল্টার কাউন্টার পড়ুন। যে কাউন্টার কখনও নড়ে না, তার অর্থ ট্রাফিক কখনও ফিল্টারে পৌঁছায়নি, আর এটা নিয়মের উত্তর নয়, রাউটিংয়ের উত্তর।
ফলাফলটি টোপোলজির সাথে লিখে রাখুন, কারণ পরের VPN পরিবর্তন আবার পথ সরিয়ে দেবে।