Mac VPN ক্লায়েন্ট: Network Extension বনাম System Extension
Network Extension একটি সক্ষমতা আর System Extensions একটি বিতরণ ব্যবস্থা: macOS-এর অনুমোদনের ধাপ ও পড়ার লগ বেছে নিতে দুটিকে আলাদা করুন।
Apple-এর দুটি পরিভাষা এমনভাবে ব্যবহৃত হয় যেন তারা একই জিনিসের নাম দেয়, আর এই বিভ্রান্তি মানুষকে ভুল সেটিংস প্যানেলে পাঠায়। Network Extension একটি সক্ষমতা বর্ণনা করে: VPN টানেল, প্রক্সি ও ফিল্টার বাস্তবায়নের সমর্থিত উপায়। System Extensions ব্যবহারকারী-স্পেস এক্সটেনশনের জন্য একটি বিতরণ ও অনুমোদন ব্যবস্থা বর্ণনা করে। আধুনিক Mac VPN ক্লায়েন্টের সাধারণত দুটিই দরকার, তাই কোনো একটি লেবেল একা কোনো উপসর্গ ব্যাখ্যা করে না। দুটিকে আলাদা করলে বোঝা যায় কোন উপাদান দেখবেন আর কোন অনুমোদনের ধাপ আশা করবেন।
দুটি প্রশ্ন, একটি লেবেল নয়
উপাদানটি কীভাবে ইনস্টল হয় তা জিজ্ঞাসা করার আগে জিজ্ঞাসা করুন এটি কী করে। সক্ষমতা ঠিক করে কোন প্রোভাইডার শ্রেণি আছে এবং তাই কোন কোড আপনার প্যাকেট হ্যান্ডল করে। বিতরণ ব্যবস্থা ঠিক করে বাইনারি কীভাবে আসে, কীভাবে অনুমোদিত হয় এবং এর অবস্থা কোথায় লেখা হয়। একটি পণ্য পুরোনো সংস্করণে সিস্টেম এক্সটেনশন না দিয়েও প্যাকেট টানেল বাস্তবায়ন করতে পারে, আবার টানেল ছাড়া অন্য কিছু বাস্তবায়ন করা সিস্টেম এক্সটেনশনও দিতে পারে।
কার্নেল এক্সটেনশন হলো তৃতীয় পরিভাষা যা মানুষ মিশিয়ে ফেলে। এগুলো বিশেষাধিকারপ্রাপ্ত নেটওয়ার্কিং কোড চালানোর পুরোনো উপায় ছিল, ভিন্ন অনুমোদন দরকার হতো, আর Apple বছরের পর বছর ডেভেলপারদের এগুলো থেকে সরিয়ে আনছে। আধুনিক ক্লায়েন্টে কার্নেল-এক্সটেনশন অনুমোদনের রেসিপি প্রয়োগ করলে এমন একটি ডায়ালগে সময় নষ্ট হয় যা কখনো আসবে না।
আপনি যে macOS সংস্করণ চালান তার জন্য ভেন্ডরের ডিপ্লয়মেন্ট নোট পড়ুন আগের সংস্করণের কোনো ফোরাম পোস্টের বদলে। আর্কিটেকচার একাধিকবার বদলেছে, আর নির্দেশনা দ্রুত পুরোনো হয়ে যায়। কার্নেল-এক্সটেনশন অনুমোদনের কথা বলা কোনো নোট পণ্যটির ভিন্ন যুগের বর্ণনা দিচ্ছে।
Network Extension কী দেয়
ফ্রেমওয়ার্কটি সাধারণ নেটওয়ার্কিং কাজের জন্য প্রোভাইডার ধরন দেয়: VPN ট্র্যাফিকের জন্য প্যাকেট টানেল, প্রতি-অ্যাপ্লিকেশন প্রবাহের জন্য অ্যাপ প্রক্সি, ট্র্যাফিক পরিদর্শনের জন্য কনটেন্ট ফিল্টার এবং রিজলভারের আচরণের জন্য DNS প্রক্সি হ্যান্ডলিং। প্রোভাইডার ধরন ঠিক করে এক্সটেনশন কী করতে পারে, আর দুটি প্রোভাইডার দেওয়া ক্লায়েন্ট দুটি ভিন্ন কাজ করছে হতে পারে।
ডায়াগনোসিসের সময় এটি গুরুত্বপূর্ণ, কারণ একই সংযোগ-উপসর্গ টানেল, ফিল্টার বা DNS প্রক্সি থেকে আসতে পারে। ওয়েবসাইট আটকানো ফিল্টার সিদ্ধান্ত, প্রাইভেট সাবনেটে পৌঁছাতে না পারা সাধারণত টানেল সিদ্ধান্ত, আর ভুল ঠিকানা রিজলভ করা সাধারণত রিজলভার সিদ্ধান্ত। প্রোভাইডার ধরনের নাম বললে কোনো লগ পড়ার আগেই অনুসন্ধান সংকুচিত হয়।
ফ্রেমওয়ার্কের কোনো দিকই কোনো গোপনীয়তার অবস্থান বোঝায় না। ব্যবহারকারী-স্পেস এক্সটেনশনের পিছনে এখনও অনুমতি, কনফিগারেশন ও একজন অপারেটর থাকে, তাই আর্কিটেকচারকে আস্থার সংকেত নয়, বাস্তবায়নের বিবরণ হিসেবে দেখুন। জিজ্ঞাসা করুন কে এন্ডপয়েন্ট চালায় এবং এটি কী সংগ্রহের জন্য কনফিগার করা।
System Extensions কী বদলায়
ব্যবস্থাটি বিশেষাধিকারপ্রাপ্ত কোড কার্নেল থেকে ব্যবহারকারী-স্পেসে নিয়ে যায় এবং অপারেটিং সিস্টেম কীভাবে সম্মতি চায় তা বদলায়। অ্যাক্টিভেশন ইনস্টলেশন থেকে আলাদা ধাপ, আর ব্যবহারকারী বা একটি MDM প্রোফাইলকে এটি অনুমোদন করতে হয়। যে ক্লায়েন্ট ইনস্টল হয় কিন্তু কখনো অ্যাক্টিভেট হয় না Applications ফোল্ডারে উপস্থিত বলে মনে হয় এবং সংযোগের জন্য কিছুই করে না।
অবস্থা অ্যাপ নয়, সিস্টেম লেখে, যা কাজে লাগে কারণ এটি জিজ্ঞাসা করা যায়। নিচের কমান্ডটি সিস্টেম যে এক্সটেনশনগুলো জানে এবং তাদের অ্যাক্টিভেশন অবস্থা তালিকা করে।
systemextensionsctl list
scutil --nc list
প্রথম কমান্ড বলে উপাদানটি ইনস্টল ও অ্যাক্টিভেট হয়েছে কি না। দ্বিতীয়টি সিস্টেমের রাখা VPN কনফিগারেশন তালিকা করে, যা ভিন্ন প্রশ্ন এবং প্রায়ই সেই প্রশ্ন যা গুরুত্বপূর্ণ যখন কানেকশন প্রোফাইল ভাঙা নয়, অনুপস্থিত।
নির্দিষ্ট উপসর্গে কোনটি দেখবেন
সেটিংস প্যানেল খোলার আগে উপসর্গটি স্তরের সঙ্গে মিলিয়ে নিন। অনুপস্থিত কনফিগারেশন প্রোফাইলের প্রশ্ন, ইনস্টল কিন্তু নিষ্ক্রিয় উপাদান বিতরণের প্রশ্ন, আর ট্র্যাফিক পার করতে না পারা সক্রিয় উপাদান সক্ষমতার প্রশ্ন।
| Symptom | First place to look |
|---|---|
| No VPN entry at all | Configuration profile or scutil list |
| Client installed, nothing happens | Extension activation state |
| Tunnel up, private host unreachable | Tunnel provider routes and policy |
| One app blocked, others fine | Filter or app proxy provider |
শেষ দুই সারির জন্য লগ স্ট্রিম হলো সম্মিলিত প্রমাণ। নেটওয়ার্ক এক্সটেনশন সাবসিস্টেম পড়লে বোঝা যায় কোন প্রোভাইডার প্রবাহটি হ্যান্ডল করেছে, আর ফিল্টার সিদ্ধান্ত টানেল ব্যর্থতার থেকে আলাদা দেখায়, এমনকি ব্যবহারকারী দুটিকেই VPN ভাঙা বলে বর্ণনা করলেও।
log show --last 10m --predicate 'process == "nesessionmanager"'
মেনু বারে আইকন আছে বলে এক্সটেনশন সক্রিয় বলে সিদ্ধান্তে পৌঁছাবেন না। ব্যর্থ অ্যাক্টিভেশনের পরেও আইকন টিকে থাকে, আর পুরোনো আইকন সহায়তা কল ভুল জায়গায় শুরু হওয়ার সবচেয়ে সাধারণ কারণগুলোর একটি। বরং অ্যাক্টিভেশন অবস্থা পড়ুন, কারণ সিস্টেম সেটাই লেখে।
অনুমোদন, MDM এবং কার্নেল-এক্সটেনশনের মিথ
ম্যানেজড Mac-এ অনুমোদনের ধাপটি MDM প্রোফাইলের, আর System Settings-এ Allow ক্লিক করা ব্যবহারকারী এমন একটি নীতি দ্বারা এখনও আটকাতে পারে যা হালনাগাদ হয়নি। ব্যবহারকারীকে কিছু ক্লিক করতে বলার আগে ডেস্কটপ দলকে জিজ্ঞাসা করুন সেই ফ্লিটের জন্য কোন ব্যবস্থা এক্সটেনশনটি অনুমোদন করে।
আনম্যানেজড Mac-এ অনুমোদনের প্রম্পট একবার আসে এবং এক্সটেনশন পুনরায় ইনস্টল না হওয়া পর্যন্ত বাতিল স্থায়ী হতে পারে। এই আচরণটি সেই মেশিন ব্যাখ্যা করে যেখানে OS আপগ্রেডের আগে ক্লায়েন্ট কাজ করত আর এখন এমন সংযোগের কথা বলে যা কখনো প্রতিষ্ঠিত হয় না।
আপনি যে ক্লায়েন্ট ডিপ্লয় করেন তার প্রোভাইডার ধরন, অ্যাক্টিভেশন অবস্থা ও অনুমোদনের ব্যবস্থা লিখে রাখুন। এই তিনটি তথ্য সক্ষমতা-বনাম-বিতরণ বিতর্ক আবার না খুলেই Mac VPN সম্পর্কে ভবিষ্যতের বেশিরভাগ প্রশ্নের উত্তর দেয়।