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

সমাধান আরও ভালো একটি কপি নয়। সমাধান হলো ফাইলটি না কপি করা।

ফোন বুকে আসলে কী থাকে

ফোন বুক হলো সংযোগ-সংজ্ঞার একটি পাত্র, কোনো প্রোফাইল নয়। প্রতি-ব্যবহারকারীর এন্ট্রি থাকে ব্যবহারকারী প্রোফাইলে, আর সকল-ব্যবহারকারীর এন্ট্রি থাকে মেশিন-ব্যাপী ProgramData পথে, তাই যে ডিপ্লয়মেন্ট সেই ফাইল লেখে সে একসঙ্গে প্রতিটি স্থানীয় ব্যবহারকারীকে স্পর্শ করে। একই ফাইল অন্য বিক্রেতাদের তৈরি এন্ট্রিও বহন করে, আর পার্শ্ববর্তী ক্ষতি সেখান থেকেই আসে।

সংযোগ-সংজ্ঞাও পুরো গল্প নয়। রুট, DNS নীতি, বিশ্বস্ত CA উপাদান ও পরিচয় আলাদা মালিকরা সরবরাহ করে।

প্রোফাইলটি কোন স্কোপের মালিকানায় তা খুঁজে বের করুন

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

মালিকের নাম দেওয়াই সেই ধাপ যা পরবর্তী প্রকৌশলীকে পুরো-ফাইল কপি পুনরাবৃত্তি থেকে থামায়।

নামযুক্ত সংযোগটি তৈরি করুন বা হালনাগাদ করুন, আর কিছু নয়

নেটিভ Windows প্রোফাইলের জন্য Add-VpnConnection একটি এন্ট্রি তৈরি করে, আর -AllUserConnection মেশিন-ব্যাপী স্কোপ বেছে নেয়। প্রথমে এটি -WhatIf দিয়ে চালান, যাতে প্রিভিউ আপনার ট্রান্সক্রিপ্টে পড়ে, ব্যবহারকারীর অভিযোগে নয়:

Add-VpnConnection -Name 'Office VPN' -ServerAddress 'vpn.example.com' -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $approvedEapXml -AllUserConnection -WhatIf

EAP XML কোনো বৈধ উৎস থেকে আসতে হবে: কাজ করা একটি রেফারেন্স প্রোফাইল থেকে রপ্তানি করা, অথবা আপনার ব্যবস্থাপনা টুলিং দিয়ে প্রকৃত গেটওয়ের জন্য তৈরি করা। সঠিক সার্ভার-বিশ্বাস সেটিংস ছাড়া প্রোফাইলটি হয় ভুল কিছুর সাথে সংযুক্ত হয়, নয়তো সব জায়গায় ব্যর্থ হয়, আর কোনোটিই ডিপ্লয়মেন্টের সাফল্য নয়।

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

এমন দ্বিতীয় ব্যবস্থাপনা ব্যবস্থা আছে কি না দেখুন যা পরবর্তী নীতি-রিফ্রেশে পুরোনো প্রোফাইল ফিরিয়ে দেবে। পাইলট এখানেই cmdlet-এর চেয়ে বেশিবার ব্যর্থ হয়।

এমন মেশিনে পাইলট করুন যেখানে আগেই অন্য VPN আছে

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

অপসারণও একই নিয়ম অনুসরণ করে: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection একটি এন্ট্রি অবসর দেয় আর ফাইলের বাকিটা অক্ষত রাখে।

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

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