Linux আপনার VPN পাসওয়ার্ড কোথায় রাখবে? প্রোফাইলে নয়
NetworkManager-এর সিক্রেট ফ্ল্যাগ ঠিক করে পাসওয়ার্ড প্রোফাইল, কি-রিং এজেন্ট নাকি কেউই রাখবে না। উত্তর নির্ভর করে সংযোগ কখন শুরু হয় তার উপর।
VPN পাসওয়ার্ডকে কোথাও থাকতেই হবে: সংযোগ প্রোফাইলে, ডেস্কটপ যে কি-রিং খোলে তাতে, নয়তো কোথাও না। NetworkManager এই বাছাইকে সিক্রেট ফ্ল্যাগ বলে, আর ভুলটি বাছাই করলেই লগইনের পরে সংযোগ কাজ করে অথচ সার্ভিস হিসেবে ব্যর্থ হয়। ফ্ল্যাগটি কনফিগারেশনের এক লাইন, এবং এটি ঠিক করে দেয় আপনি ওই তিনটি ফলাফলের কোনটি পাবেন।
তিনটি ফ্ল্যাগ প্রায় প্রতিটি ক্ষেত্রেই যথেষ্ট, আর সিদ্ধান্তটি নির্ভর করে সংযোগ কখন শুরু হয় তার উপর।
তিনটি সিক্রেট ফ্ল্যাগ, তিনটি আচরণ
ফ্ল্যাগ 0 মানে সিক্রেটটি সংযোগের সঙ্গে সংরক্ষিত থাকে, প্রোফাইল যে স্টোরেই থাকুক। ফ্ল্যাগ 1 এটিকে এজেন্ট-মালিকানার করে: সিক্রেট আসে সিক্রেট এজেন্ট থেকে, যেমন ডেস্কটপের কি-রিং, আর NetworkManager সক্রিয় করার সময় এটি চায়। ফ্ল্যাগ 2 মানে সংরক্ষিত নয়, তাই সিক্রেট কখনো লেখা হয় না এবং প্রতি বার দিতে হয়। ফ্ল্যাগ 4 একটি সিক্রেটকে অপ্রয়োজনীয় হিসেবে চিহ্নিত করে, এমন সংযোগের জন্য যেগুলোর সত্যিই কোনওটির দরকার নেই।
| Flag | Where it lives | Works unattended |
|---|---|---|
| 0 saved | Connection profile | Yes, if the store is readable |
| 1 agent-owned | Secret agent or keyring | Only if that agent is available |
| 2 not-saved | Nowhere | No |
ফ্ল্যাগ সংযোগ অনুযায়ী নয়, প্রতিটি সিক্রেট অনুযায়ী দিন। একটি সংযোগে এজেন্ট-মালিকানার পাসওয়ার্ড এবং সংরক্ষিত প্রাইভেট-কি পাসফ্রেজ দুটোই থাকতে পারে।
সংযোগ কখন শুরু হয় তা দেখে সিদ্ধান্ত নিন
যদি লগইন করা ব্যবহারকারী সংযোগটি শুরু করেন, তবে এজেন্ট-মালিকানাই বুদ্ধিমান ডিফল্ট: লগইনে কি-রিং খুলে যায় এবং সিক্রেট কখনো ফাইলে বসে না। যদি কেউ লগইন করার আগেই সংযোগ উঠতে হয়, তবে এজেন্ট-মালিকানা ভুল বাছাই, কারণ খোলার মতো কোনও সেশন কি-রিং নেই।
সিদ্ধান্ত এইটুকুই। বাকি সব তার একটি রূপ।
লগইনের আগে চলা সার্ভিসের জন্য সিস্টেম-পরিসরের স্টোর বা সুরক্ষিত কি-ফাইলই সমর্থিত প্যাটার্ন, আর ফাইলের অনুমতিই হয়ে ওঠে সুরক্ষা। বুটে চলা শেল স্ক্রিপ্টে পাসওয়ার্ড পেস্ট করে সমস্যাটি সমাধান করবেন না।
কি-রিং যা দেয় আর যা দেয় না
কি-রিং সিক্রেটকে সংযোগ প্রোফাইলের বাইরে রাখে এবং ব্যবহারকারী সেশনের সঙ্গে বেঁধে দেয়। এটি সেশনহীন সার্ভিসের জন্য সিক্রেটকে উপলভ্য করে না, আর তারে কিছুই এনক্রিপ্ট করে না। এগুলো আলাদা বৈশিষ্ট্য যা মানুষ প্রায়ই মিশিয়ে ফেলে। যা সত্যিই পাওয়া যায় তা হল প্রোফাইল ফাইল ফাঁস হলে ছোট ক্ষতির পরিসর।
প্রোফাইল যে প্রাইভেট কি উল্লেখ করে তার নিজের অনুমতি দরকার, পাসওয়ার্ড কোথায় থাকে তা নির্বিশেষে।
সিক্রেট ফেলে না দিয়ে ডায়াগনস্টিক
সংযোগের নাম, UUID আর ফ্ল্যাগ সাধারণত ব্যর্থতা ব্যাখ্যা করার জন্য যথেষ্ট। nmcli connection show প্রোফাইলটি তালিকাভুক্ত করে, আর সিক্রেট ফ্ল্যাগ বলে দেয় পাসওয়ার্ড কোথা থেকে আসার কথা ছিল।
এড়িয়ে চলুন --show-secrets টিকিট আর চ্যাটে। একবার পেস্ট হয়ে গেলে এটি ট্রান্সক্রিপ্টে একটি ক্রেডেনশিয়াল।
সংরক্ষণ মানে প্রত্যাহার নয়
একটি কি-রিং থেকে সিক্রেট সরালে দূরবর্তী অপারেটর যে ক্রেডেনশিয়াল ইতিমধ্যেই গ্রহণ করেছেন তা অকার্যকর হয় না। অ্যাকাউন্ট প্রত্যাহার সার্ভার-পক্ষের কাজ, আর স্থানীয় সংরক্ষণ আলাদা মালিকানার আলাদা বিষয়।
ঘটনার আগেই দুটোরই সিদ্ধান্ত নিন, ঘটনার সময় নয়। ইন্টারঅ্যাকটিভ ব্যবহারকারী সংযোগ আর লগইন-পূর্ব সার্ভিসের উত্তর আলাদা, আর ভাগ করা শেল স্ক্রিপ্ট কোনওটিই নয়। NetworkManager-এর সিক্রেট ফ্ল্যাগ ডকুমেন্টেশন মানগুলো পুরোপুরি তালিকাভুক্ত করে।