OpenVPN auth-nocache: পরের লগইনে কী হয়
OpenVPN-এর মেমোরিতে থাকা ক্রেডেনশিয়াল মুছে ফেললে পরের প্রমাণীকরণ বদলে যায়। ইন্টারঅ্যাকটিভ ক্লায়েন্ট, ক্রেডেনশিয়াল ফাইল ও সার্ভিসের জন্য আলাদা ব্যবস্থা দরকার।
auth-nocache চালু করুন এবং পাসওয়ার্ড ক্যাশিংয়ের সতর্কবার্তাটি হারিয়ে যায়, সঙ্গে OpenVPN পরের পুনর্নিবার্তনার জন্য যে ক্রেডেনশিয়ালের কপি রেখেছিল সেটিও। এটি প্রম্পট, নিঃশব্দ পুনঃচেষ্টা নাকি ছিঁড়ে যাওয়া টানেল হবে, তা নির্ভর করে দ্বিতীয়বার ক্রেডেনশিয়াল কোথা থেকে আসছে তার উপর। তাই এটি বিকল্পটির উপর রায় নয়, বরং ডিপ্লয়মেন্টের আকারগুলোর মধ্যে তুলনা। কোনো প্রোফাইল সম্পাদনার আগে আপনি আসলে যে আকারটি চালান সেটি পড়ুন।
দ্বিতীয় ক্রেডেনশিয়ালের সেটটি কোথা থেকে আসতে হবে
OpenVPN auth-nocache প্রয়োগ করে auth-user-pass ও askpass-এর সংগৃহীত গোপন তথ্যে: একবার ব্যবহৃত হলে প্রক্রিয়াটি সেগুলো পরের হ্যান্ডশেকের জন্য ধরে না রেখে ফেলে দেয়। পুনর্নিবার্তনা টাইমারে আসে, ডিফল্টে ঘণ্টায় একবার, তাই দ্বিতীয় অনুরোধ আসে পাসওয়ার্ড টাইপ করা ব্যক্তি বহু আগে চলে যাওয়ার পরে। সেই ফাঁকটাই পুরো গল্প। ক্যাশিং চালু থাকলে ক্লায়েন্ট কাউকে না জিজ্ঞাসা করেই সংরক্ষিত কপিটি আবার চালায়; ক্যাশিং বন্ধ থাকলে তাকে গোপন তথ্য অন্য কোথাও খুঁজতে হয় বা ব্যর্থ হতে হয়।
তাই সেই মুহূর্তে গোপন তথ্য কোথা থেকে আসতে পারে তার প্রতিটি জায়গা তালিকাভুক্ত করুন এবং হোস্টে সেগুলোর কোনটি আছে তা সৎভাবে বলুন। টার্মিনালে বসা একজন মানুষ, auth-user-pass বা askpass যে ফাইল পড়তে পারে, বা সার্ভারের দেওয়া সেশন টোকেন—এই তিনটিই এখানে গুরুত্বপূর্ণ। এর কোনোটিই না থাকলে পুনর্নিবার্তনা পরিবর্তনের এক ঘণ্টা পরে ব্যর্থ হয়, আপনি যেই মুহূর্তে পরিবর্তন করেছেন তখন নয়।
তিন আকার, তিন ব্যর্থতার বিন্দু
সামনে একজন মানুষ থাকা ডেস্কটপ ক্লায়েন্ট হালকা ক্ষেত্র: প্রম্পট ফিরে আসে, কেউ আবার পাসওয়ার্ড লেখে, আর খরচটা মনোযোগ। টার্মিনাল ছাড়া OpenVPN চালানো সার্ভিস, কন্টেইনার বা রাউটার কঠিন ক্ষেত্র, কারণ উত্তর দেওয়ার কেউ নেই এবং আগে যে সংযোগ নিঃশব্দ ছিল তা এখন টানেল শেষ করে দেয়। হাইব্রিড দুটির মাঝখানে থাকে এবং যে সেশন প্রম্পটের উত্তর দিতে পারত সেটি না যাওয়া পর্যন্ত ডেস্কটপ ক্ষেত্রের মতো আচরণ করে। এদের পার্থক্য GUI ইনস্টল আছে কি না তা নয়, বরং পুনর্নিবার্তনার সময় ক্রেডেনশিয়ালের উৎস আছে কি না তা।
কিছু বদলানোর আগে আপনার ডিপ্লয়মেন্টকে এই তিনটির একটিতে মিলিয়ে নিন, কারণ অনলাইনে যে পরামর্শ পাবেন তা প্রায় সবসময় প্রথমটির জন্য লেখা। ডেস্কটপের উত্তর টার্মিনালহীন সার্ভিসে প্রয়োগ করলেই মাসের পর মাস চলা টানেল প্রতি ঘণ্টায় ছিঁড়তে শুরু করে।
ডিরেক্টিভ নাকি ফ্ল্যাগ: একটি বেছে নিন এবং কোনটি ব্যবহার করেছেন জানুন
প্রোফাইলের ভিতরে auth-nocache আলাদা একটি লাইন; যে আহ্বানে প্রোফাইল স্পষ্টভাবে নাম দেওয়া হয় সেখানে এটি ওই কমান্ড লাইনের ফ্ল্যাগ, এবং OpenVPN ম্যানুয়াল দুই রূপই তালিকাভুক্ত করে। দুটিই ক্রেডেনশিয়াল ধরে রাখার ক্ষেত্রে একই কাজ করে এবং কোনোটিই ইন্টারফেসের ধরনে হাত দেয় না বা একই লগে থাকা অসম্পর্কিত সতর্কবার্তা সারায় না। পার্থক্য স্থায়িত্বে: ফ্ল্যাগ কেবল সেই রানটুকু ঢাকে, তাই unit ফাইল বা র্যাপার স্ক্রিপ্ট থেকে পুনরায় চালু করা সার্ভিসের কাছে এটি থাকবে না, যদি র্যাপারও এটি না পাঠায়।
auth-nocache
openvpn --config /path/client.ovpn --auth-nocacheসেটিংটি কোন আর্টিফ্যাক্টের মালিকানায় থাকবে তা ঠিক করুন, কেবল সেখানেই বদলান, অন্য কোথাও নয়। ল্যাপটপে সম্পাদিত একটি প্রোফাইল এবং ফ্ল্যাগ দিয়ে সেটিকে অগ্রাহ্য করা একটি systemd unit—এই জোড়াই রিবুটের পরে পরস্পরবিরোধী আচরণ তৈরি করে।
ক্রেডেনশিয়াল ফাইল গোপন তথ্য মুছে না ফেলে স্থানান্তর করে
auth-user-pass-কে একটি ফাইলে নির্দেশ করলে পরের প্রতিটি পুনর্নিবার্তনা উৎস পায়, আর পাসওয়ার্ডও এমন জায়গায় যায় যা রিবুটেও টিকে থাকে। জিজ্ঞাসা করুন ওই ফাইল কে পড়তে পারে, বিশেষাধিকার ছাড়ার পর ডেমনটি কি এখনও পড়তে পারে, এবং ফাইলসিস্টেম read-only মাউন্ট হলে বা কন্টেইনার ভিউ পথটি লুকালে কী হয়। ডিস্কে গোপন তথ্য আর মেমোরিতে গোপন তথ্য ভিন্ন সমস্যা, আর একটি সমাধান করলে অন্যটি জায়গাতেই থেকে যায়। রোটেশনই সেই ধাপ যা বাদ পড়ে: সার্ভারে বদলানো কিন্তু ফাইলে না বদলানো পাসওয়ার্ড এমন ব্যর্থতা দেয় যা নেটওয়ার্কের ত্রুটির মতো পড়া যায়।
ফাইলটি ডেমন চালানো অ্যাকাউন্টের মালিকানায় রাখুন, অন্য কেউ পড়তে পারবে না, এবং হোস্ট ছেড়ে যাওয়া ব্যাকআপের বাইরে রাখুন। OpenVPN-এর সার্ভার-সাইড auth-gen-token অপশন সফল লগইনের পরে ক্লায়েন্টকে একটি সেশন টোকেন দেয়, যা অ্যাকাউন্টের পাসওয়ার্ডের চেয়ে ছোট জিনিস খোলা পড়ে থাকার সমান। যেভাবেই হোক ফাইলের পাশে রোটেশনের ধাপটি লিখে রাখুন, কারণ ফাইলটি সাধারণত যিনি এটি তৈরি করেছেন তার চেয়ে বেশি দিন টেকে।
পুনর্নিবার্তনার সময় বাড়ালে খরচ সরে যায়, মুছে যায় না
অন্য পরামর্শটি হলো reneg-sec বাড়ানো, যতক্ষণ না প্রম্পট উপেক্ষা করার মতো বিরল হয়। এটি সেশনের কী-রোটেশনের সময়সূচি নতুন করে লেখে এবং একই ক্রেডেনশিয়াল সমস্যাকে আরও পরে, কম অনুমানযোগ্য মুহূর্তে ঠেলে দেয়; এটি ক্রেডেনশিয়ালের উৎস তৈরি করে না। কোনো কারণে সময়সূচি অনুযায়ী কী নবায়ন করা নীতি শুধু পাসওয়ার্ড টাইপ এড়াতে শিথিল করা উচিত নয়।
আপনি যে সেশনে বসে আছেন তা নয়, পুনঃসংযোগ পরীক্ষা করুন, কারণ জীবন্ত সেশন কিছুই প্রমাণ করে না। সার্ভারের দিক থেকে টানেল ফেলে দিন, বা ক্লায়েন্ট সার্ভিস পুনরায় চালু করুন, এবং কীবোর্ডে কেউ না থাকা অবস্থায় পরের পুনর্নিবার্তনা কী করে দেখুন। যদি পুনঃসংযোগ হয়, গোপন তথ্য যে প্রক্রিয়া জোগিয়েছে তার নাম বলুন; না হলে এই হোস্টে অপশনটির আসল খরচ খুঁজে পেয়েছেন। যে কোনো ফলাফল আপনাকে পরীক্ষার সময় টেকে যাওয়া উত্তরের বদলে বিশৃঙ্খলার সময় টেকে যাওয়া উত্তর দেয়।
পরিচালিত ফ্লিটে ডিপ্লয়মেন্টের মালিককে তিনটি জিনিস বলতে পারা উচিত: ক্রেডেনশিয়াল কোথা থেকে আসে, কোথায় সংরক্ষিত, এবং কে এটি রোটেট করে। এই উত্তরগুলোর কোনোটি যদি হোস্ট সেটআপ করা ব্যক্তিই হন, তবে সেখানে অপশনটি এখনও নিরাপদ নয়।