ডাউনস্ট্রিম সাবনেট বনাম ডেস্কটপ VPN: ট্রানজিট বাদ দিন, অ্যাপ নয়
প্রতি-অ্যাপ্লিকেশন বাইপাস কেবল লোকাল আউটপুট শ্রেণিবদ্ধ করে। ওয়ার্কস্টেশনের পেছনের ডিভাইসগুলোর নিজস্ব ইনগ্রেস, ফরওয়ার্ডিং ও রিটার্ন-পাথ নীতিমালা দরকার।
একটি মেশিন, দুটি কাজ, একটি ফায়ারওয়াল: একটি Wi-Fi আপলিংক, তার পেছনে ছোট একটি Ethernet সাবনেট এবং একটি ডেস্কটপ VPN ক্লায়েন্ট যা ধরে নেয় মেশিন থেকে বেরোনো সবকিছুই লোকাল। লোকালভাবে চালু করা অ্যাপ্লিকেশনগুলো লোকাল আউটপুট পাথ দিয়ে বেরোয়। ওয়ার্কস্টেশনের পেছনের ডিভাইসগুলো Ethernet পোর্টে এসে পৌঁছায় এবং ফরওয়ার্ডিং সিদ্ধান্ত দরকার। প্রথম পাথের জন্য লেখা বাদ দেওয়ার নিয়ম দ্বিতীয়টিকে কখনো দেখে না, তাই ব্রাউজার টানেল এড়িয়ে যায়, ডিভাইসগুলো যায় না।
দুটি প্যাকেট পাথ, একটি নীতি
| Origin | Path | Decision owner |
|---|---|---|
| Application on the workstation | OUTPUT then egress | The VPN app's routing policy |
| Device behind the workstation | PREROUTING then FORWARD | The workstation's own forwarding policy |
প্রথম সারিটাই বেশিরভাগ split-tunneling গাইডে বর্ণিত হয়। দ্বিতীয়টি একটি রাউটার কনফিগারেশন যা কাকতালীয়ভাবে একই মেশিনে থাকে। দুটোকে এক মানসিক মডেলে মেলানোই ভুল; তারা কার্নেল ভাগ করে, নীতি নয়। যেকোনো নিয়ম সম্পাদনার আগে দুটি পাথ আঁকুন, বাকি নকশা কোন পাথটি অনুপস্থিত তার থেকেই আসে।
সারণিটি এও ব্যাখ্যা করে কেন একই মেশিন একটি পরীক্ষায় পাশ করে অন্যটিতে ফেল করতে পারে। ওয়ার্কস্টেশনের ব্রাউজার লোকাল পাথ প্রমাণ করে; Ethernet পোর্টে লাগানো ল্যাপটপ ফরওয়ার্ডিং পাথ প্রমাণ করে। প্রতিটি দিয়ে পরিবর্তন যাচাই করুন, নইলে ব্রাউজার যতবারই রিফ্রেশ হোক দ্বিতীয়টি অপরীক্ষিত থেকে যায়।
অ্যাপ্লিকেশন বাদ দেওয়া আসলে কী শ্রেণিবদ্ধ করে
প্রতি-অ্যাপ্লিকেশন বাদ দেওয়া সাধারণত এভাবে কাজ করে: কোনো প্রসেস বা ব্যবহারকারীর প্যাকেটে মার্ক বসানো হয়, তারপর মার্ক করা ট্রাফিক টানেলের বাইরে রাউট করা হয়। এটি লোকাল-আউটপুট কাঠামো। ডাউনস্ট্রিম ডিভাইসের প্যাকেটের কোনো লোকাল প্রসেস নেই, তাই সিলেক্টর যা-ই হোক, সেটি কখনো সিলেক্টরের সাথে মেলে না।
সিলেক্টর যা-ই হোক, দুটি তালিকা একই তালিকা নয়, এবং এটাই মূল কথা। Mullvad-এর Linux গাইড তার ফায়ারওয়াল ও রাউটিং নীতিতে ব্যবহৃত মার্কের বর্ণনা দেয়, আর তার উদাহরণগুলো লোকাল আউটপুট লক্ষ্য করে; সেগুলো ডাউনস্ট্রিম রাউটারের সমর্থিত বর্ণনা নয়। সেগুলো কপি করলে এমন মেশিন পাওয়া যায় যা নিজেকে বাদ দেওয়া আছে বলে মনে করে, অথচ সবকিছু টানেলে ফরওয়ার্ড করে।
ট্রানজিট চুক্তিটি লিখুন
ডাউনস্ট্রিম সোর্স প্রিফিক্স ও ইনগ্রেস ইন্টারফেস একসাথে নাম দিন, তারপর ইনগ্রেসে ওই প্রিফিক্স সীমিত করুন। সীমাবদ্ধতা ছাড়া পোর্টে পৌঁছাতে পারে এমন যেকোনো ডিভাইস বাদ দেওয়া ঠিকানা দাবি করে বাইপাস দিয়ে বেরিয়ে যেতে পারে। এটিকে দুটি প্রশ্ন হিসেবে দেখুন: এই হোস্টগুলো আদৌ এই আপলিংক ব্যবহার করতে পারবে কি, এবং তারা ওয়ার্কস্টেশন বা টানেলের প্রাইভেট রেঞ্জে পৌঁছাতে পারবে কি? এগুলো অতিরিক্ত অনুমতি, আপলিংক বাছাইয়ের পার্শ্বপ্রতিক্রিয়া নয়।
ফরওয়ার্ডিং অনুমোদন করুন, তারপর ফিল্টার করুন। Linux গেটওয়ের দরকার চালু ফরওয়ার্ডিং, উভয় দিকে অভীষ্ট ট্রাফিক অনুমোদনের নিয়ম, এবং হয় আপস্ট্রিম রিটার্ন রুট নয়তো সচেতনভাবে সীমিত সোর্স ট্রান্সলেশন। একা NAT আপলিংক বাছাই করে না এবং ফিল্টার ভেদ করার অনুমতি দেয় না; এটি ওই সিদ্ধান্তের পর কেবল ঠিকানা পুনর্লিখন করে।
ট্রানজিটের জন্য শ্রেণিবিন্যাস ফরওয়ার্ডিং রুট সিদ্ধান্তের আগে ঘটতে হবে, অর্থাৎ output নয়, prerouting পর্যায়ে। সিদ্ধান্তের পরে বসানো নিয়ম প্যাকেট বদলাতে পারে, কিন্তু প্যাকেট ইতিমধ্যেই কোথায় পাঠানো হয়েছে তা বদলাতে পারে না।
মার্ক তার মালিক অ্যাপ্লিকেশনেরই
মার্ক মান, টেবিল নম্বর ও চেইন অগ্রাধিকার VPN অ্যাপ্লিকেশনের নীতির অংশ, চিরস্থায়ী ধ্রুবক নয়। যে নেটওয়ার্ক অন্য প্রোগ্রামের পুনরুৎপাদিত টেবিলে নিয়ম ঢোকানোর ওপর নির্ভর করে, সেটি পরের আপডেটে ভেঙে পড়বে, সাধারণত সুবিধাজনক সময়ে নয়, পুনঃসংযোগের মধ্যেই।
accept রায়সহ দ্বিতীয় বেস চেইন যোগ করলে পরের চেইনের drop রায় অতিক্রম করবে এমন নয়। বেস চেইনের হুক ও অগ্রাধিকার থাকে, আর ক্রমে প্রথম রায়ই জিতে যায়; এক চেইনের accept অন্য চেইন আগে যে drop-এ পৌঁছায় তা বাতিল করে না। যে একটি কাউন্টার বেড়েছে তা নয়, সম্পূর্ণ রুলসেট ও রাউটিং নীতির ক্রম দেখুন। কাউন্টার প্রমাণ করে একটি নিয়ম চলেছে, কখনোই প্রমাণ করে না যে তার রায়ই প্রয়োগ হয়েছে।
সংহত করুন, নয়তো সাবনেট সরান
দুটি নকশার পার্থক্য বাইপাসের মালিকানা কে রাখে তা নিয়ে। সংহত নকশা এক মেশিন ও এক নীতি রাখে, খরচ হলো VPN অ্যাপ্লিকেশনের টেবিল জীবনচক্র এবং এর ডকুমেন্টেশন যেসব মার্ক বদলাতে পারে তার ওপর নির্ভরতা। ডাউনস্ট্রিম নেটওয়ার্কের জন্য আলাদা রাউটার ওই নির্ভরতা পুরোপুরি সরিয়ে দেয়: সাবনেটের নিজস্ব আপলিংক থাকে, আর ওয়ার্কস্টেশন কোনো ফরওয়ার্ডিং ভূমিকা ছাড়াই ক্লায়েন্ট থাকে।
দ্বিতীয়টি বেছে নিন যখন ডাউনস্ট্রিম নেটওয়ার্ককে VPN আপডেট জুড়ে চালু থাকতে হবে, বা যখন প্রতিটি প্রকাশের পর সংহত নীতি কেউ পরীক্ষা করতে পারে না। প্রথমটি কেবল তখনই বেছে নিন যখন সংহতকরণ নথিভুক্ত এবং কেউ তার দায়িত্বে আছে।
চারটি অবস্থায় সীমান্ত যাচাই করুন: সংযুক্ত, পুনঃসংযোগরত, ইচ্ছাকৃতভাবে অবরুদ্ধ এবং বন্ধ। প্রতিটিতে নেম রেজোলিউশন ও উভয় অ্যাড্রেস ফ্যামিলি পরীক্ষা করুন, কারণ DNS ফাঁস করা বাইপাস আপনার নকশা করা বাদ দেওয়া নয়। পরীক্ষায় সুনির্দিষ্ট সীমান্ত প্রমাণিত হওয়া উচিত, শুধু একটি পাতা লোড হয়েছে তা নয়।