লিনাক্স ডিস্ট্রিবিউশনের ফায়ারওয়াল আপনার VPN ট্রাফিক ব্লক করতে পারে
দুটি ফিল্টার ম্যানেজার, একটি রুলসেট এবং একটি টানেল যা ভুল জোনে নেমে আসে। যেকোনো নিয়ম যোগ করার আগে মালিক ও দিক নির্ণয় করুন।
টানেল উঠে আসে, লগ সংযুক্ত বলে, তবু একটি অ্যাপ্লিকেশন এখনো কোনো কিছুতে পৌঁছাতে পারে না। লিনাক্স ক্লায়েন্টে এর সাধারণ অর্থ হলো ডিস্ট্রিবিউশনের ফায়ারওয়াল এমন একটি পথ ফিল্টার করছে যা VPN ক্লায়েন্ট কখনো পরিচালনা করেনি। দুটি ম্যানেজার একসঙ্গে সক্রিয় থাকতে পারে, প্রতিটির ইন্টারফেস, জোন ও ট্রাফিকের দিক সম্পর্কে নিজস্ব ধারণা আছে। কিছু সম্পাদনার আগে মালিক চিহ্নিত করা নিয়ম চেষ্টা করে কিছু কাজ হওয়া পর্যন্ত অপেক্ষা করার চেয়ে দ্রুততর।
ম্যানেজার ও ব্যাকএন্ড খুঁজুন
যা ইনস্টল করা আছে তা দিয়ে নয়, বরং যা প্রকৃতপক্ষে লোড হয়েছে তা দিয়ে শুরু করুন। একটি ডিস্ট্রিবিউশন firewalld, ufw এবং একটি সাধারণ nftables সার্ভিস সরবরাহ করতে পারে, আর তাদের মধ্যে কেবল একটি চলমান রুলসেটের মালিক। প্যাকেজগুলো শান্তিপূর্ণভাবে সহাবস্থান করে, এবং ভুল ফ্রন্টএন্ড দিয়ে প্রবেশ করানো নিয়ম কখনো কার্নেলে পৌঁছায় না। সক্রিয় সার্ভিস পড়ুন, তারপর তা যে রুলসেট তৈরি করেছে তা পড়ুন।
ব্যাকএন্ড ফ্রন্টএন্ডের মতোই গুরুত্বপূর্ণ। একটি firewalld ইনস্টলেশন সংস্করণ ও কনফিগারেশনের ওপর নির্ভর করে nftables বা পুরোনো iptables ব্যাকএন্ড চালাতে পারে, আর দুটিই ভিন্ন পরিদর্শন আউটপুট দেয়। আপনার সিস্টেমকে কোনো গাইডের সঙ্গে তুলনা করার আগে ডিস্ট্রিবিউশন, সংস্করণ ও ব্যাকএন্ড টিকিটে লিখুন।
দিক ও ইন্টারফেস মিলিয়ে নিন
বহির্গামী ক্লায়েন্ট অনুরোধ, আগমনকারী শ্রোতা এবং ফরওয়ার্ড করা প্যাকেট ভিন্ন ভিন্ন হুক অতিক্রম করে, আর একটির জন্য নিয়ম বাকিগুলোকে ঢাকে না। স্থানীয় LAN অনুমোদনকারী জোনে প্রায়ই টানেল ইন্টারফেস বা VPN ঠিকানা পুল থাকে না। টানেল ইন্টারফেস সাধারণত ডিফল্ট জোনে নেমে আসে, যা প্রায়ই ভৌত অ্যাডাপ্টারের জোনের চেয়ে কঠোর। এই অমিলই ব্যাখ্যা করে কেন LAN-এ ব্রাউজিং কাজ করে আর টানেল ওঠার মুহূর্তেই থেমে যায়।
নিয়ম বাছার আগে জিজ্ঞাসা করুন কোন দিকটি ব্যর্থ হয়েছে। যে অ্যাপ্লিকেশন বাইরে সংযোগ করতে পারে না তার আউটপুট পথ দরকার, আর অন্তর্গামী সার্ভিসের টানেল ইন্টারফেসে ইনপুট পথ দরকার। ভুল চেইনে নিয়ম যোগ করলে এমন পরিবর্তন হয় যা প্রয়োগ করা মনে হয় কিন্তু আসলে কিছুই করে না।
নিয়মের মালিকদের একমত রাখুন
একটি VPN ক্লায়েন্টের হুক, একটি কন্টেইনার রানটাইম এবং ডিস্ট্রিবিউশন সার্ভিস সবাই নেটওয়ার্কিং পরিবর্তন করতে পারে, এবং তারা একে অপরের সঙ্গে সমন্বয় করে না। হাতে লেখা নিয়ম পরের রিলোডে হারিয়ে যায়, আর ম্যানেজারের চেইনে জোড়া দেওয়া নিয়ম আপনি যা চাননি এমন ক্রমে মূল্যায়িত হতে পারে। ম্যানেজারের স্থায়ী কনফিগারেশন ব্যবহার করুন এবং আপনি যে ফাইল লিখেছেন তার বদলে ফলিত রুলসেট পরিদর্শন করুন। একটি সার্ভিস অপ্রাপ্য বলে পুরো ফায়ারওয়াল বন্ধ করা ছোট সমস্যার বিনিময়ে বড় সমস্যা ডেকে আনে।
সংকীর্ণ কাউন্টার প্রত্যাখ্যাত প্রবাহ খোঁজার সস্তা উপায়। একটি গন্তব্য ও একটি পোর্টে সীমিত লগিং নিয়ম দেখায় ড্রপটি স্থানীয়ভাবে ঘটছে কি না, অন্য কারো ট্রাফিক না ধরে। তদন্ত শেষ হলে লগিং নিয়ম সরান, কারণ এটি নীতি নয় বরং একটি রোগনির্ণয়, এবং firewalld-এর জোন ডকুমেন্টেশন ব্যাখ্যা করে কীভাবে ইন্টারফেস ও সার্ভিস একত্র হয়।
লকডাউন না হারিয়ে সমাধান যাচাই করুন
যে ম্যানেজার মালিক সে দিয়েই প্রয়োগকৃত অবস্থা পরিদর্শন করুন, আপনি যে ব্যাকএন্ড লিপিবদ্ধ করেছেন তার সঙ্গে মেলে এমন কমান্ড ব্যবহার করে। নিচের তালিকা ধরে নেয় firewalld দায়িত্বে আছে; সবগুলো চালানোর বদলে nftables বা ufw-এর সমতুল্য বসান। এক সেশনে টুল মেশানোই এমনভাবে মেশিনে দুটি বিরোধী নিয়মসেট তৈরি করে।
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=trusted --list-all
sudo nft list ruleset | head -40
প্রথম কমান্ড জোন ও সেগুলোতে বরাদ্দ করা ইন্টারফেসের নাম দেয়, যা দেখায় টানেল আসলে কোথায় নেমেছে। দ্বিতীয়টি একটি জোনের নিয়ম ও সার্ভিস ছাপে, যাতে আপনি দেখতে পারেন VPN ইন্টারফেস আদৌ ঢাকা পড়েছে কি না। nftables তালিকা ব্যবহৃত ব্যাকএন্ডের মূল সত্য, আর কেবল কনফিগারেশন ফাইলে থাকা নিয়ম সেখানে দেখা যায় না। আপনার যোগ করা নিয়মের সঙ্গে তিনটি আউটপুট তুলনা করুন, অমিলটি সাধারণত নিজেই নাম বলে দেয়।
তারপর মূল অনুরোধ এবং আপনার প্রত্যাশিত ব্যর্থতার আচরণ পুনরাবৃত্তি করুন। একই পরিবর্তন যদি ক্লায়েন্টের লকডাউন সরিয়ে দেয় তবে নতুন কাজ করা সাইট যথেষ্ট নয়, তাই অরক্ষিত পথও পরীক্ষা করুন। ম্যানেজার, ব্যাকএন্ড, ইন্টারফেস ও নিয়মের উদ্দেশ্য লিপিবদ্ধ করুন, কারণ দ্বিতীয় ম্যানেজারকে পুনরুজ্জীবিত করা প্যাকেজ আপডেট নইলে পুরো জঞ্জাল আবার গড়ে তুলবে।