OpenVPN অ্যাপ্লায়েন্স রুট: কনফিগ মালিক নাকি স্টার্টআপ স্ক্রিপ্ট?
একবার রিবুটে টিকে থাকা ব্রাঞ্চ রুট GUI থেকে সেভ বা ফার্মওয়্যার আপডেটের পরে হারিয়ে যেতে পারে। সমর্থিত কনফিগ মালিককে প্যাচ স্ক্রিপ্টের সঙ্গে তুলনা করুন।
আপনি একটি ব্রাঞ্চ রুট যোগ করেন, এটি কাজ করে, তারপর ফার্মওয়্যার আপডেট বা ওয়েব UI থেকে সেভ সেটি সরিয়ে দেয়। সেই মুহূর্তে দুটি সমাধান সমান যুক্তিসঙ্গত দেখায়: রুটটি অ্যাপ্লায়েন্সের সমর্থিত কনফিগারেশন উৎসে রাখা, অথবা স্টার্টআপ স্ক্রিপ্ট থেকে তৈরি ফাইলে এটি যোগ করা। এক সপ্তাহ তারা একই আচরণ করে এবং দ্বিতীয় আপগ্রেডে আলাদা হয়ে যায়। এই নিবন্ধটি তুলনা করে প্রতিটি আসলে কী মালিকানা রাখে।
দুই প্রার্থী ভিন্ন ভিন্ন জিনিসের মালিক
সমর্থিত কনফিগারেশন উৎস হলো যা অ্যাপ্লায়েন্স ইনপুট হিসেবে ধরে: একটি GUI ফিল্ড, একটি আমদানি করা প্রোফাইল, প্রতি ক্লায়েন্টের জন্য নথিভুক্ত ডিরেক্টরি, ব্যবস্থাপনা প্যাকেজ যে সেটিংস ডেটাবেস পড়ে। তৈরি server.conf হলো আউটপুট। আউটপুট সম্পাদনা করা কাজ করে যতক্ষণ না জেনারেটর আবার চলে, যা সেভে, রিবুটে এবং আপগ্রেডে ঘটে।
স্ক্রিপ্ট পদ্ধতি জেনারেটর শেষ হওয়ার পরে সেই আউটপুট প্যাচ করে। এটি ল্যাবের জন্য বৈধ কৌশল, এবং এটি ব্রাঞ্চ অফিসের জন্য ভুল ডিফল্ট, কারণ এটি রুটকে নথিভুক্ত ফিল্ডের বদলে টেক্সট মেলানোর ওপর নির্ভরশীল করে তোলে।
| Question | Supported config source | Post-generation script |
|---|---|---|
| Survives a GUI save | Yes | Only if the save does not regenerate the file |
| Survives a package upgrade | Usually, when the field is documented | No guarantee; the wrapper can be replaced |
| Supportable by the vendor | Yes | No |
| Obvious to the next admin | Yes, it is in the UI | No, it lives in a wrapper |
অ্যাপ্লায়েন্স কী পুনরায় তৈরি করে, এবং কখন
ব্যবস্থাপনা প্যাকেজ সাধারণত সেটিংস ডেটাবেস বা টেমপ্লেট সেটে রাখে এবং শুরুতে ডেমন কনফিগারেশন তৈরি করে। ওয়েব UI থেকে সেভ প্রায়শই একটি লাইন প্যাচ করার বদলে পুরো ফাইল পুনরায় লেখে। আপনার পরিবর্তন যদি সেই ফাইলে বাস করত, এখন তা চলে গেছে, এবং কিছুই সতর্কতা লগ করে না, কারণ অ্যাপ্লায়েন্সের দৃষ্টিতে কিছুই হারায়নি।
স্টার্টআপ র্যাপারের দ্বিতীয় ব্যর্থতার ধরন আছে। নির্দিষ্ট স্পেসিংয়ের নির্দেশের জন্য grep টেমপ্লেট পরিবর্তনের পরে মেলানো বন্ধ করে, এবং স্ক্রিপ্ট নীরবে কিছুই করে না। আরও খারাপ, ফার্মওয়্যার আপডেট র্যাপারকে নতুন সংস্করণ দিয়ে প্রতিস্থাপন করে প্যাচটি সঙ্গে নিয়ে যেতে পারে। তখন আপনার একটি রুট থাকে যা এক বছর ছিল এবং রক্ষণাবেক্ষণের সময় হারিয়ে গেল যা কেউ রাউটিংয়ের সঙ্গে যুক্ত করেনি।
সমর্থিত মালিককে কী প্রকাশ করতে হবে
একটি ব্রাঞ্চ প্রিফিক্সের এক নয়, তিনটি বিবৃতি দরকার। ক্লায়েন্টকে রুটটি জানতে হবে, সার্ভারকে জানতে হবে কোন প্রমাণিত ক্লায়েন্ট প্রিফিক্সের মালিক, এবং ব্রাঞ্চ দিককে যে টানেল ঠিকানা দেওয়া হয়েছে সেখানে ট্রাফিক ফেরত পাঠাতে হবে। OpenVPN পরিভাষায় এর অর্থ একটি পুশ করা route, ক্লায়েন্টের সঙ্গে বাঁধা একটি মিলিত iroute, এবং অপর প্রান্তে একটি ফেরত পথ।
এখানেই অ্যাপ্লায়েন্স UI বিভ্রান্ত করে। “ক্লায়েন্টদের সার্ভারের LAN-এ প্রবেশের অনুমতি দিন” লেবেলযুক্ত চেকবক্স সার্ভারের নিজের নেটওয়ার্কের দিকে ট্রাফিক বর্ণনা করে। আপনার ব্রাঞ্চ বিপরীত দিক: একটি ক্লায়েন্টের পিছনে থাকা নেটওয়ার্ক, সার্ভারের দিক থেকে পৌঁছানো যায়। একই লেবেল এর সমর্থন বোঝায় না, এবং ফাইলে বৈধ নির্দেশ প্যাকেজ এটি সংরক্ষণ করবে এমন প্রতিশ্রুতি নয়।
যখন কোনো সমর্থিত নিয়ন্ত্রণ নেই
কখনও কখনও ইনস্টল করা সংস্করণ সত্যিই সমকক্ষ-নির্দিষ্ট রুট প্রকাশ করতে পারে না। তখন সৎ বিকল্পগুলি হলো আপনার নিয়ন্ত্রণে থাকা অন্য গেটওয়ে, অথবা দুই প্রান্তে সমর্থিত সাইট-থেকে-সাইট মোড। দুই প্রান্তকেই এটি বলতে হবে। সাইট-থেকে-সাইট বলা একটি পণ্য পৃষ্ঠা কোনো নির্বিচার OpenVPN প্রোফাইলকে অন্য প্রোটোকলের টানেলের সঙ্গে বিনিময়যোগ্য করে না, এবং সেই জোড়া জোর করে তৈরি করলে সাধারণত অর্ধ-সংযুক্ত টানেল হয় যা স্ট্যাটাস পৃষ্ঠায় ভালো দেখায়।
যে বিকল্পটি আপনি নেটওয়ার্ক উত্তরাধিকারীকে এক বাক্যে বর্ণনা করতে পারেন তা বেছে নিন। উত্তর যদি স্ক্রিপ্ট পাথ ও টেক্সট প্যাটার্ন উল্লেখ করতে হয়, তবে নকশা ইতিমধ্যেই ভঙ্গুর।
উদ্দেশ্যকে নিরীক্ষাযোগ্য করুন
অ্যাপ্লায়েন্সের বাইরে চুক্তিটি লিপিবদ্ধ করুন: কার্যকর ক্লায়েন্ট পরিচয়, প্রিফিক্স, ফেরত গেটওয়ে, এবং প্রতিটি সরবরাহকারী সমর্থিত ফিল্ড। সমর্থিত প্রক্রিয়ার মাধ্যমে কনফিগারেশন রপ্তানি করুন যাতে পুনর্নির্মাণের একটি রেফারেন্স থাকে, এবং পুনঃসংযোগ, রিস্টার্ট ও আপগ্রেডের পরে সেবা যাচাই করুন, কেবল পরিবর্তনের পরে নয়।
কিছু ভাঙলে তৈরি ফলাফলকে সেই রেকর্ডের সঙ্গে তুলনা করুন, ব্যাখ্যাহীন লাইন পুনরুদ্ধার করে আশা করার বদলে।OpenVPN 2.6 রেফারেন্স হলো UI-এর সঙ্গে তর্ক করার আগে route ও iroute কীভাবে মিথস্ক্রিয়া করে তা নিশ্চিত করার জায়গা।
পরবর্তী পরিবর্তনের চেকলিস্ট: মালিকের নাম দিন, তিন-অংশের চুক্তি বলুন, উদ্দেশ্য রপ্তানি করুন, এবং আপনার সম্পাদনার পরে নয়, অ্যাপ্লায়েন্সের নিজের জীবনচক্রের ঘটনার পরে আবার পরীক্ষা করুন।