আপনি একটি স্ক্রিপ্ট লেখেন যা সংযোগের নাম দিয়ে scutil --nc start চালায়, এটি আপনার Mac-এ কাজ করে, আর অফিসের প্রতিটি সদ্য ইনস্টল করা মেশিনে ব্যর্থ হয়। স্ক্রিপ্টটি নষ্ট নয়। এটিকে এমন কিছু করতে বলা হচ্ছে যা এটি কখনোই করতে পারত না: বিদ্যমান সংযোগ চালু করা আর নতুন সংযোগ তৈরি করা একই কাজ নয়।

প্রস্তুতি ও সেশন নিয়ন্ত্রণ দুটি আলাদা কাজ, দুজন মালিক, আর অন্যথা ধরে নেওয়া কোনো কর্মপ্রবাহ যে মেশিনে লেখা হয়েছে সেখানেই সব পরীক্ষায় উত্তীর্ণ হবে।

স্টার্ট কমান্ড আসলে কার সঙ্গে কথা বলে

সেশন-নিয়ন্ত্রণ কমান্ড এমন একটি কনফিগারেশনকে সম্বোধন করে যা ইতিমধ্যেই আছে ও অনুমোদিত। এটি সিস্টেমকে সেই নামযুক্ত সংযোগ চালু করতে বলে, আগে সংরক্ষিত সার্ভার সেটিংস, পরিচয়ের রেফারেন্স ও নীতি ব্যবহার করে। সেগুলো কখনো ইনস্টল না হলে চালু করার কিছু নেই।

এই কারণেই ব্যর্থতা নতুন হার্ডওয়্যারে দেখা যায়, প্রশাসকের ল্যাপটপে নয়। ল্যাপটপটি মাসখানেক আগে এমন একজন প্রস্তুত করেছিলেন যিনি তা করতে ভুলে গেছেন। স্টার্ট কমান্ডকে গত প্রান্তিকে কেউ লাগানো একটি দরজার ঘণ্টা ভাবুন। এটি চাপা তার লাগানোর সমান নয়।

VPN কনফিগারেশনের তিন মালিক

সংস্থা-পরিচালিত প্রোফাইল আসে ডিভাইস ব্যবস্থাপনা থেকে। প্রোফাইলটি সার্ভারের ঠিকানা, প্রমাণীকরণের বিন্যাস এবং সংস্থার প্রয়োজনীয় নীতি বহন করে, আর VPN প্রশাসক সেই ব্যক্তি যিনি সেগুলো সরবরাহ করেন। স্ক্রিপ্টের উচিত নয় তালিকায় পাওয়া কোনো প্রদর্শন নাম থেকে সেই সেটিংস পুনর্গঠন করা।

নেটিভ ব্যক্তিগত VPN কনফিগারেশন তৈরি হয় Apple-এর Network Extension API দিয়ে, যা অন্তর্নির্মিত IPsec ও IKEv2 প্রোটোকল কভার করে। এটি সংরক্ষণ ধাপ ও ব্যবহারকারীর অনুমোদনসহ একটি অ্যাপ্লিকেশন ইন্টারফেস, কোনো shell কমান্ড নয় যা চুপচাপ সরবরাহকারীর যেকোনো টানেল তৈরি করে।

তৃতীয় পক্ষের ক্লায়েন্ট তৃতীয় একটি ক্ষেত্র, যার নিজস্ব আমদানি বিন্যাস, নিজস্ব ব্যবস্থাপনা সরঞ্জাম এবং প্রায়ই নিজস্ব বিশেষাধিকারপ্রাপ্ত সহায়ক থাকে। এর সেশন ওই সরবরাহকারীর প্রসেসের মালিকানাধীন। একই নামের একটি সিস্টেম সেবা খুঁজে পাওয়া প্রমাণ নয় যে কোনো সিস্টেম কমান্ড টানেল নিয়ন্ত্রণ করে, আর তা ধরে নিলে এমন স্ক্রিপ্ট তৈরি হয় যা সরবরাহকারী ক্লায়েন্ট হালনাগাদ না করা পর্যন্ত কাজ করছে বলে মনে হয়।

নেটিভ প্রস্তুতিতে সংরক্ষণ ও অনুমোদন থাকে

Apple-এর মডেল হলো লোড, পরিবর্তন, সংরক্ষণ। একটি অ্যাপ্লিকেশন চালুর পর তার প্রথম সংরক্ষণের আগে বিদ্যমান পছন্দ লোড করে, কনফিগারেশন বদলায়, তারপর সংরক্ষণ করে। সংরক্ষণ ব্যর্থ হলে ত্রুটি জানায়, আর সেই ফল উপেক্ষা করলে প্রস্তুতির ব্যর্থতা তিন ধাপ পরে সংযোগ ব্যর্থতায় পরিণত হয়।

প্রথম সংরক্ষণের জন্য ব্যবহারকারীর অ্যাপ্লিকেশন অনুমোদনও দরকার। এটি ইচ্ছাকৃত নিরাপত্তা সীমানা, আর এর অর্থ নতুন Mac-এ প্রথম চালানো পরস্পরক্রিয়ামূলক, যদিও পরবর্তী প্রতিটি সংযোগ ও বিচ্ছেদ স্বয়ংক্রিয় করা যায়। প্রথম চালানোকে মানুষ উপস্থিত থাকা একটি মানবিক কাজ হিসেবে পরিকল্পনা করুন। দ্বিতীয় চালানো থেকে স্বয়ংক্রিয় করুন এবং রানবুকে তা লিখুন যেন কেউ অসম্ভবের প্রতিশ্রুতি না দেয়। সম্পূর্ণ মানবহীন প্রথম চালানোর প্রতিশ্রুতি দেওয়া স্থাপনা পরিকল্পনা এমন কিছু প্রতিশ্রুতি দিচ্ছে যা প্ল্যাটফর্ম দেয় না।

Apple আরও সুপারিশ করে API-এর উপর নির্ভর করার আগে কনফিগারেশন প্রোফাইল দিয়ে সার্ভারের সামঞ্জস্য যাচাই করতে। আগে এই যাচাই করলে «সার্ভার এই ক্লায়েন্ট গ্রহণ করবে না» আর «ক্লায়েন্ট কখনো সেটিংস সংরক্ষণ করেনি» আলাদা হয়, আর এগুলো ভিন্ন দলের জন্য ভিন্ন টিকিট।

পুনরাবৃত্তিযোগ্য স্টার্ট কমান্ড কী ধরে নিতে পারে

প্রস্তুতির পরে স্ক্রিপ্ট নিরাপদে তার মালিকের ইন্টারফেস দিয়ে বিদ্যমান সংযোগকে লক্ষ্য করতে পারে। এটিকে সংযোগের স্থিতিশীল পরিচয় আর আপনি যে কাজ চান তা দিন, আর কিছু নয়। এটি অনুমান করা কোনো পছন্দের পথ পড়া উচিত নয়, আর ধরে নেওয়া উচিত নয় যে মেনুতে দেখানো নামটি পুরো সিস্টেমে অনন্য।

নেটিভ সংযোগের জন্য scutil --nc start-এর মতো নামযুক্ত সেশন অনুরোধ একটি নিয়ন্ত্রণ কাজ। এটি সার্ভার সেটিংস ইনস্টল করে না, পরিচয়পত্র আমদানি করে না, প্রথম-সংরক্ষণ অনুমোদনও করে না। এটিকে শৃঙ্খলের শেষ ধাপ হিসেবে দেখুন, কখনো পুরো শৃঙ্খল হিসেবে নয়।

গোপন তথ্য কমান্ড-লাইন আর্গুমেন্ট ও সাধারণ ডায়াগনস্টিক আউটপুটের বাইরে রাখুন। স্থাপনা যে পরিচয় ব্যবস্থা বেছে নিয়েছে সেটির উপরই স্টার্ট কমান্ডের নির্ভর করা উচিত, আর shell ইতিহাসে আটকানো পাসওয়ার্ড যে কোনো পর্যালোচনায় একটি ত্রুটি।

দুটি গ্রহণযোগ্যতা যাচাই

প্রথম যাচাই প্রস্তুতি: একটি সদ্য ইনস্টল করা Mac নিন এবং প্রমাণ করুন কনফিগারেশনটি আছে, সঠিক ব্যবস্থাপকের মালিকানাধীন এবং সম্পূর্ণ অনুমোদিত। সংযোগ পরীক্ষার আগে এটি করুন, কারণ অপ্রস্তুত মেশিনে সংযোগ পরীক্ষা স্ক্রিপ্ট সম্পর্কে কিছুই প্রমাণ করে না।

দ্বিতীয় যাচাই সেশন: সংযুক্ত হোন, অনুমোদিত সম্পদে পৌঁছান এবং পরিষ্কারভাবে বিচ্ছিন্ন হোন। এখন প্রতিটি ব্যর্থতার একটি মালিক আছে, আর এটাই দুটি কাজ ভাগ করার বাস্তব সুবিধা। অনুপস্থিত প্রোফাইল সরবরাহের সমস্যা, সংরক্ষণ ত্রুটি অনুমোদনের সমস্যা, প্রত্যাখ্যাত লগইন প্রমাণীকরণের সমস্যা, আর সফল সূচনার পরে সময়সীমা শেষ হওয়া সেশন স্তর। এর কোনোটিই «স্ক্রিপ্টটি নষ্ট» নয়।

সম্পর্কিত নিবন্ধ