সংরক্ষিত VPN পাসওয়ার্ড দেখানো থেকে NetworkManager-কে থামান
প্রতিবার জিজ্ঞাসা করুন, কী-রিংয়ে দিন, অথবা কেবল root-এর জন্য সংরক্ষিত ফাইল রাখুন। প্রতিটি পছন্দের ঝুঁকি আলাদা, আর পাসওয়ার্ড ফ্ল্যাগ সেই পছন্দের সঙ্গে মিলতে হবে।
NetworkManager একটি VPN পাসওয়ার্ড ধরে রাখতে পারে, যাতে কেউ টাইপ না করেই সংযোগ চালু হয়, এবং সেই মানটি এডিটর বা nmcli --show-secrets-এর মাধ্যমে আবার দেখাতে পারে। তিনটি মালিকানা মডেল আছে, আর প্রদর্শনের আচরণ কেবল আপনি কোনটি বেছেছেন তার উপসর্গ। আগে মডেল বেছে নিন, তারপর তার সঙ্গে মেলে এমন ফ্ল্যাগ সেট করুন; পরের মানুষকে বিভ্রান্ত করবে এমন প্লেসহোল্ডার দিয়ে ফিল্ড লুকাবেন না।
তিনটি মালিকানা মডেল
প্রথম মডেল প্রতিবার জিজ্ঞাসা করে। কিছুই সংরক্ষিত হয় না, গোপন মানটি কেবল সক্রিয়করণের সময়টুকু থাকে, আর সংযোগ শুরু করা যে কেউ পাসওয়ার্ড জানতে হবে। এটি সবচেয়ে কম সুবিধাজনক বিকল্প এবং রক্ষা করা সবচেয়ে সহজ।
দ্বিতীয়টি গোপন মানটি ব্যবহারকারীর মালিকানাধীন কী-রিংয়ে দেয়। এজেন্ট সেশন শুরু হলে আনলক হয় এবং চাহিদামতো মানটি সরবরাহ করে, যা এটি সংযোগ ফাইলের বাইরে রাখে কিন্তু সংযোগটিকে ওই ব্যবহারকারীর সেশনের সঙ্গে বেঁধে দেয়। এখান থেকে দুটি শর্ত আসে: এজেন্টকে চলতে হবে, এবং আনলক থাকতে হবে।
তৃতীয়টি সিস্টেম সংযোগের জন্য সুরক্ষিত ক্রেডেনশিয়াল সংরক্ষণ করে। এটি রিবুটেও টিকে থাকে এবং কেউ লগইন করার আগেই কাজ করে, বিনিময়ে মানটি ডিস্কে থাকে ফাইল অনুমতি দিয়ে সুরক্ষিত, এনক্রিপশন দিয়ে নয়।
প্রতিটি মডেল সঠিক প্রসঙ্গে যুক্তিসঙ্গত। ভুলটি হলো সেগুলো মেশানো, আর এভাবেই ল্যাপটপে গোপন মান দুই জায়গায় থেকে যায় এবং কোনটি প্রামাণিক তা নিয়ে স্পষ্ট উত্তর থাকে না। একটি প্রোফাইল কোন মডেল ব্যবহার করে তা লিখে রাখুন। দলের রানবুকে এক লাইন পরের মানুষকে চতুর্থ খোঁজার জায়গা বানানো থেকে বাঁচায়।
পরিবর্তনের আগে বর্তমান অবস্থা পড়ুন
সংযোগ পরিচালনা করেন এমন ব্যবহারকারী হিসেবে প্রোফাইল ও গোপন মানের অবস্থা দেখুন। দ্বিতীয় কমান্ডটিই বলে দেয় মানটি সত্যিই পাঠযোগ্য কি না।
nmcli connection show "Office VPN"
nmcli --show-secrets connection show "Office VPN"
sudo stat -c '%U %a %n' /etc/NetworkManager/system-connections/*.nmconnection
ওই ডিরেক্টরির কীফাইল সাধারণত root-এর মালিকানায় মোড 600-এ থাকে। এটি সাধারণ ব্যবহারকারীদের বাইরে রাখে, কিন্তু root-কে বাইরে রাখে না, যা গুরুত্বপূর্ণ যখন একই মেশিন ভাগ করা হয় বা ব্যাকআপ root হিসেবে চলে।
ফাইল অনুমতি একটি সীমা, এনক্রিপশন নয়। যে কেউ root হিসেবে ফাইলটি পড়তে পারে, তার কাছে পাসওয়ার্ড স্পষ্ট লেখায় থাকে। এটি তদারকিহীন সার্ভারের জন্য গ্রহণযোগ্য বিনিময় এবং ভাগ করা ওয়ার্কস্টেশনের জন্য খারাপ। একবার লিখে রাখলে মানটি সুরক্ষিত কি না নিয়ে দীর্ঘ তর্ক এড়ানো যায়।
প্রতিটি ফ্ল্যাগ মান কী করে
VPN গোপন মানটিতে একটি flags বৈশিষ্ট্য থাকে, আর শুধু সংখ্যা থেকে মানগুলো স্বজ্ঞাত নয়।
| Value | Meaning | Practical effect |
|---|---|---|
| 0 | No special flag | Secret is typically saved with the connection |
| 1 | Agent-owned | A keyring or secret agent supplies it |
| 2 | Not saved | Prompted at each activation |
| 4 | Not required | Connection proceeds without asking |
কার্যকর আচরণ প্লাগইনের উপর এবং এজেন্ট চলছে কি না তার উপরও নির্ভর করে, তাই টেবিলটিকে চুক্তি আর পর্যবেক্ষিত আচরণকে যাচাইয়ের বিষয় ধরুন। একটি ডেস্কটপে কাজ করা মান সেশনহীন সার্ভারে ভিন্নভাবে আচরণ করতে পারে। বেশিরভাগ বিভ্রান্তিকর টিকিট এই ফাঁকে বাস করে।
লাইন মুছে আশা করার বদলে বৈশিষ্ট্যটি স্পষ্টভাবে সেট করুন। অনুপস্থিত ফ্ল্যাগ কোনো নীতি নয়, আর পরের প্যাকেজ আপডেট এটি আপনার অজান্তে কিছু দিয়ে ভরে দিতে পারে।
সংযোগ কখন শুরু হয় তার সঙ্গে মডেল মিলান
যদি সংযোগ কেবল ব্যবহারকারী লগইন থাকা অবস্থায় শুরু হয়, তবে এজেন্ট-মালিকানা ভালো মানায় এবং গোপন মানটি ফাইলের বাইরে রাখে। যদি এটি বুটের সময়, কোনো সেশন থাকার আগেই শুরু হয়, তবে এজেন্ট আপনাকে সাহায্য করতে পারবে না।
বেশিরভাগ মেশিনের জন্য এটাই পুরো সিদ্ধান্ত। এটি এমন এক শ্রেণির বিভ্রান্তিকর প্রতিবেদনও ব্যাখ্যা করে যেখানে সংযোগ ইন্টারঅ্যাকটিভভাবে কাজ করে কিন্তু রিবুটের পর ব্যর্থ হয়। ফ্ল্যাগ কখনো বদলায়নি; প্রসঙ্গ বদলেছে।
তদারকিহীন ক্ষেত্রে সীমাবদ্ধ root-মালিকানাধীন ফাইল বা অনুমোদিত ক্রেডেনশিয়াল উৎসই বাস্তব উত্তর। প্রোফাইলটি কখনো রপ্তানি বা অন্য মেশিনে কপি হলে এটি সংযোগ প্রোফাইলের বাইরে রাখুন।
যদি মান আগেই দৃশ্যমান ছিল, এটি পরিবর্তন করুন
ফ্ল্যাগ বদলালে পাসওয়ার্ড নিজে অপরিবর্তিত থাকে। স্ক্রিনশটে, shell ইতিহাসে, সাপোর্টে পাঠানো বান্ডলে, বা অন্য ব্যবহারকারীরা খুলতে পারত এমন ফাইলে যে মান উঠে এসেছে, তাকে প্রকাশিত ধরতে হবে।
সার্ভারে এটি বদলান, তারপর ক্লায়েন্ট ঠিক করুন এবং পুরোনোটি দিয়ে প্রমাণিত যেকোনো সেশন বন্ধ করুন। লোকাল সংযোগ মুছলে অপর প্রান্তে কিছুই বাতিল হয় না, আর মানুষ ঠিক এই অংশটাই ভুলে যায়।
তারপর পাসওয়ার্ড কমান্ড লাইনে দেওয়া বন্ধ করুন। এটি shell ইতিহাসে জমা হয় এবং প্রসেস তালিকায় দেখা দিতে পারে; বরং ইন্টারঅ্যাকটিভ প্রম্পট বা এজেন্ট ব্যবহার করুন।
আবার সংযোগ করে যাচাই করুন
যে কমান্ডটি গোপন মান দেখিয়েছিল তা পুনরাবৃত্তি করুন এবং ফিল্ডটি আর ছাপা হচ্ছে না তা নিশ্চিত করুন। তারপর সংযোগ বিচ্ছিন্ন করে আবার যুক্ত করুন, আর সংযোগ স্বয়ংক্রিয়ভাবে শুরু হলে রিবুট করুন, কারণ আকর্ষণীয় ব্যর্থতা কেবল সেশন প্রসঙ্গ বদলালেই দেখা দেয়।
গোপন মান এখনো দেখা গেলে অন্য কোনো প্রোফাইল বা অন্য এজেন্ট সেটি সরবরাহ করছে। ফাইল মুছে ফেলার বদলে সক্রিয় সংযোগ ও কী-রিং পরীক্ষা করুন, যতক্ষণ না উপসর্গটি সরে যায়।