একটি WireGuard ক্লায়েন্ট সংযুক্ত হয়ে সম্পূর্ণ ভিন্ন একটি ইন্টারফেসের ঠিকানায় পিং করে, এবং উত্তর আসে। ক্যাপচারে দেখা যায় অনুরোধটি কেবল টানেলেই আছে। কিছুই নষ্ট হয়নি, এবং সযত্নে বন্ধ করা ফরওয়ার্ডিং সেটিংটির এর সঙ্গে কোনো সম্পর্ক নেই। এটি এমন দুটি পথের তুলনা যা ডায়াগ্রামে একই রকম দেখায় এবং কার্নেলে সম্পূর্ণ আলাদা।

একটি পথ অন্য কারো হয়ে প্যাকেট ফরওয়ার্ড করে; অন্যটি সেগুলো হোস্টের নিজের কাছে পৌঁছে দেয়।

হোস্টের ঠিকানায় পাঠানো প্যাকেট হোস্টেই থাকে

দূরবর্তী ক্লায়েন্ট হোস্টের মালিকানাধীন একটি ঠিকানায় IP প্যাকেট পাঠায়। রাউটিং সেই প্যাকেট সম্পর্কে একটি প্রশ্ন করে: এই গন্তব্যটি কি স্থানীয়? হোস্টের অধিকারী প্রতিটি ঠিকানা স্থানীয় রাউটিং টেবিলে দেখা যায়, এবং সেই টেবিলটি মূল টেবিলের আগে দেখা হয়, তাই প্যাকেটটি অন্য ইন্টারফেস দিয়ে বের না হয়ে হোস্টের নিজস্ব স্ট্যাকে যায়। উত্তরটি স্থানীয়ভাবে তৈরি হয় এবং টানেল দিয়ে ফিরে যায়, কারণ অনুসন্ধানটি সেখান থেকেই এসেছিল।

এটাই পুরো প্রক্রিয়া। কোনো ফরওয়ার্ডিং ঘটে না, কোনো ইন্টারফেস অবস্থার পরিবর্তন জড়িত নয়, এবং প্রশ্নবিদ্ধ ঠিকানাটি অন্য কোথাও থেকে পৌঁছানোর যোগ্য হওয়ার প্রয়োজন নেই।

কেন ip_forward প্রযোজ্য নয়

ফরওয়ার্ডিং সেই প্যাকেটগুলো নিয়ন্ত্রণ করে যা যে ইন্টারফেসে এসেছে তার চেয়ে ভিন্ন ইন্টারফেস দিয়ে বের হতে হবে। হোস্টের নিজের প্রতি পিং কখনোই সেই পথ নেয় না: প্যাকেটটি স্থানীয়ভাবে ব্যবহৃত হয় এবং উত্তরটি স্থানীয়ভাবে তৈরি হয়। তাই net.ipv4.ip_forward=0 সেট করা এখানে কিছুই বদলায় না, এবং ফরওয়ার্ড চেইনের একটি নিয়ম কখনোই এই ট্রাফিক দেখে না। সঠিক নিয়ন্ত্রণ ইনপুট পথে থাকে, আগমনকারী ইন্টারফেস বা উৎস দ্বারা সীমাবদ্ধ।

এই কারণেই ফরওয়ার্ডিং বন্ধ করা এবং হোস্টটি বিচ্ছিন্ন বলে ধরে নেওয়া নিরাপত্তার একটি মিথ্যা অনুভূতি তৈরি করে।

সিদ্ধান্ত নেওয়া স্থানীয় টেবিলটি পড়ুন

ip rule show সাধারণত শূন্য অগ্রাধিকারের একটি নিয়ম জানায় যা সব অনুসন্ধানকে প্রথমে স্থানীয় টেবিলে পাঠায়, এবং ip route show table local হোস্টের নিজের ঠিকানাগুলো স্থানীয় পরিসরে তালিকাভুক্ত করে। সেই টেবিলে প্রশাসনিকভাবে বন্ধ কিন্তু এখনো কনফিগার করা ইন্টারফেসের ঠিকানাও থাকে। স্থিরভাবে বরাদ্দ করা IPv4 ঠিকানা সাধারণত লিঙ্ক বিচ্ছিন্ন হলেও টিকে থাকে, আর এভাবেই বন্ধ একটি ব্রিজে পিং সফল হতে পারে এবং অপারেটরকে অবাক করতে পারে।

IPv6 ঠিক এই বিষয়ে ভিন্ন। লিঙ্ক বিচ্ছিন্ন হলে এর ঠিকানাগুলো সাধারণত প্রত্যাহার করা হয়, যদি না keep_addr_on_down সেট করা থাকে। একটি নিয়ম উভয়কেই কভার করে এমন ধরে না নিয়ে পরিবারগুলো তুলনা করুন।

একটি পিয়ার আসলে কী পর্যন্ত পৌঁছায়

একটি সেগমেন্টে রাউটারের নিজের ঠিকানা থেকে আসা উত্তর সেই সেগমেন্টের পিছনের মেশিনগুলো সম্পর্কে কিছুই বলে না। পিয়ার এই পথে অন্য ইন্টারফেসের পিছনের হোস্টে পৌঁছাতে পারে না; এটি কেবল রাউটারের নিজের মালিকানাধীন ঠিকানায় পৌঁছায়। রাউটারের ঠিকানায় পিং করার বদলে আলাদা LAN হোস্টে একটি সেবা পরীক্ষা করাই নির্ধারণ করে ফরওয়ার্ডিং আদৌ অনুমোদিত কি না।

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

আপনি যে ঠিকানাগুলো বাদ দিতে চেয়েছিলেন সেগুলোও পরীক্ষা করুন। একটি ইন্টারফেস থেকে ঠিকানা সরানো পুরোনো ঠিকানার ওপর ফায়ারওয়াল নিয়ম স্তূপ করার চেয়ে বেশি নির্ভরযোগ্য।

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