একটি বিদ্যমান VPN সংযুক্ত করে এমন ছোট প্রোগ্রামের নতুন VPN বাস্তবায়ন নয়, কন্ট্রোলার দরকার। সমর্থিত ইঞ্জিনের কাজ হলো নেগোশিয়েশন ও টানেল ট্রাফিক সামলানো; আপনার প্রোগ্রামের কাজ ব্যবহারকারীর অনুরোধ প্রকাশ করা এবং ফলাফল সৎভাবে ব্যাখ্যা করা। Linux-এ NetworkManager D-Bus ইন্টারফেস সেই কন্ট্রোলারকে অনুসরণ করার মতো একটি সুনির্দিষ্ট মডেল দেয়।

চারটি যাচাই কন্ট্রোলারকে সংরক্ষিত প্রোফাইল, সক্রিয়করণ অনুরোধ ও কার্যরত সেশন গুলিয়ে ফেলা থেকে বিরত রাখে।

প্রথম যাচাই: কোন পরিচয় বাছা হচ্ছে

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

এটিকে মিল বলার আগে ম্যানেজার কী ফেরত দেয় তা যাচাই করুন। আর বিদ্যমান নেই এমন UUID অনুসন্ধান ব্যর্থতা তৈরি করে, যা বিদ্যমান থেকে সক্রিয়করণে অস্বীকৃতি জানানো প্রোফাইলের চেয়ে ভিন্ন কোড পাথ।

দ্বিতীয় যাচাই: সক্রিয়করণ কলে কী ফেরত আসে

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

VPN-এর ক্ষেত্রে নির্দিষ্ট অবজেক্টটি সক্রিয় ভিত্তি সংযোগ বেছে নেয়। রুট পাথ পাঠালে ডিভাইস বাছাইয়ের দায়িত্ব NetworkManager-এর হাতে চলে যায়, যা বর্তমানে ডিফল্ট যেটি সেটিই বেছে নেয়। এটি পাসওয়ার্ড ফিল্ড নয়, রাউটিং প্রসঙ্গের সিদ্ধান্ত, এবং এটি বদলে দেয় টানেল কোন ডিভাইসের উপরে বসছে।

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

তৃতীয় যাচাই: অবস্থা কীভাবে প্রকাশ করা হয়

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

অসিঙ্ক্রোনাস উত্তরগুলিকে তাদের জন্ম দেওয়া অনুরোধের সঙ্গে যুক্ত করুন। পুরোনো প্রচেষ্টার দেরিতে সম্পন্ন হওয়া নতুন ব্যবহারকারী ক্রিয়াকে চাপা দেবে না, আর বারবার Connect চাপলে হয় উপেক্ষা করুন, নয়তো দৃশ্যমান নীতিসহ বাতিল ও পুনরায় চেষ্টা হিসেবে দেখুন।

চতুর্থ যাচাই: পুনরায় চালুর পর কী হয়

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

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

ক্ষমতা ও গোপনীয়তা তাদের মালিকের কাছে রাখুন

অনুমতিগুলো হ্যাঁ, auth বা না হিসেবে ফিরে আসে, আর ইন্টারফেসে অনুমোদিত, প্রমাণীকরণের পর অনুমোদিত ও প্রত্যাখ্যাতের পার্থক্য প্রতিফলিত হওয়া উচিত। কন্ট্রোলারকে root হিসেবে চালানো অনুমতি নীতি বাস্তবায়ন করে না; এটি প্রশ্নটাই সরিয়ে দেয়।

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

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

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