macOS-এ সংরক্ষিত VPN কনফিগারেশন বদলালে আসলে কী বদলায়
সংরক্ষিত Mac VPN বদলানো মানে শুধু প্রোফাইল বদল নয়। রুট, DNS ও শংসাপত্রে কী বদলায় এবং আপনি আসলে যে টানেল পেয়েছেন তা কীভাবে যাচাই করবেন, তা দেখুন।
আপনি VPN তালিকা খোলেন, অন্য সংরক্ষিত এন্ট্রিটি বেছে নেন এবং পরিষ্কার এক বদল আশা করেন: নতুন এক্সিট ঠিকানা আর বাকি সব অপরিবর্তিত। প্রথমেই এই ধারণাটি ছাড়তে হবে। macOS-এ সংরক্ষিত VPN কোনো প্রিসেট নয়, একটি পূর্ণ নেটওয়ার্ক সার্ভিস, তাই সার্ভিস বদলালে রাউটিং, DNS ও প্রমাণীকরণ একসঙ্গে বদলাতে পারে। মেনু বার বলে কোন সার্ভিস সক্রিয়; নিচের টানেল আপনার উদ্দেশ্যের সঙ্গে মেলে কি না তা বলে না।
সংরক্ষিত তালিকা প্রোফাইল বাছাইয়ের জায়গা নয়
সিস্টেম সেটিংস > নেটওয়ার্ক-এ প্রতিটি এন্ট্রি আলাদা সার্ভিস, যার নিজস্ব সার্ভার ঠিকানা, অ্যাকাউন্ট, প্রমাণীকরণ পদ্ধতি, DNS সার্ভার এবং Send all traffic over VPN connection-এর মতো অপশন আছে। পুরোনো সংস্করণে সিস্টেম প্রেফারেন্সেস একই তালিকা রাখে। দুটি এন্ট্রি একই হোস্টনামে যেতে পারে তবু ভিন্নভাবে আচরণ করতে পারে, কারণ প্রোটোকল বা ক্লায়েন্ট এক্সটেনশন ঠিক করে টানেল কীভাবে তৈরি হয়।
তৃতীয় পক্ষের ক্লায়েন্টরা আলাদা তালিকা রাখে। Tunnelblick নিজের ফোল্ডার থেকে কনফিগারেশন পড়ে, WireGuard নিজের টানেল তালিকা রাখে, আর OpenVPN Connect প্রোফাইল অ্যাপের ভিতরে রাখে। কেউ কনফিগারেশন সিস্টেমে নিবন্ধ করে; আবার কেউ সবকিছু অ্যাপের ভিতরে রাখে এবং বিল্ট-ইন তালিকায় কখনো দেখা যায় না। তাই “সংরক্ষিতটিতে যান” মানে প্রোফাইলটি কোন অ্যাপের, তার উপর নির্ভর করে ভিন্ন কাজ।
scutil --nc list সিস্টেম কনফিগারেশনে নিবন্ধিত VPN সার্ভিসগুলি উদ্ধৃতি চিহ্নসহ নাম দেখিয়ে প্রিন্ট করে। স্ক্রিপ্টে বদল করতে হলে ঠিক ওই নামগুলি ব্যবহার করুন, এবং তালিকা প্রতিটি তৃতীয় পক্ষের টানেল ঢাকে বলে ধরে নেবেন না।
বদল আসলে কী বদলায়
সক্রিয় সার্ভিস বদলালে চারটি জিনিস একসঙ্গে সরে। ওই সার্ভিস সব ট্রাফিক পাঠালে ডিফল্ট রুট নতুন টানেল অনুসরণ করে; রিজলভার তালিকা সার্ভিসের নির্দিষ্ট DNS সার্ভারে বদলায়; নতুন সংযোগ উৎস হিসেবে নতুন টানেল ঠিকানা নেয়; আর ব্যবহৃত শংসাপত্র নতুন সার্ভিসের হয়। নেটিভ কনফিগারেশন আর অ্যাপ প্রোফাইল পরস্পরের বদল নয়, এমনকি দুটোই একই গেটওয়েতে শেষ হলেও।
| What you assume | What the system does |
|---|---|
| Same server name means same tunnel | Protocol, certificate and account are per service |
| All traffic follows the active VPN | Only when Send all traffic over VPN is on |
| DNS switches with the VPN | Only if that service defines DNS servers |
| Disconnect ends the connection | On Demand or a management profile can reconnect |
| Open sessions survive the switch | TCP sessions tied to the old address stall |
DNS-এর অংশটি মানুষকে বিভ্রান্ত করে। macOS রিজলভারের একটি ক্রম রাখে, আর scutil --dns দেখায় কোন রিজলভার ব্যবহৃত হচ্ছে এবং কোন ইন্টারফেসে। DNS সার্ভার ছাড়া VPN সার্ভিস Wi-Fi রিজলভারকেই উত্তর দিতে দিতে পারে, ফলে নতুন পাবলিক ঠিকানা পাবেন কিন্তু DNS আচরণ পুরোনোই থাকবে, আর ভাববেন বদল অর্ধেক কাজ করেছে।
পুরোনো কনফিগারেশন কেন ফিরে আসে
আপনি সংযোগ বিচ্ছিন্ন করার পর একই সার্ভিস কিছুক্ষণ পরে আবার যুক্ত হলে সবার আগে On Demand দেখুন। অ্যাপ কোনো মিলে যাওয়া ডোমেইন রিজলভ করলে চাহিদা-অনুযায়ী সংযোগের নিয়ম সার্ভিস ফিরিয়ে আনতে পারে, এবং ম্যানেজমেন্ট প্রোফাইল একই নিয়ম বলবৎ করতে পারে। এন্ট্রি মুছে ফেললে খুব কমই ঠিক হয়: প্রোফাইল-ইনস্টল করা কনফিগারেশন সাধারণত পরের প্রোফাইল রিফ্রেশে ফিরে আসে, আর হাতে করা কনফিগারেশন সার্ভিস চলে গেলেও Keychain-এ পাসওয়ার্ড রেখে দিতে পারে।
দ্বিতীয় সার্ভিস চালু করলেই প্রথমটি থামে না। ক্লায়েন্ট ও প্রোটোকল অনুযায়ী দুটি টানেল ও দুটি রুট সেট নিয়ে শেষ করতে পারেন, আর কোনটি ট্রাফিক বহন করবে তা ঠিক করে সার্ভিস ক্রম ও রুটের নির্দিষ্টতা, আপনি শেষে যে আইকনে ক্লিক করেছেন সেটি নয়। বদল হয়েছে ধরে নেওয়ার আগে ইন্টারফেসগুলি দেখুন।
টানেল যাচাই করুন, টিকচিহ্ন নয়
সেটিংসে হাত দেওয়ার আগে সিস্টেমের নিজের দৃষ্টিভঙ্গি ধরে এগোন।scutil --nc status "Name" সিস্টেম কী মনে করে তা জানায়;ifconfig দেখায়utun ইন্টারফেসের ঠিকানা আছে কি না;netstat -rn -f inet দেখায় ডিফল্ট রুট কোথায় যাচ্ছে;scutil --dns দেখায় আসলে কোন রিজলভার ব্যবহৃত হচ্ছে। তারপর নতুন সংযোগ খুলে এক্সিট ঠিকানা নিশ্চিত করুন, কারণ আগে সাইন-ইন করা পৃষ্ঠা পুরোনো টানেলে বাঁধা সকেট ব্যবহার করতে পারে।
DNS এখনো যদি স্থানীয় নেটওয়ার্ক থেকে উত্তর দেয়, সার্ভিসের নির্ধারিত সার্ভারগুলিকে রিজলভার তালিকার সঙ্গে মেলান। যদি ডিফল্ট রুট এখনো ভৌত ইন্টারফেসে যায়, তবে সার্ভিসটি স্প্লিট-টানেল বা পুরোপুরি সংযুক্ত নয়। দুটোই কনফিগারেশনের ফল, ভাঙা ক্লায়েন্টের প্রমাণ নয়।
অচেনা পরিস্থিতি এড়ানো বদলের ক্রম
- বর্তমান সার্ভিস এবং কোনো প্রোফাইল এটি পরিচালনা করে কি না তা লিখে রাখুন।
- দুটি টানেল একসঙ্গে থাকতে না পারলে আগে এটি বিচ্ছিন্ন করুন।
- লক্ষ্যে সংযোগ করুন এবং Connecting নয়, Connected-এর জন্য অপেক্ষা করুন।
- ডিফল্ট রুট, রিজলভার তালিকা ও নতুন এক্সিট ঠিকানা দেখুন।
- দীর্ঘস্থায়ী সেশন রাখা অ্যাপগুলি পুনরায় চালু করুন।
নতুনটি ওই যাচাই পাস না করা পর্যন্ত পুরোনো এন্ট্রি রাখুন, এবং প্রতিটি এন্ট্রিকে আলাদা নাম দিন; একই লেবেল পরের ব্যর্থতা চিহ্নিত করা কঠিন করে তোলে। Apple-এর Mac সহায়িকা নেটিভ দিকটি বর্ণনা করেMac-এ VPN সংযোগ সেট আপ করা পৃষ্ঠায়, কোনো ম্যানেজড কনফিগারেশন সম্পাদনার আগে যা দেখে নেওয়া উচিত।
নির্বাচন ফিরে গেলে প্রথমে এটিকে নীতি বা On Demand হিসেবে ধরুন। কনফিগারেশনের মালিক কে এবং এটি স্বয়ংক্রিয়ভাবে সংযোগের জন্য সেট কি না নিশ্চিত করুন, তারপর ঠিক করুন আপনি সার্ভিস বদলাচ্ছেন না প্রোফাইলের সঙ্গে লড়ছেন।