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

ধারণাটি, এবং তার দাম

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

ইন্টারফেসে কোনো কিছুই কেবল-পঠনযোগ্য মোডের বিজ্ঞাপন দেয় না। নির্বাচন করার মতো কোনো পর্যবেক্ষক ভূমিকা নেই, আর কনফিগারেশনে একটি ইউজারনেম থাকলেই তা তৈরি হয় না।

অনুমোদিত ক্লায়েন্ট আসলে কী ধরে রাখে

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

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

নিজের মালিকানার সকেট, খোলা সকেট নয়

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

management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observer

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

অনুমতির ত্রুটি দূর করতে সকেটকে সবার জন্য উন্মুক্ত করাই সেই একটি সমাধান যা এড়াতে হবে। এটি একটি স্থানীয় নিয়ন্ত্রণ চ্যানেলকে হোস্টের যেকোনো প্রসেস চালাতে পারে এমন কিছুতে পরিণত করে।

TCP দিয়ে এটি প্রকাশ করা একই ডিজাইন নয়

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

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

আপনি যে স্টার্টআপ নির্ভরতাগুলো চাননি

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

সকেটের বাইরে কিছু সক্রিয় করার আগে সেই অপশনগুলো পর্যালোচনা করুন। ঐচ্ছিক পর্যবেক্ষণ ঐচ্ছিকই থাকা উচিত, আর রিস্টার্ট নীতিকে গ্রাফের জন্য যোগ করা কালেক্টরের সাথে যুক্ত করা উচিত নয়।

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

গ্রহণযোগ্যতা দেখতে কেমন

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

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

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