কী ফাঁস না করে দুটি OpenVPN প্রোফাইল তুলনা করুন
একটি টেক্সট diff যেভাবে পরিবর্তিত নির্দেশ দেখায়, সেভাবেই ইনলাইন কী প্রকাশ করতে পারে। সুরক্ষিত কপিতে ভূমিকা অনুযায়ী তুলনা করুন, তারপর আলাদা একটি সংশোধিত ডায়াগনস্টিক ফাইল তৈরি করুন।
দুটি প্রোফাইল, একটি সংযুক্ত হয় আর একটি হয় না, আর কারণ দেখার দ্রুত উপায় হলো diff। সমস্যা হলো, একই diff ইনলাইন প্রাইভেট কী, স্ট্যাটিক কী এবং ফাইলে থাকা যেকোনো ক্রেডেনশিয়াল ব্লক ছাপিয়ে দেয়, আর মানুষ খেয়াল করার আগেই আউটপুট চ্যাটে পেস্ট করে ফেলে। কী তুলনা করছেন তা ঠিক করা কমান্ড চালানোর আগেই আসে। সুরক্ষিত কপিতে গঠন ও ভূমিকা তুলনা করুন, আর অন্য কাউকে দেখাতে হলে আলাদা একটি সংশোধিত ফাইল বানান।
.ovpn ফাইলে আসলে কী থাকে
একটি .ovpn ফাইল হলো ঐচ্ছিক ইনলাইন ব্লবসহ একটি কনফিগারেশন। এতে CA সার্টিফিকেট, ক্লায়েন্ট সার্টিফিকেট, একটি প্রাইভেট কী, একটি tls-auth বা tls-crypt কী, এবং বাইরের ফাইলের দিকে ইশারা করা বা ক্রেডেনশিয়াল চাওয়া নির্দেশ থাকতে পারে। দুটি ফাইল প্রায় একই দেখাতে পারে অথচ কেবল একটি ব্লবের ভেতরে আলাদা, বা এমন একটি নির্দেশে আলাদা যা পরিবহনই বদলে দেয়। লাইনের সংখ্যা এসবের কোনটি ঘটেছে তা কিছুই বলে না।
কী ব্লকের ভেতরের পার্থক্য কোনো কিছুর প্রকাশ্য প্রমাণ নয়। পুনরায় ইস্যু করা সার্টিফিকেট আর নতুন কী দেওয়া সার্টিফিকেট একই আকারের পরিবর্তন তৈরি করতে পারে, তাই ব্লবের অমিল বলে উপাদান আলাদা, কোন সিদ্ধান্ত এটি ঘটিয়েছে তা নয়। এটিকে ক্ষেত্র তুলনার সংকেত ধরে নিন, ফলাফল নয়।
লাইন ধরে নয়, ভূমিকা ধরে তুলনা করুন
সংযোগের নিজের ক্রম অনুসরণ করুন: আগে এন্ডপয়েন্ট ও পরিবহন, তারপর ট্রাস্ট ও প্রত্যাশিত পরিচয়, তারপর ব্যবহারকারী প্রমাণীকরণ, তারপর রুট, DNS ও স্ক্রিপ্ট হুক। এই ক্রম ক্লায়েন্ট যা করে তার সঙ্গে মেলে, তাই প্রথম যে পার্থক্যে পৌঁছাবেন সেটিই প্রথম জিনিস যা সংযোগ ভাঙতে পারত। বর্ণানুক্রমে তুলনা করলে বরং সম্পর্কিত সেটিংস আউটপুটের সর্বত্র ছড়িয়ে পড়ে।
ক্ষেত্র-সচেতন একটি পাস এই ক্রমে এই বিষয়গুলো দেখে। ক্লায়েন্ট ইন্টার্যাক্টিভভাবে যা জিজ্ঞেস করে তা ট্রাস্ট সারির নয়, প্রমাণীকরণ সারির অন্তর্গত।
remote,protoও পোর্ট, প্রতিটি সংযোগ ব্লকসহ।caওcert: ইস্যুকারী, বিষয় এবং মেয়াদ শেষের তারিখ।- প্রাইভেট কী আদৌ আছে কি না, কখনও কী আছে তা নয়।
tls-authবাtls-cryptএর উপস্থিতি ও কী-এর দিক।- প্রমাণীকরণ নির্দেশ, কোনো ক্রেডেনশিয়াল ফাইলের উল্লেখসহ।
- সংযোগের সময় চলা রুট, DNS অপশন ও স্ক্রিপ্ট হুক।
একটি ফাইলে একাধিক সংযোগ ব্লক থাকলে প্রতিটি অপশন তার এন্ডপয়েন্টের সঙ্গে রাখুন। কেবল প্রথম remote লাইন তুলনা করলে এই নেটওয়ার্কে ক্লায়েন্ট আসলে যে বিকল্প বেছে নেয় তা মিস হতে পারে।
সাধারণ diff কেন ভুল হাতিয়ার
সাধারণ diff টেক্সটের জন্য তৈরি, গোপন তথ্যের জন্য নয়। এটি আনন্দেই প্রাইভেট কী স্ক্রলব্যাকে ছাপবে, আর আপনি যে নির্দেশের দিকে তাকিয়ে আছেন তা ব্যর্থতার সঙ্গে অপ্রাসঙ্গিক, এটা বলবে না। ক্ষেত্র নিষ্কাশন একসঙ্গে নিরাপদ ও পাঠযোগ্য, কারণ সার্টিফিকেটের উপাদান বাইট নয়, মেটাডেটা হিসেবে তুলনা করা যায়।
openssl x509 -in ca.crt -noout -subject -issuer -enddate
openssl x509 -in client.crt -noout -subject -issuer -enddate
grep -E '^(remote|proto|port|tls-auth|tls-crypt|route|dhcp-option)' profile.ovpn
প্রথম দুটি কমান্ড কী স্পর্শ না করেই পরিচয় ও বৈধতা ছাপে, তাই তাদের আউটপুট পেস্ট করা নিরাপদ। grep নির্দেশের নাম ও মান ছাপে কিন্তু কখনও ব্লবের শরীর নয়, ফলে পরিবহন বা রাউটিং পার্থক্য সন্দেহ হলে এটি সঠিক প্রথম পাস। ব্লব নিজেই তুলনা করতে হলে কনটেন্ট নয়, তার হ্যাশ তুলনা করুন।
টিকিটের জন্য একটি সংশোধিত কপি বানান
ক্ষেত্রের নাম ও পার্থক্য বোঝার মতো যথেষ্ট গঠন রেখে প্রকৃত গোপন তথ্য ও অপ্রয়োজনীয় শনাক্তকারী সরান। একই আকারের চিহ্ন তবুও প্রকাশ করে উপাদান কোথায় বসে আছে এবং কত লম্বা ছিল, তাই সেটুকুও গ্রহণযোগ্য কি না ঠিক করুন। আপনি যে কমান্ড চালিয়েছিলেন বলে মনে আছে তাতে ভরসা না করে শেষ সংযুক্তিটা নিজে দেখুন। কেবল উদাহরণ বানাতে কাজের মূল ফাইল সম্পাদনা করবেন না, কারণ সংশোধিত প্রোফাইল সবসময় চালানোর যোগ্য নয় এবং কখনও আবার আমদানি করা উচিত নয়।
মূলগুলোকে ফাইলের নাম ও হ্যাশ দিয়ে চেনা রাখুন, একই রকম নামের তিনটি ফোল্ডারে কপি করবেন না। একটি হ্যাশ স্ট্রিং কোন ফাইল দেখা হয়েছে তা প্রমাণ করতে যথেষ্ট এবং ফাঁস হলেও ক্ষতি নেই। পরিবর্তন শেষ হলে কপিগুলো ছেঁটে দিন, যাতে পরের ব্যক্তি একটি কর্তৃত্বপূর্ণ ফাইলই পায়।
তুলনাকে একটি ব্যর্থতার সঙ্গে বেঁধে রাখুন
একটি তুলনা তার খরচের যোগ্য যখন এটি একটি আমদানি বা একটি সংযোগ ব্যর্থতা নিয়ে প্রশ্নের উত্তর দেয়। আগে ব্যর্থ ধাপটির নাম নিন, তারপর কেবল সেই ধাপ নির্ভর করে এমন ক্ষেত্র তুলনা করুন; ক্লায়েন্টের সব ক্রেডেনশিয়াল একটি ফোল্ডারে জমা করলে পরের ফাঁস বেশি সম্ভাব্য আর পরের রোগনির্ণয় ধীর হয়। প্রশ্ন যত সংকীর্ণ, উত্তর দিতে পারে এমন ক্ষেত্রের তালিকা তত ছোট।
নতুন ফাইল অপারেটরের কাছ থেকে এলে ট্রাস্ট উপাদান বদলানোর আগে তার বিতরণ পথ নিশ্চিত করুন। পরিবর্তনের পর ক্লায়েন্ট আসলে যে আমদানি করা কপি বেছেছে এবং যে ফলাফলে সম্মতি হয়েছে তা দেখুন, কারণ একটি নির্দেশ অন্য ক্লায়েন্ট সংস্করণে উপেক্ষিত বা ভিন্নভাবে পড়া হতে পারে। ডিস্কের ফাইল চলা সংযোগের প্রমাণ নয়। নির্দেশের অর্থ OpenVPN 2.6 ম্যানুয়ালে.