nmcli বারবার VPN পাসওয়ার্ড চায়: গোপনটি স্থানীয়ভাবে সংরক্ষণ করুন
একটি ডেস্কটপ সেশন সিক্রেট এজেন্ট দিয়ে প্রম্পটের উত্তর দেয়। SSH-এর উপর কেউ তা করে না, তাই ক্রেডেনশিয়ালটি কীফাইলে রাখুন এবং প্রোফাইলটি পুনরায় লোড করুন।
একই প্রোফাইল, দুটি সেশন: এটি ডেস্কটপ থেকে সংযোগ করে এবং SSH-এর উপর এমন একটি প্রম্পটে আটকে যায় যার উত্তর দেওয়ার মতো কিছু নেই। কিছুই ভাঙা নেই এবং কোনো সেটিং হারায়নি। NetworkManager একটি সিক্রেট এজেন্টের কাছে ক্রেডেনশিয়াল চাইছে, আর সিক্রেট এজেন্ট হলো ডেস্কটপ উপাদান যা আপনার ব্যবহৃত সেশনে নেই।
নিচের ক্রমটি চালান, টানেলটি হেডলেসভাবে উঠে আসবে, তবে শর্ত থাকে যে গোপনটি সংরক্ষণ করা বদলে দেয় কে ওই প্রোফাইল ব্যবহার করতে পারবে।
কিছু সম্পাদনার আগে রোগনির্ণয় নিশ্চিত করুন
ইন্টারঅ্যাক্টিভ ও নন-ইন্টারঅ্যাক্টিভ অ্যাক্টিভেশনের পার্থক্যই পুরো রোগনির্ণয়। যদি nmcli --ask connection up সফল হয় অথচ সাধারণ অ্যাক্টিভেশন আটকে যায়, তবে প্রোফাইলটি সঠিক এবং গোপনটির উৎস অনুপস্থিত। ওই একটি তুলনা আপনাকে একটি কাজ করা কনফিগারেশন পুনর্লিখন থেকে বাঁচায়।
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show "Office IPsec" | grep -i flags
ফ্ল্যাগগুলো অনুমান না করে পড়ুন। "এজেন্টকে জিজ্ঞাসা করুন" বোঝায় এমন মানগুলোই আপনি খুঁজছেন, আর সঠিক কী নামগুলো VPN প্লাগইনভেদে ভিন্ন, কারণ সেগুলো প্লাগইনের নিজস্ব ডেটা অভিধানে থাকে। একটি FortiSSL প্রোফাইল আর একটি IPsec প্রোফাইল অগত্যা একই নাম ব্যবহার করে না, তাই নিজের প্রোফাইলের আউটপুট থেকে কাজ করুন।
এছাড়াও নিশ্চিত করুন যে ওই প্রোটোকলের প্লাগইন প্যাকেজ ইনস্টল করা আছে। অনুপস্থিত প্লাগইন অজানা সংযোগ-ধরন বা এমন অ্যাক্টিভেশন ত্রুটি হিসেবে দেখা যায় যা পাসওয়ার্ড সম্পর্কে কিছুই বলে না, আর ওই অবস্থায় গোপনটির পেছনে ছুটলে একই ঘণ্টা দুবার নষ্ট হয়। একটি প্যাকেজ কোয়েরি কীফাইল সম্পাদনার এক বিকেলের চেয়ে সস্তা।
গোপনটি কীফাইলে সরান
সংযোগ ফাইলটি /etc/NetworkManager/system-connections/-এর অধীনে থাকে। গোপনগুলো ডিফল্টভাবে সেখানে রাখা হয় না, আর আপনি এইমাত্র যে ফ্ল্যাগগুলো পড়লেন সেগুলোর তাৎপর্যই এটাই। একটি ফ্ল্যাগ শূন্যে বদলালে NetworkManager জানে যে মানটি অ্যাক্টিভেশনের সময় চাওয়ার বদলে প্রোফাইলের সঙ্গে সংরক্ষিত থাকে।
[vpn]
password-flags=0
[vpn-secrets]
password=YOUR-VPN-PASSWORD
দুটি গোপনযুক্ত প্রোফাইলের ক্ষেত্রে ধাঁচটি পুনরাবৃত্ত হয়: [vpn] বিভাগে প্রতি গোপনের জন্য একটি ফ্ল্যাগ, আর মানগুলো [vpn-secrets]-এ। একটি IPsec প্রোফাইলে সাধারণত ব্যবহারকারীর ক্রেডেনশিয়ালের পাশাপাশি একটি পূর্ব-শেয়ার করা কী থাকে, আর প্লাগইন সেগুলোর নাম দেয় সাধারণ পাসওয়ার্ড ফিল্ডের চেয়ে আলাদা, তাই vpn.data আউটপুট থেকে কী নামগুলো কপি করুন, অন্য প্লাগইন ব্যবহার করা কোনো ব্লগ পোস্ট থেকে নয়। একটি কী নাম ভুল হলে এমন প্রোফাইল তৈরি হয় যা লোড হয় এবং তারপর প্রমাণীকরণে ব্যর্থ হয়, যা হুবহু ভুল পাসওয়ার্ডের মতো পড়ায়। আবার সংযোগ করার আগে নিজের ফাইলটি একই প্লাগইনের কাজ করা প্রোফাইলের সঙ্গে মিলিয়ে দেখুন।
স্পেস, উদ্ধৃতি চিহ্ন বা ডলার চিহ্ন থাকা মানগুলো উদ্ধৃতিতে রাখুন। উদ্ধৃতিহীন মানে $ থাকলে যেখানে তা পার্স হয় তার উপর নির্ভর করে সেটি আক্ষরিকভাবে পড়া হবে বা প্রসারিত হবে, আর ফলাফল প্রমাণীকরণ ব্যর্থতা ভুল পাসওয়ার্ডের মতো দেখায়।
তারপর ফাইলের মালিকানা ও মোড ঠিক করুন। এই কীফাইলগুলো একটি বিশেষাধিকারপ্রাপ্ত সেবা পড়ে এবং অন্য ব্যবহারকারীরা পড়তে পারে এমন ফাইল অবিশ্বাসযোগ্য হিসেবে ধরা হয়, যা সম্পাদিত প্রোফাইল উপেক্ষিত দেখানোর স্বাভাবিক কারণ। মালিক root, মোড 600, কোনো ব্যতিক্রম নেই।
পুনরায় লোড করুন, তারপর সক্রিয় করুন
সংযোগ লোড হওয়ার সময় ফাইলটি পড়া হয়, তাই শুধু সম্পাদনা যথেষ্ট নয়। প্রোফাইলগুলো পুনরায় লোড করুন এবং তারপর সংযোগটি স্পষ্টভাবে তুলুন।
sudo nmcli connection reload
sudo nmcli connection up "Office IPsec"
যদি পুনরায় লোড পরিবর্তনটি না ধরে, সম্পূর্ণ সেবা পুনরারম্ভ তা ধরে, এবং ঠিক এমনটাই ঘটেছে বলে প্রতিবেদন আছে। অন্য লিঙ্কগুলো গুরুত্বপূর্ণ হলে পুনরায় লোডকে প্রাধান্য দিন, কারণ সেবা পুনরারম্ভ প্রতিটি পরিচালিত সংযোগ বিচ্ছিন্ন করে, আর দূরবর্তী হোস্টে এটি আপনার কাঙ্ক্ষিত টানেল ওঠার আগেই আপনার সেশন শেষ করতে পারে।
নাম দ্ব্যর্থক হলে UUID ব্যবহার করুন। একাধিক গ্রাহক প্রোফাইল থাকা মেশিনে প্রায়-প্রতিলিপি জমে, আর ভুলটি সক্রিয় করলে ক্রেডেনশিয়াল সমস্যার মতো দেখানো ব্যর্থতা হয়।
যখন সংরক্ষিত গোপনটিই সমস্যা নয়
একটি FortiSSL প্রোফাইল সঠিক সংরক্ষিত ক্রেডেনশিয়াল থাকা সত্ত্বেও ব্যর্থ হতে পারে, কারণ ক্লায়েন্ট কখনোই গেটওয়ের সার্টিফিকেটে বিশ্বাস করে না। ওই সেটিংটি প্রধান ডায়ালগে নেই; এটি VPN-এর উন্নত বিকল্পের পেছনে, যেখানে বিশ্বস্ত সার্টিফিকেট ডাইজেস্ট দেওয়া হয়। লগে পাসওয়ার্ডের বদলে সার্টিফিকেটের কথা থাকলে আপনি এই শাখায় আছেন এবং [vpn-secrets] সম্পাদনার কোনো পরিমাণই কাজে দেবে না।
এখানে আরও দুটি পরীক্ষা প্রযোজ্য। নিশ্চিত করুন প্রোফাইলটি এমন ফাইল থেকে আমদানি হয়নি যা এখনো প্লাগইনের পড়তে না পারা পথে নির্দেশ করে, এবং নিশ্চিত করুন যে প্রোফাইলটি সক্রিয়টি, পুরোনো প্রতিলিপি নয়। দুটোই প্রমাণীকরণ ত্রুটির মতো পড়া অ্যাক্টিভেশন ব্যর্থতা তৈরি করে।
সংরক্ষণ গ্রহণযোগ্য কি না তা নির্ধারণ করুন
সংরক্ষিত PSK ও পাসওয়ার্ড ওই মেশিনে root হিসেবে চলা যেকোনো কিছু পড়তে পারে। আপনার নিয়ন্ত্রণাধীন বাক্সে এটি হেডলেস সেবার জন্য যুক্তিসঙ্গত বিনিময়। ভাগ করা হোস্টে এটি আলোচনার দাবি রাখে, কারণ প্রোফাইলে এখন এমন ক্রেডেনশিয়াল আছে যা আগে ডেস্কটপ কীরিং দিয়ে সুরক্ষিত ছিল। সিদ্ধান্ত নেওয়ার আগেই জিজ্ঞাসা করুন ওই হোস্টে আর কে root-এ পৌঁছাতে পারে, পরিবর্তন কার্যকর হওয়ার পরে নয়।
নীতি যদি সংরক্ষিত VPN গোপন নিষিদ্ধ করে, একটি cron কাজ চালানোর জন্য প্রোফাইল দুর্বল করবেন না। যে সেশনে এজেন্ট আছে সেখান থেকে সংযোগ চালান, বা অটোমেশনের জন্য অন্য ব্যবস্থা ব্যবহার করুন।
সবশেষে, কোন প্রোফাইলে গোপন আছে তা লিখে রাখুন যাতে কেউ না বুঝে একটি ল্যাপটপে কপি না করে। তারিখ ও কারণসহ গোপন বিভাগের উপরে একটি মন্তব্যই যথেষ্ট, আর এটি পরে কাউকে এক অস্বস্তিকর পর্যালোচনা থেকে বাঁচাবে।