VPN অপারেটর কি দেখতে পারে আপনি কোন সাইটে যান?
ডিফল্ট OpenVPN সার্ভার সেশন রেকর্ড করে, URL নয়। অপারেটর কী দেখে তা দাবি করার আগে সংযোগ লগ, টানেল ক্যাপচার ও DNS লিক পরীক্ষা তুলনা করুন।
VPN কী দেখতে পারে জিজ্ঞাসা করুন, উত্তর নির্ভর করে পথে আপনি কোথায় দাঁড়িয়ে আছেন তার উপর। সেশন স্তরে অপারেটরের কাছে প্রমাণীকরণ ইভেন্ট আর বাইট সংখ্যা থাকে। প্যাকেট স্তরে থাকে গন্তব্য ঠিকানা ও সময়। DNS স্তরে থাকতে পারে নামগুলোই। প্রতিটি স্তর আলাদা প্রশ্নের উত্তর দেয়, আর কোনো একটি সুইচ আপনাকে স্তর বদলে দেয় না।
দাবি করার আগে স্তরটি মেপে নিন
একই সংযোগ প্রতিটি বিন্দুতে ভিন্ন রেকর্ড তৈরি করে, আর গোপনীয়তা সম্পর্কিত বক্তব্য তখনই অর্থবহ হয় যখন বিন্দুটির নাম উল্লেখ করে। টেবিলটি কলাম ধরে পড়ুন: সেই স্তরে কী আছে, সেখানে অপারেটর কী দেখতে পারে, আর সেই একই রেকর্ড তাকে কী বলতে পারে না।
| Layer | Visible there | Not visible there |
|---|---|---|
| Session and authentication | Account, client address, start and stop times, assigned address, byte counts | URLs, page content, search terms |
| Forwarded packets | Destination address and port, sizes, timing, often the TLS server name | HTTP path, headers, response body |
| DNS resolver | Queried names and the client that asked | Page content and later requests |
| TLS-terminating proxy | Full request line, headers and body | Nothing, by design |
একটি স্তরকে পুরো ছবি হিসেবে পড়াই অতিরঞ্জন ও মিথ্যা আশ্বাস, দুটিরই শুরু। যে প্রদানকারী বলে সে ব্রাউজিং লগ রাখে না, সে URL লগ সম্পর্কে সঠিক হতে পারে অথচ সেশন রেকর্ড ধরে রাখতে পারে; আর কেবল ঠিকানা দেখানো প্যাকেট ক্যাপচার উল্টো অনুসন্ধান ও অনুমান ছাড়া ব্রাউজিং ইতিহাসে পরিণত হয় না।
কোনো নীতি মূল্যায়ন করার সময় প্রতিটি স্তর বর্ণনা করা বাক্যটি খুঁজুন। নীতিটি যদি স্তরগুলো আলাদা না করে, তবে এনক্রিপশন নিয়ে সাধারণ বক্তব্য মেনে না নিয়ে জিজ্ঞাসা করুন কোন রেকর্ডগুলো আছে।
সেশন তালিকা: একটি স্টক OpenVPN সার্ভার কী রাখে
শুরুর অবস্থায় একটি OpenVPN সার্ভার ট্রাফিক ক্যাপচার করে না। স্বাভাবিক আউটপুট একটি সেশন তালিকা: যে অ্যাকাউন্ট প্রমাণীকরণ করেছে, যে উৎস ঠিকানা থেকে এসেছে, শুরুর ও শেষের সময়চিহ্ন, দেওয়া টানেল ঠিকানা এবং প্রতিটি দিকে মোট বাইট। এটি সেশনগুলোর তালিকা, গন্তব্যের তালিকা নয়।
লগিং বিকল্পগুলো বিস্তারিত যোগ করতে পারে। বেশি ভার্বোসিটি স্তর হ্যান্ডশেক সম্পর্কে বেশি লেখে, আর স্ট্যাটাস ফাইল সংযুক্ত ক্লায়েন্ট তালিকাভুক্ত করতে পারে, কিন্তু কোনোটিই সার্ভারকে স্বচ্ছ প্রক্সিতে পরিণত করে না। URL তৈরি করতে TLS সমাপ্ত করতে হয় বা স্পষ্ট প্রক্সি চালাতে হয়, আর দুটোই লুকানো বৈশিষ্ট্য চালু করার বদলে বিশ্বাসের ব্যবস্থা বদলে দেয়।
এই কারণেই ব্রাউজিং লগ নেই, এই দাবির সঠিক সংস্করণ শোনার চেয়ে সংকীর্ণ। সার্ভার পৃষ্ঠাটি জানে না, কিন্তু জানে একটি সেশন ছিল এবং তার মধ্য দিয়ে আনুমানিক কত ডেটা গেছে। সেই সেশন রেকর্ড রাখা হয় কি না, আর কত দিন, তা আলাদা নীতি প্রশ্ন।
ভেতরের ও বাইরের প্যাকেট ভিন্ন প্রমাণ
প্যাকেট ক্যাপচার দেখায় টানেলের মধ্য দিয়ে আসলে কী যায়। সার্ভারে টানেল ইন্টারফেসের নাম দিন এবং এমন ফাইলে লিখুন যা পরে অফলাইনে বিশ্লেষণ করা যায়:
sudo tcpdump -ni tun0 -w /tmp/tun.pcap
sudo tcpdump -r /tmp/tun.pcap -nn | headসেই ফাইলে ডিক্রিপ্ট করা ভেতরের ট্রাফিক থাকে: উৎস হিসেবে ক্লায়েন্টের টানেল ঠিকানা, গন্তব্য ঠিকানা ও পোর্ট, প্যাকেটের আকার ও সময়। কোথাও TLS সমাপ্ত না হলে তাতে HTTP পথ বা উত্তর বডি থাকে না, আর এটি সংবেদনশীল ডেটা, এর সংরক্ষণ নীতি সিদ্ধান্ত, ডিবাগিং সুবিধা নয়।
ফিজিক্যাল ইন্টারফেসে ক্যাপচার অন্য কিছু দেখায়। সেখানে দেখা যায় VPN এন্ডপয়েন্টের দিকে যাওয়া বাইরের প্যাকেট, ভেতরে এনক্রিপ্টেড পেলোড। ভার্চুয়াল অ্যাডাপ্টার থাকলে সেই ফাইলে অসম্পর্কিত ঠিকানা দেখা স্বাভাবিক, কারণ টানেল ডিভাইস ভেতরের প্রবাহ বহন করে আর এনক্রিপ্টেড ট্রান্সপোর্ট বাইরের প্রবাহ।
ক্যাপচারটি কোন প্রশ্নের উত্তর দেবে তা জিজ্ঞাসা করুন। অ্যাপ্লিকেশনের টানেল ব্যবহার ভার্চুয়াল অ্যাডাপ্টারে দেখা যায়; এন্ডপয়েন্ট পর্যন্ত টানেলের পৌঁছানো ফিজিক্যালটিতে দেখা যায়। যেকোনো একটি ফাইলকে সম্পূর্ণ ছবি ভেবে ব্যবহার করলে এমন সিদ্ধান্ত আসে যা ডেটা সমর্থন করে না।
DNS-ই সেই জায়গা যেখানে নাম দৃশ্যমান হয়
DNS বাস্তব ব্যতিক্রম হয়ে থাকে। রিজলভার যে নামগুলো সমাধান করতে বলা হয় সেগুলো দেখে, তাই যে এটি চালায় সে জানে ক্লায়েন্ট কোন সাইট খোঁজে, যদিও পরের সংযোগগুলো এনক্রিপ্টেড। টানেল ক্যাপচার ঠিকানা দেখায়; রিজলভার নাম দেখায়।
বাইরের সেবা পর্যন্ত পৌঁছাতে রিজলভার কোন ঠিকানা ব্যবহার করেছে তা পরীক্ষা করুন। উত্তরটি রিজলভারের এগ্রেস ঠিকানা, আর VPN এক্সিটের সঙ্গে তুলনা করলে বোঝা যায় কোয়েরিটি টানেলের মধ্য দিয়ে গেছে কি না:
dig +short myip.opendns.com @resolver1.opendns.com
dig example.com
sudo tcpdump -ni any udp port 53সেই ঠিকানা যদি টানেল এক্সিটের বদলে স্থানীয় সংযোগের সঙ্গে মেলে, তবে খোঁজাটি VPN এড়িয়ে গেছে এবং নামটি স্থানীয় পথে দৃশ্যমান ছিল। ক্লায়েন্ট হালনাগাদের পরে পরীক্ষাটি আবার করুন, কারণ নতুন সংস্করণ প্রোফাইল কোন রিজলভার ইনস্টল করে তা বদলে দিতে পারে।
এনক্রিপ্টেড DNS দৃশ্যমানতা সরায় না, স্থানান্তর করে। নেটওয়ার্ক আর কোয়েরি দেখে না, কিন্তু রিজলভার এখনো দেখে, আর বিশ্বাসের প্রশ্নটি কেবল হাত বদল করে। সংযোগ হ্যান্ডশেকে TLS সার্ভারের নাম আরেকটি আংশিক সংকেত: পেলোড অস্বচ্ছ হলেও সেটি প্রায়ই টিকে থাকে, তাই গন্তব্য ঠিকানা একমাত্র মেটাডেটা নয় যা ফরওয়ার্ডিং সার্ভার লক্ষ্য করতে পারে।
তিন ধরনের রেকর্ড আর কে সেগুলো পড়তে পারে
সেশন হিসাব, নামভিত্তিক রেকর্ড আর লিক প্রমাণ তিনটি ভিন্ন পণ্য, তিনটি ভিন্ন বাধ্যবাধকতা নিয়ে। সেশন লগ সস্তা ও কম সংবেদনশীল, আর তারা বলে কে কখন সংযুক্ত হয়েছিল। নামভিত্তিক রেকর্ডের জন্য লগিং রিজলভার বা স্পষ্ট প্রক্সি লাগে, আর তা ক্ষতিগ্রস্ত মানুষদের প্রতি প্রকাশের বাধ্যবাধকতা তৈরি করে। লিক প্রমাণ হলো ক্লায়েন্ট পক্ষের পরীক্ষা যা রিজলভার যা প্রকাশ করে তার সঙ্গে টানেল এক্সিটের তুলনা করে।
এই তিনটির মধ্যে কোনটি আপনি চালান, কে পড়তে পারে আর কত দিন থাকে তা লিখে রাখুন। কোনো সেবা লগ রাখে না, এ ধরনের বক্তব্য একটি স্তর বর্ণনা করে এবং কেবল সেই পরিসরেই সত্য থাকে। একই প্রদানকারী সেশন সম্পর্কে সঠিক আর DNS সম্পর্কে ভুল হতে পারে।
পরীক্ষাটি পুনরুৎপাদনযোগ্য রাখুন: একই রিজলভার কোয়েরি, একই ক্যাপচার ইন্টারফেস আর একই তুলনা। যে গোপনীয়তার দাবি নামকরা কোনো স্তরে পরীক্ষা করা যায় না, তা স্লোগান, পরিচালনগত সত্য নয়।