লক্ষ্যটি যুক্তিসঙ্গত: এই মেশিনের সেবাগুলোতে পৌঁছাবে কেবল টানেল ব্যবহারকারীরা। মানুষ যে বাস্তবায়নে হাত দেয় তা হলো একটি IPv6 ইনপুট চেইন, যা WireGuard ছাড়া সব ড্রপ করে, এবং এটি সেই ট্রাফিকও ড্রপ করে যা হোস্টকে তার নিজের লিংকের সঙ্গে যুক্ত রাখে। প্রতিবেশী আবিষ্কার ও পাথ-রক্ষণাবেক্ষণ বার্তা সেবা-প্রবেশ নয়, এবং সেগুলো সরিয়ে দিলে এমন মেশিন তৈরি হয় যা আপনার নীতির সঙ্গে সম্পর্কহীন কারণে অপ্রাপ্য। টানেল ওঠে, সেবাগুলো ঠিকভাবে সীমাবদ্ধ, আর লিংকের অন্য কিছুই কাজ করে না।

তিনটি দায়িত্ব, একটি রুলসেট

প্রথম দায়িত্ব বাইরের নেটওয়ার্ক পরিচালনা: হোস্টকে তার লিংকের সঙ্গে যুক্ত থাকতে হবে, প্রতিবেশী সমাধান করতে হবে এবং সেই লিংকের পাথ-সীমা জানতে হবে। দ্বিতীয়টি এনক্রিপ্টেড লিসেনার, যা আপনার বেছে নেওয়া ঠিকানা ও পোর্টে UDP গ্রহণ করে। তৃতীয়টি ডিক্রিপ্ট করা সেবার সমষ্টি, যেখানে টানেল ব্যবহারকারীদের পৌঁছাতে চান।

এগুলো তিনটি ভিন্ন নীতি, এবং কেবল দ্বিতীয় ও তৃতীয়টি VPN নিয়ে। যে রুলসেট এগুলোকে এক হিসেবে ধরে, সে এমন ব্যর্থতার ধরন উত্তরাধিকারসূত্রে পায় যেখানে অ্যাপ্লিকেশন-সীমা কঠোর করলে হোস্টের সংযুক্তি নীরবে ভেঙে যায়।

এগুলো আলাদা চেইনে বা অন্তত আলাদা মন্তব্যে রাখুন, যাতে পরের ব্যক্তি দেখতে পান কোন লাইন কোন কারণে আছে।

হোস্টের জন্য ICMPv6 কী করছে

IPv6 কেবল ইকো নয়, অনেক বেশি কিছুর জন্য ICMPv6-এর উপর নির্ভর করে। প্রতিবেশী অনুরোধ ও বিজ্ঞপ্তি ARP-এর জায়গা নেয় এবং স্থানীয় ডেলিভারির জন্য প্রয়োজনীয়। Packet Too Big পাথ MTU তথ্য বহন করে, আর এটি উপেক্ষা করলে বড় প্যাকেটে আটকে যাওয়া স্থানান্তর হয়। লিংক স্বয়ংক্রিয় কনফিগারেশন ব্যবহার করলে রাউটার বিজ্ঞপ্তি ডিফল্ট রুট ও প্রিফিক্স তথ্য বহন করে।

RFC 4890 হোস্ট ফিল্টারকে যে বার্তা অবশ্যই অনুমোদন করতে হবে এবং যেগুলো প্রশাসনিক সিদ্ধান্ত সেগুলোর মধ্যে পার্থক্য করে, এবং তা করে হোস্ট-অংশে যা নেটওয়ার্কের মধ্যে ফরওয়ার্ড করা রাউটারের নিয়ম থেকে আলাদা। কেবল ফরওয়ার্ডিং অংশ পড়লে এমন ইনপুট নীতি তৈরি হয় যা যে হোস্টকে রক্ষা করছে তার জন্য অতিরিক্ত কঠোর।

ব্যবহারিক নিয়ম হলো যে ইন্টারফেসের প্রয়োজন সেখানে জরুরি ত্রুটি ও কনফিগারেশন বার্তা অনুমোদন করা, প্ল্যাটফর্ম যেখানে অনুমতি দেয় সেখানে ধরন ও উৎস দিয়ে সীমাবদ্ধ করা, এবং বাকিগুলো নিয়ে স্পষ্ট সিদ্ধান্ত নেওয়া।

এসবের বদলে ICMPv6-এর সার্বিক অনুমোদন দিলে প্রাপ্যতার সমস্যা মিটে যায় কিন্তু ফিল্টারিং হারায়। এর বদলে সার্বিক ড্রপ দিলে ফিল্টারিংয়ের সমস্যা মিটে যায় কিন্তু হোস্ট হারায়।

আগে টানেল অনুমোদন করুন, তারপর সেবা

নির্ধারিত বাইরের ঠিকানা ও UDP পোর্টে WireGuard ট্রান্সপোর্ট গ্রহণ করুন, এবং সংযোগ-ট্র্যাকিংয়ের মাধ্যমে ফেরত ট্রাফিক গ্রহণ করুন। তারপর টানেল ইন্টারফেস দিয়ে অ্যাপ্লিকেশন সেবাগুলোকে অনুমোদন দিন, যে উৎসগুলোকে আপনি সত্যিই অনুমোদন দেন সেখান থেকে।

বাইরের UDP পোর্টের অনুমোদন তার ভেতরের ডিক্রিপ্ট করা অনুরোধকে অনুমোদন দেয় না। এই পার্থক্যই হলো সেবা-নিয়মে টানেল ইন্টারফেস উপস্থিত থাকার পুরো কারণ।

ফাইল যেভাবে বর্ণনা করে নয়, রুলসেট যেভাবে আছে সেভাবেই পড়ুন:

sudo nft list ruleset
ip -6 addr show
ip -6 route show default

ভৌত ঠিকানার লিসেনার টানেল ঠিকানার একই সেবার থেকে আলাদা একটি প্রকাশ। বক্সটি অন্য মেশিনেও ট্রাফিক ফরওয়ার্ড করলে সেটি এই ইনপুট নীতি নয়, ফরওয়ার্ড চেইনের সিদ্ধান্ত, এবং তার নিজস্ব যুক্তি দরকার।

লিংক পরীক্ষা করুন, কেবল টানেল নয়

পরিবর্তনের পর টানেল কাজ করলে তা যতটা মনে হয় ততটা প্রমাণ করে না, কারণ একটি বিদ্যমান প্রতিবেশী এন্ট্রি ও একটি প্রতিষ্ঠিত সংযোগ নীতিটি এখন যে নিয়ন্ত্রণ বার্তা ড্রপ করছে তা লুকিয়ে রাখতে পারে।

সংযুক্তি সরাসরি যাচাই করুন, তারপর যাচাই করুন যে বাদ দেওয়া পাথটি এখনও ব্যর্থ হয়:

ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf

রিবুটের পরেও প্রতিবেশী টেবিল সম্পূর্ণ থাকা মানে আবিষ্কার এখনও কাজ করে। যে টেবিল খালি হয়ে যায় এবং আর ভরে না, তা মানে আপনি এটি ফিল্টার করেছেন। তৃতীয় কমান্ডটি রুলসেট প্রয়োগ না করেই এর সিনট্যাক্স যাচাই করে, যা সেশন থাকতে করাই ভালো।

যে হোস্ট থেকে নিজেকে লক আউট করেছেন তা উদ্ধার করুন

নিজের প্রশাসনিক সেশন বহনকারী ফায়ারওয়াল নিয়ম পরিবর্তনের আগে দ্বিতীয় চ্যানেল রাখুন: একটি কনসোল, সিরিয়াল সংযোগ, বা নির্ধারিত রোলব্যাক যা বাতিল না করলে নতুন নিয়ম সরিয়ে দেয়।

পরিবর্তন সত্যিই লক আউট করলে উদ্ধার সেই চ্যানেল দিয়েই, আপনি যে নেটওয়ার্ক এইমাত্র সরালেন তা দিয়ে নয়। সংরক্ষিত কপি থেকে আগের রুলসেট পুনরুদ্ধার করুন, হোস্ট আবার প্রাপ্য কিনা নিশ্চিত করুন, তারপরেই উদ্দিষ্ট নীতি ছোট ছোট অংশে প্রয়োগ করুন।

চূড়ান্ত নীতি সার্বজনীন নয়। ঠিকানা, রাউটিং ও ফায়ারওয়াল বাস্তবায়ন স্থাপনার ইনপুট, কিন্তু সীমা সব জায়গায় একই: অনুমোদিত টানেল বহনকারী নিয়ন্ত্রণ ট্রাফিক রেখে অনিচ্ছাকৃত অ্যাপ্লিকেশন প্রবেশ অস্বীকার করুন।

সম্পর্কিত নিবন্ধ