রাউটারে OpenVPN সেটিংস রিবুটের পরে ফিরে যায়: জেনারেটর ঠিক করুন
যে ফার্মওয়্যার প্রতি বুটে OpenVPN কনফিগারেশন নতুন করে তৈরি করে, তা আপনার সম্পাদনা ফেলে দেয়। জেনারেটর হুক প্যাচ করুন, তারপর একবার রিবুটের পর তৈরি ফাইলটি মিলিয়ে দেখুন।
কনজিউমার রাউটার বা NAS-এর ফার্মওয়্যার প্রায়ই প্রতি স্টার্টে নিজের OpenVPN কনফিগারেশন নতুন করে তৈরি করে, তাই আপনি যে নির্দেশ যোগ করেন ঠিক পরের বুট পর্যন্ত টেকে। ওয়েব ফর্মে টাইপ করা কী-এর ক্ষেত্রেও একই কথা প্রযোজ্য, যেখানে সংরক্ষণের পর সঞ্চিত মান বিকৃত হয়ে ফিরে আসতে পারে। এই লক্ষণগুলোর কোনোটিই বোঝায় না যে পরিবর্তনটি প্রত্যাখ্যাত হয়েছে। এর অর্থ হলো সম্পাদনাটি এমন ফাইলে গিয়েছে যা ফার্মওয়্যার আউটপুট হিসেবে ধরে, আর স্থায়ী জায়গাটি বুট অনুক্রমে এক ধাপ আগে।
সম্পাদিত ফাইলটি কেন আবার তৈরি হয়
একটি স্টার্ট স্ক্রিপ্ট টেমপ্লেট থেকে সার্ভার কনফিগারেশন জোড়া লাগায় এবং তারপর ডেমন চালু করে, ফলে রেন্ডার করা ফাইলটি উৎস নয়, বিল্ড আর্টিফ্যাক্ট হয়ে যায়। স্টার্টের পরে যা কিছু যোগ করা হয়, তা ওই স্ক্রিপ্টের পরের রানে অদৃশ্য। দ্বিতীয় ধরনটি আরও সূক্ষ্ম: ওয়েব ইন্টারফেসে কী ও সার্টিফিকেট ইনপুট এস্কেপ করা আকারে সংরক্ষিত থাকে, এবং ফর্ম সেভ করলে ওই এস্কেপ করা টেক্সট ডেমন যে ফাইল পড়ে সেখানে চলে যেতে পারে। দুই ক্ষেত্রেই রেন্ডার করা কনফিগারেশন স্থায়ী পরিবর্তনের ভুল জায়গা।
বুট অনুক্রম কী লেখে এবং কখন লেখে সেদিকে তাকান। উত্তর প্রায় সবসময়ই ফার্মওয়্যারের init বা অটোরান ডিরেক্টরির একটি স্ক্রিপ্ট।
স্ক্রিপ্ট যে জায়গায় ফাইল বানায় সেখানেই নির্দেশটি বসান
QTS ডিভাইস ডেমন চালু করা init স্ক্রিপ্টের ভিতরেই OpenVPN সার্ভার কনফিগারেশন নতুন করে তৈরি করে, তাই সম্পাদনাটি সেখানেই করতে হবে। তৈরি ফাইল সম্পাদনার বদলে স্টার্টআপ কমান্ডের ঠিক আগে অ্যাপেন্ডটি যোগ করুন।
sed -i '/daemon_mgr/i echo client-config-dir clientconfig >>/etc/openvpn/server.conf' /etc/init.d/vpn_openvpn.sh
grep -c client-config-dir /etc/openvpn/server.confসন্নিবেশটি এমন একটি কমান্ডে অ্যাঙ্কর করুন যা সরবে না, কারণ বিল্ডের মধ্যে লাইন নম্বর বদলায়। যেহেতু init স্ক্রিপ্ট নিজেই বুটের সময় প্রতিস্থাপিত হয়, তাই সিস্টেম প্রতিবার চালু হলে ফার্মওয়্যারের অটোরান হুক থেকে পরিবর্তনটি আবার জারি করতে হবে। একবার রিবুটের পর তৈরি ফাইলে উপস্থিতি গণনা করুন: এক লাইন মানে প্যাচ কাজ করেছে, আর দুই মানে হুক একাধিকবার চলছে। দ্বৈত রান আলাদাভাবে তদন্ত করুন, কারণ এটি হারিয়ে যাওয়া পরিবর্তনের মতো একই ত্রুটি নয়।
এস্কেপ করা কী সংরক্ষণ করা ফর্ম মেরামত করুন
Asus-ধাঁচের পেজে সার্টিফিকেট ও কী ইনপুট এস্কেপ করা টেক্সট দেখায়, এবং অসম্পর্কিত কোনো পরিবর্তনের পর সেভ করলে ওই এন্টিটিগুলো আবার ডিস্কে লেখা হতে পারে। ডিকোড করা কপি থেকে কাজ করুন এবং সব সম্পাদনা প্রস্তুত হওয়ার পর একবারই সেভ করুন।
openssl dhparam -out dh2048.pem 2048
grep -n "BEGIN DH PARAMETERS" dh2048.pemনতুন প্যারামিটার সেট বসানোর সময়, লেবেল যদি কী-এর বডি চায় তাহলে শুধু base64 পেলোড পেস্ট করুন, আর ফিল্ড পূর্ণ PEM ব্লক আশা করলে শুধু আর্মার লাইনগুলো রাখুন। ইতিমধ্যে এস্কেপ করা আকারে সেভ হওয়া পেজ উদ্ধার করা সাধারণত সংশ্লিষ্ট ইনপুট খালি করে অ্যাপ্লাই করা বোঝায়, যা ফার্মওয়্যারকে সেগুলো আবার তৈরি করতে দেয়। 2048 বিটের বেশি যেকোনো কিছু ওয়ার্কস্টেশনে তৈরি করুন, কারণ রাউটারের এনট্রপি সরবরাহ কাজটি ধীর এবং মাঝে মাঝে অনির্ভরযোগ্য করে তোলে। প্যারামিটার ফাইলটি ফ্যাক্টরি রিসেটের পরেও যেখানে পৌঁছাতে পারবেন সেখানে রাখুন।
আপগ্রেডের পরে আবার যাচাই করুন
ফার্মওয়্যার আপডেট init স্ক্রিপ্ট প্রতিস্থাপন করে এবং অটোরান ডিরেক্টরি মুছে ফেলতে পারে, তাই প্যাচটি আবার ইনস্টল ও পরীক্ষা করতে হবে। নতুন তৈরি ফাইলটি আপনার রাখা কপির সঙ্গে মিলিয়ে দেখুন এবং নির্দেশটি ঠিক একবার আছে কি না নিশ্চিত করুন। ওয়েব ইন্টারফেসে দৃশ্যমান কোনো মান ডেমন তা পেয়েছে তার প্রমাণ নয়, কারণ পেজটি সঞ্চিত ফিল্ড পড়ে। প্যাচ কমান্ড ও ফার্মওয়্যার সংস্করণ রক্ষণাবেক্ষণ নোটে লিখে রাখুন যাতে পরের আপডেট সেগুলো সঙ্গে নিয়ে যায়।
তারপর একটি ক্লায়েন্ট সংযুক্ত করুন এবং পুশ করা অপশনের জন্য সার্ভার লগ পড়ুন। যে সেটিং কেবল কোনো ফর্মেই ছিল, সেটি এমন সেটিং যা কেউ পরীক্ষা করেনি।