স্ট্যাটাস ফাইল সেশন গোনে, পেছনের ল্যান নয়
একটি স্ন্যাপশট VPN সেশন ও রাউটিং অবস্থা তালিকাভুক্ত করে, কোনো সাইটের পেছনের প্রতিটি মেশিন নয়। হেডার, রেকর্ডের ধরন ও ফাইলের বয়স একসাথে পড়ুন।
কেউ জিজ্ঞেস করে VPN-এ কতটি মেশিন আছে, আর প্রমাণ হিসেবে স্ট্যাটাস ফাইলটি দেখানো হয়। এটি আরও সংকীর্ণ প্রশ্নের উত্তর দেয়: এই স্ন্যাপশটে কতটি সেশন আছে এবং সার্ভার কোন ভার্চুয়াল ঠিকানাগুলো রাউট করে। এই দুই প্রশ্নের মধ্যবর্তী ব্যবধানেই বেশিরভাগ রিপোর্টিং ভুল বাস করে, আর তা বন্ধ করা শুরু হয় ফাইলের নিজের হেডার পড়ে।
স্ন্যাপশটে আসলে কী থাকে
সেই সার্ভার ইনস্ট্যান্সের জন্য স্ট্যাটাস আউটপুট কনফিগার করা থাকলে ফাইলটি একটি নির্দিষ্ট বিরতিতে লেখা হয়, তাই এটি পর্যায়ক্রমিক ছবি, লাইভ ফিড নয়। এর বিভাগগুলো সেশন ও অভ্যন্তরীণ রাউটিং অবস্থা আলাদাভাবে তালিকাভুক্ত করে, আর ফরম্যাট সংস্করণ কলামের বিন্যাস নির্ধারণ করে।
status /run/openvpn/office.status 30
status-version 3সংস্করণ 3 হেডার সারিসহ ট্যাব-বিভক্ত ফিল্ড লেখে, পুরোনো ফরম্যাট ভিন্ন এবং পরবর্তী সংস্করণগুলো ফিল্ড যোগ করতে পারে। কলাম নম্বর হার্ডকোড না করে হেডার পড়ুন, কারণ অবস্থান ধরে নেওয়া স্ক্রিপ্ট পরের আপগ্রেডে নীরবে ভেঙে পড়ে।
| Record | What it describes | What it cannot tell you |
|---|---|---|
| Client list | A session in this snapshot | How many people or machines that session represents |
| Real address | The outer peer address and port | Which device is behind it |
| Routing rows | Virtual addresses and route ownership | Which downstream hosts are alive |
সেশন গোনুন, মানুষ বা মেশিন নয়
একটি সাইট সংযোগ তার পেছনের কয়েকটি অনুমোদিত মেশিনের ট্রাফিক বহন করতে পারে। একজন মানুষও একই সময়ে ল্যাপটপ ও ফোন থেকে একাধিক সেশন রাখতে পারেন। এই কোনোটিই সংখ্যায় দৃশ্যমান নয়, তাই সংযুক্ত ব্যবহারকারী কেবল তখনই অর্থবহ হয় যখন আপনি এককটি সংজ্ঞায়িত করেন। কেউ গোনা শুরু করার আগে জিজ্ঞেস করুন রিপোর্টের কোন একক দরকার।
সংখ্যাটি লাইসেন্সিং বা ধারণক্ষমতার জন্য গুরুত্বপূর্ণ হলে রিপোর্টের মতো একই নথিতে এককটি সংজ্ঞায়িত করুন। যে রিপোর্ট বলে না সে সেশন, পরিচয় নাকি ডিভাইস গোনে, তা পাঠক যে একক আশা করেছিলেন সেভাবেই পড়া হবে।
বহিস্থ ঠিকানা কোনো শনাক্তকারী নয়
রিয়েল-অ্যাড্রেস ফিল্ড হলো সার্ভার যেভাবে দেখে সেই পিয়ার ঠিকানা ও পোর্ট। একটি অনূদিত পাবলিক ঠিকানার পেছনের কয়েকটি ক্লায়েন্ট সেই ঠিকানাটি ভাগ করে, তাই এটি দিয়ে গ্রুপ করলে সম্পর্কহীন সেশন মিলে যায়। পোর্টও সংযোগের মধ্যে বদলায়, যা জোড়াটিকে স্থির কি হিসেবে অকেজো করে। এভাবে গ্রুপ করা রিপোর্ট নিখুঁত দেখায় এবং ভুল।
গ্রুপিংয়ের জন্য কার্যকর ক্লায়েন্ট পরিচয় ব্যবহার করুন, আর ঠিকানাটিকে পরিবহন বিবরণ হিসেবে দেখুন। যখন দুটি সারি একটি পরিচয় ভাগ করে, এর অর্থ সাধারণত একসঙ্গে চলা সেশন, নকল রেকর্ড নয়।
রাউটিং সারি হোস্ট ইনভেন্টরি নয়
একটি রাউটিং এন্ট্রি এমন সাবনেটের নাম দিতে পারে যার দায়িত্ব এক পিয়ারের, আর সাবনেট তার হোস্টগুলোর তালিকা নয়। সার্ভার জানে যে সেই রেঞ্জ নির্দিষ্ট সেশনে পাঠাতে হবে, এবং কোন মেশিন চালু, কোনো অ্যাপ্লিকেশনে প্রমাণিত বা কারও কাজে লাগবে তা তার জানা নেই। রাউটিং টেবিল নাগাল বর্ণনা করে, দখল নয়। এই পার্থক্যই হলো VPN কেন ইনভেন্টরি প্রশ্নের উত্তর দিতে পারে না তার পুরো কারণ।
কয়েকটি সারি একই পিয়ারেও নির্দেশ করতে পারে, কারণ একটি সাইট একাধিক রেঞ্জ ঘোষণা করতে পারে। সারি গুনে ফলাফলকে ডিভাইস সংখ্যা বলা স্থাপনাটিকে ইচ্ছামতো গুণক দিয়ে বাড়িয়ে দেখায়।
প্রয়োজনটি সত্যিই সম্পদ ইনভেন্টরি হলে যে নেটওয়ার্কের মালিক সেই ইনভেন্টরি প্রক্রিয়া ব্যবহার করুন। VPN শনাক্ত করতে পারে কোন পিয়ার রুট বহন করে, আর তা পেছনে কোন হোস্ট আছে তার থেকে আলাদা তথ্য।
বয়স, অনুমতি ও লাইভ দৃশ্য
প্রতিটি উত্তরের সঙ্গে ফাইলের পরিবর্তনের সময় রাখুন। কয়েক ঘণ্টা আগে থেমে যাওয়া সার্ভার তার শেষ স্ন্যাপশট জায়গায় রেখে যায়, আর সেকেলে ফাইলকে চলমান বলে উপস্থাপন করা কোনো রিপোর্ট না থাকার চেয়েও খারাপ।
ডিরেক্টরিটি থাকতে হবে এবং যে অ্যাকাউন্টে সার্ভিসটি আসলে চলে সেই অ্যাকাউন্টের লেখার অধিকার থাকতে হবে, যা হার্ডেনিং পর্বের পরে ভুলে যাওয়া সহজ। ফাইলে সাধারণত নাম ও ঠিকানা থাকে, তাই এটি প্রশাসনিক জায়গায় রাখুন, এমন কোথাও নয় যেখান থেকে ওয়েব সার্ভার এটি পরিবেশন করতে পারে। অনুমতি আপনার শেল থেকে নয়, সার্ভিস অ্যাকাউন্ট থেকে যাচাই করুন। যে স্ন্যাপশট নীরবে হালনাগাদ হওয়া বন্ধ করে, তা শান্ত নেটওয়ার্কের মতোই দেখায়।
ইভেন্ট-চালিত প্রয়োজনে দ্রুততর পোলিংয়ের বদলে সমর্থিত ম্যানেজমেন্ট ইন্টারফেস ব্যবহার করুন। সেই ইন্টারফেসকে মেট্রিক নয়, নিয়ন্ত্রণ হিসেবে দেখুন, এবং কেবল সেশন গুনতে তা ইন্টারনেটে কখনো উন্মুক্ত করবেন না।