কেন আপনার VPN ইন্টারফেস বারবার তার firewalld জোন ছেড়ে যায়
টানেল আবার সংযোগ না করা পর্যন্ত জোনটি টিকে থাকে, তারপর সেটি চলে যায়। কমান্ডটি পেস্ট করার আগে জেনে নিন ওই ইন্টারফেসের মালিক NetworkManager না firewalld।
আপনি tun0 কে সঠিক জোনে যোগ করেন, অ্যাপ্লিকেশনটি কাজ শুরু করে, আর পরের পুনঃসংযোগেই সমাধানটি উবে যায়। একই কমান্ড আবার চালালে কাজ করে, যা দেখে মনে হয় firewalld ভুলে গেছে। সেটি ভুলে যায়নি; ওই ইন্টারফেসের উপর আরও জোরালো দাবি থাকা কিছু এটিকে আবার বরাদ্দ করেছে।
ইন্টারফেসটি নতুন করে তৈরি না হওয়া পর্যন্ত জোনটি টিকে থাকে
একটি ইন্টারফেসের জন্য firewalld জোন বরাদ্দ হলো একটি বাইন্ডিং, আর বাইন্ডিংগুলো এখন যে আকারে আছে সেই ইন্টারফেস অবজেক্টের সাথে বাঁধা। যে VPN ক্লায়েন্ট ডিভাইসটি ভেঙে আবার তৈরি করে, সে একটি নতুন অবজেক্ট উৎপন্ন করে, আর নতুনটি বরাদ্দকারী কম্পোনেন্ট যা বলে সেখান থেকেই শুরু করে। এই কারণেই লক্ষণটি প্রতিটি প্যাকেটে নয়, প্রতিটি পুনঃসংযোগে ফিরে আসে।
একই যুক্তি রিবুটের আচরণও ব্যাখ্যা করে: রানটাইম বাইন্ডিং রিস্টার্ট টিকে থাকে না, আর স্থায়ী বাইন্ডিং কেবল সেই ডিভাইসগুলোর জন্য প্রযোজ্য যেগুলো firewalld নিজের বলে মনে করে।
কিছু বদলানোর আগে জেনে নিন কোন কম্পোনেন্ট জোনটি বরাদ্দ করে।
কিছু বদলানোর আগে তিনটি জিনিস পড়ুন
ইন্টারফেসের এখনকার জোন, তাদের ইন্টারফেসসহ সক্রিয় জোনগুলো, এবং আপনার লক্ষ্য জোনের স্থায়ী ইন্টারফেস তালিকা লিখে রাখুন। পরিবর্তনের আগে, একবার পুনঃসংযোগের পরে এবং একবার রিবুটের পরে ওই কোয়েরিগুলো চালান। তিনটি ফলাফল তুলনা করলে বোঝা যায় বাইন্ডিংটি প্রতিস্থাপিত হচ্ছে, উপেক্ষা করা হচ্ছে, নাকি কেবল দেরিতে প্রয়োগ হচ্ছে। যদি স্থায়ী তালিকায় ডিভাইসটির নাম আগেই থাকে অথচ রানটাইম জোন ভিন্ন কথা বলে, তবে কিছু আপনার সম্পাদনাকে ছাপিয়ে যাচ্ছে।
প্রতিটি ধাপে প্রকৃত ডিভাইসের নামও লিখে রাখুন, কারণ আজ যে টানেল tun0-এ নামে, কাল সেটি tun1-এ নামতে পারে।
সাধারণ নামে সংরক্ষিত বাইন্ডিং কোনো পরিচয়-যাচাই নয়, আর দুই মিনিটের নোট এক ঘণ্টার অনুমান বাঁচায়।
যখন NetworkManager সংযোগের মালিক
NetworkManager যদি VPN সংযোগটি পরিচালনা করে, তবে তার প্রোফাইল জোনটি বহন করে এবং সংযোগ সক্রিয় হলে সেটি firewalld-কে দিয়ে দেয়। তখন একই ডিভাইসের জন্য firewalld-এর স্থায়ী ইন্টারফেস বাইন্ডিং উপেক্ষা করা হতে পারে, কারণ মালিক NetworkManager। জোনটি সংযোগের উপর সেট করুন, এবং নিশ্চিত করুন যে আপনি VPN প্রোফাইল সম্পাদনা করছেন, কোনো অসম্পর্কিত ফিজিক্যাল সংযোগ বা অস্থায়ী রেকর্ড নয়।
এই বৈশিষ্ট্য বদলালে সক্রিয় সংযোগে সঙ্গে সঙ্গে প্রভাব পড়তে পারে।
একটি ব্যবস্থাপনা পথ খোলা রাখুন এবং প্রয়োগের আগে গন্তব্য জোনের নীতি পড়ুন। ifcfg ফাইলের ZONE ফিল্ড সম্পাদনা কেবল সেখানেই ঠিক যেখানে ওই ফাইলটি এখনো কনফিগারেশনের উৎস।
যখন firewalld বাইন্ডিংয়ের মালিক
ইচ্ছাকৃতভাবে স্থির ইন্টারফেস নামযুক্ত একক টানেলের জন্য স্থায়ী ইন্টারফেস পরিবর্তনই সঠিক হাতিয়ার। আপনার ডিপ্লয়মেন্ট যে রিলোড বা লাইফসাইকেল ব্যবহার করে তার মধ্য দিয়ে এটি প্রয়োগ করুন, তারপর রানটাইম অবস্থা দেখুন, কারণ কেবল-স্থায়ী সম্পাদনা সক্রিয় কী তা নয়, অভিপ্রায় বর্ণনা করে। রিলোড হতে যত সময় লাগে ততক্ষণ দুটি আলাদা থাকতে পারে।
ইন্টারফেসের নাম গতিশীল হলে, নামটি আগে দখল করে এমন টানেলের সঙ্গে দৌড়ানোর বদলে সংযোগের লাইফসাইকেল জুড়ে বরাদ্দটি বজায় রাখুন।
শুধু অ্যাপ্লিকেশনটি কাজ করানোর জন্য ইন্টারফেসটিকে trusted-এ ফেলে দেবেন না।
রিলোড, পুনঃসংযোগ এবং রিবুট পরীক্ষা করুন
একটি পরিবর্তন কেবল তখনই সম্পূর্ণ, যখন এটি তিনটিই টিকে যায়।
প্রথমে রিলোড করুন, কারণ ওখানেই কেবল-রানটাইম সম্পাদনা হারিয়ে যায়। তারপর টানেল আবার সংযোগ করুন, কারণ ওখানেই প্রতিস্থাপিত ইন্টারফেস তার বাইন্ডিং হারায়। তারপর রিবুট করুন, কারণ ওখানেই মালিকের অমিল শেষে প্রকাশ পায়। প্রতিটি ধাপে জোনটি লিখে রাখুন এবং আপনি যে অভিপ্রায় লিখেছিলেন তার সঙ্গে মিলিয়ে দেখুন, আর কোন ধাপ পার্থক্যটি তৈরি করল তা টুকে রাখুন।
জোনটি ঠিক থাকলে এবং অ্যাপ্লিকেশনটি তবু ব্যর্থ হলে, সমস্যাটি সদস্যতায় নয়, জোনের নিয়মে বা উৎসভিত্তিক শ্রেণিবিন্যাসে। সংযোগ ও ইন্টারফেস নিয়ে firewalld-এর ডকুমেন্টেশন হলো মালিকানা কীভাবে কাজ করার কথা তার রেফারেন্স।
মালিক, মান এবং প্রত্যাশিত ফলাফল রানবুকে লিখে রাখুন, তাহলে পরের বার বরাদ্দ বদলালে সেটি ব্যাখ্যাযোগ্য হবে।