আপনার OpenVPN সেটআপে ওই config.json ফাইলটি কোন প্রোগ্রামের?
config.json নামের একটি ফাইল GUI, ডেমন বা কোনও এক্সপোর্ট ফরম্যাটের হতে পারে, OpenVPN-এর নয়। কী সম্পাদনা বা প্রতিস্থাপনের আগে পার্সারটি খুঁজে বের করুন।
আপনি config.json নামের একটি ফাইল পান, তাতে একটি VPN সার্ভারের উল্লেখ থাকে, এবং সঙ্গে সঙ্গে ধরে নেওয়া হয়: এটাই নিশ্চয়ই OpenVPN সংযোগ। অনেক সময় তা হয় না। ওই নামের একটি JSON ফাইল ক্লায়েন্ট চালু করা কোনও ডেস্কটপ ফ্রন্টএন্ডের, নিজের সেটিংস জমা রাখা কোনও ডেমন-এর, বা কোনও পণ্যের এক্সপোর্ট ফরম্যাটের হতে পারে, এবং এদের প্রত্যেকের নিজস্ব স্কিমা আছে।
ফাইলের নামটাই সবচেয়ে কম কাজে লাগে। শুরু করুন যে প্রসেসটি ফাইলটি পড়ে সেখান থেকে, তারপর দেখুন সে যে ফরম্যাট আশা করে তা আদৌ JSON কি না, আর তারপরেই ঠিক করুন ফাইল সম্পাদনাই কিছু বদলানোর সমর্থিত উপায় কি না।
শুরু করুন প্রসেস থেকে, ফাইলের নাম থেকে নয়
আসলে কী চলছে তা দেখুন। একটি সার্ভিস ইউনিট, একটি লঞ্চার স্ক্রিপ্ট বা একটি ট্রে অ্যাপ্লিকেশন যে বাইনারি চালু করে তার নাম বলবে এবং প্রায়ই যে কনফিগারেশন পাথ পাঠায় তাও। ফাইলটি যে ডিরেক্টরিতে আছে সেটি দ্বিতীয় সূত্র: অ্যাপ্লিকেশন ডেটা ডিরেক্টরি, সার্ভিস কনফিগারেশন ডিরেক্টরি এবং ব্যবহারকারী প্রোফাইল ডিরেক্টরি ভিন্ন ভিন্ন মালিকের দিকে ইঙ্গিত করে।
তারপর ওই কম্পোনেন্টের মালিক পণ্যের ডকুমেন্টেশন পড়ুন। যদি JSON কোনও র্যাপারের হয়, তার কী-গুলো র্যাপারের কী, এবং অন্য পণ্যের উদাহরণ থেকে বানানো বিশ্বাসযোগ্য দেখতে কোনও বস্তু প্রত্যাখ্যাত হবে বা নিঃশব্দে উপেক্ষিত হবে।
ভিন্ন ডিরেক্টরিতে একই নামের দুটি ফাইল সাধারণ ফাঁদ। একটি হতে পারে উৎপন্ন অবস্থা যা সার্ভিস প্রতিবার চালু হওয়ার সময় আবার লেখে, আর অন্যটি হতে পারে সেই টেমপ্লেট যা মানুষের সম্পাদনা করার কথা। ভুলটি বদলালে এমন সমাধান হয় যা পরের বার রিস্টার্ট পর্যন্ত টেকে।
Community OpenVPN প্রোফাইল আসলে কী
Community OpenVPN 2.6 অপশনভিত্তিক টেক্সট ফরম্যাট পড়ে। একটি প্রোফাইল হল নির্দেশনার ক্রম: ক্লায়েন্ট মোড লাইন, ডিভাইস লাইন, একটি দূরবর্তী এন্ডপয়েন্ট, সঙ্গে পরিচয়, সাইফার ও রুট অপশন, এবং এটি ইনলাইন ব্লকের ভিতরে সার্টিফিকেট ও কী উপাদান এমবেড করতে পারে।
ওই ফরম্যাট ক্লায়েন্ট নিজেই লাইন ধরে ধরে পার্স করে। config অপশনের মাধ্যমে তাকে একটি JSON নথি দিলে JSON পার্সার চালু হয় না; প্রথম লাইনটিই অজানা নির্দেশনা হিসেবে প্রত্যাখ্যাত হবে। একটি JSON ফাইলের নাম .ovpn দিয়ে শেষ হওয়ার মতো বদলালেও তার বিষয়বস্তু রূপান্তরিত হয় না, এবং বৈধ অপশন ফাইল অস্বাভাবিক এক্সটেনশনের কারণে অবৈধ হয়ে যায় না।
OpenVPN Connect ও OpenVPN 3 Linux-এর প্রোফাইলের জন্য নিজস্ব ইমপোর্ট ও ব্যবস্থাপনা পথ আছে। এই পণ্যগুলি একটি প্রোফাইল গ্রহণ করে নিজের ডেটাবেস বা সার্ভিস অবস্থায় সংরক্ষণ করতে পারে, যা ঘটনাক্রমে সার্ভার বর্ণনা করা একটি JSON ফাইলের সমান কিছু নয়।
অন্য কম্পোনেন্টের মালিকানার অবস্থা সম্পাদনা
যদি JSON উৎপন্ন হয়, তবে তা সম্পাদনা এক দৌড়। চলমান সার্ভিস শাটডাউনে, পুনরায় সংযোগে বা পরের সেটিংস পরিবর্তনে তা আবার লিখে দিতে পারে, এবং হাতে করা সম্পাদনা কোনও ত্রুটি ছাড়াই মিলিয়ে যায়। পণ্যের ইমপোর্ট কমান্ড, ব্যবস্থাপনা API বা সেটিংস ইন্টারফেসকেই প্রাধান্য দিন, কারণ ওই পথগুলো ফাইল যে অভ্যন্তরীণ অবস্থার প্রতিনিধিত্ব করে তা হালনাগাদ করে। রিস্টার্টের পরে যে ফাইল আগের অবস্থায় ফিরে যায় তা আপনাকে বলছে কোন পথটি টেকসই ছিল।
আপনি যদি সত্যিই উৎপন্ন ফাইল সম্পাদনা করেন, প্রথমে সার্ভিস থামান, একটি ব্যাকআপ রাখুন এবং যতটা সম্ভব ছোট পরিবর্তন করুন। তারপর দেখুন সার্ভিসটি চালু হওয়ার সময় ফাইলটি আবার লেখে কি না, কারণ চালু হওয়ার সময় ফিরে যাওয়া ফাইল মানে সত্যিকারের তথ্যসূত্র অন্য জায়গায়, এবং সম্পাদনাটি কখনও টিকত না।
পাসওয়ার্ড ও ইনলাইন প্রাইভেট কী আলাদা বিষয়। JSON একটি অপশন ফাইলের মতোই সহজে সম্পূর্ণ কী বহন করতে পারে, তাই যেকোনও এক্সপোর্টকে গোপন হিসেবে ধরুন, শেয়ার করা ড্রাইভ থেকে দূরে রাখুন, এবং ফোরামের প্রশ্নে কাঠামো পেস্ট করার আগে মানগুলো লুকিয়ে ফেলুন।
পরিবর্তন যাচাই ও ফাইল সুরক্ষা
যাচাই মানে “JSON পার্স হয়” নয়। পার্সিং কেবল প্রমাণ করে যে ব্রেসগুলো মেলে; মালিক কী-গুলো চেনে কি না সে সম্পর্কে এটি কিছু বলে না। পণ্যের নিজের অবস্থা দেখুন: সক্রিয় প্রোফাইলের তালিকা, নির্বাচিত সংযোগ, এবং এমন পুনরায় সংযোগ যা সত্যিই নতুন মান ব্যবহার করে। তালিকায় দেখা যাওয়া কিন্তু কখনও নির্বাচিত না হওয়া প্রোফাইল এখনও ব্যবহৃত প্রোফাইল নয়।
শুধু VPN ক্লায়েন্টের নয়, আপনি যে কম্পোনেন্টটি সম্পাদনা করেছেন তার লগ দেখুন। যে র্যাপার আপনার ফাইল প্রত্যাখ্যান করে সে সাধারণত নিজের লগে তা জানায়, আর যে ক্লায়েন্ট ফাইলটি কখনও পায়নি সে খারাপ সেটিংস পাওয়া ক্লায়েন্টের মতোই দেখায়।
কাজ করা ফাইলের একটি কপি রাখুন এবং যে পণ্যের সংস্করণে পরীক্ষা করেছেন তা লিখে রাখুন। এই ফরম্যাটগুলো রিলিজের মধ্যে বদলায়, এবং গত বছর কাজ করা একটি কাঠামো আপগ্রেডের পরে এমন বার্তা দিয়ে প্রত্যাখ্যাত হতে পারে যা স্কিমার কথা আদৌ বলে না।
পথচলার সারসংক্ষেপ: প্রসেসটি শনাক্ত করুন, তার ডকুমেন্টেশন পড়ুন, ফাইলটি আদৌ JSON কি না নিশ্চিত করুন, সমর্থিত সম্পাদনার পথ ব্যবহার করুন, এবং পণ্যের নিজের অবস্থার মাধ্যমে যাচাই করুন। ফাইলের নাম ওই প্রশ্নগুলোর কোনওটিরই উত্তর দেয়নি।