রাউটারে VPN না পোর্ট ফরওয়ার্ডিং: কোনটি জেতে?
পোর্ট ফরওয়ার্ডিং রাউটারের VPN লিসেনারের পোর্ট কেড়ে নিতে পারে। গন্তব্যের মালিক পরীক্ষা করুন, শুধু সংঘর্ষকারী ম্যাপিং সরান এবং প্রতিটি পরিবার আলাদাভাবে পরীক্ষা করুন।
রাউটার নিজেই VPN সমাপ্ত করে, আর একটি পুরনো ফরওয়ার্ডিং নিয়ম এখনও একই UDP পোর্ট লোকাল নেটওয়ার্কের একটি মেশিনে পাঠায়। এর মধ্যে কেবল একটি প্রকৃত প্রান্তবিন্দু হতে পারে, এবং কার্নেল কোনওটির পক্ষে সিদ্ধান্ত দেয় না। গন্তব্য অনুবাদ স্থানীয় সেবা জিজ্ঞাসা করার আগেই প্যাকেটটি পুনর্লিখন করে, তাই VPN প্রক্রিয়া এমন ট্র্যাফিকের জন্য অপেক্ষা করে যা ইতিমধ্যে অন্যত্র পাঠানো হয়েছে। কাজটি হল পোর্টটি কার মালিকানা তা নির্ধারণ করা, তারপর নিয়মগুলিকে মিলিয়ে দেওয়া।
এক পোর্ট, দুই দাবিদার মালিক
রাউটারের ভিতরে চলা একটি VPN সার্ভারের নিজের সকেটে পৌঁছানো একটি অন্তর্মুখী অনুমতি দরকার। একই পোর্টের জন্য গন্তব্য-NAT এন্ট্রি সম্পূর্ণ ভিন্ন জায়গায় নিয়ে যায়: একটি লোকাল নেটওয়ার্ক ঠিকানা এবং একটি ফরওয়ার্ডিং সিদ্ধান্ত। এগুলো ভিন্ন লগ ও ভিন্ন ব্যর্থতার ধরনযুক্ত ভিন্ন প্রান্তবিন্দু। সাধারণ সূত্র হল একটি ঠিকানা পরিবার কাজ করে আর অন্যটি করে না, কারণ অবশিষ্ট এন্ট্রিটি একটিমাত্র পরিবারের জন্য লেখা হয়েছিল এবং আর কখনও পুনর্বিবেচনা করা হয়নি।
সম্পাদনার আগে দাবিটি লিখে রাখুন: পরিবার, বাহ্যিক ঠিকানা, পরিবহন, পোর্ট এবং অনূদিত লক্ষ্য।
স্থানীয় পরীক্ষার আগেই অনুবাদ চলে
গন্তব্য NAT কার্নেল স্থানীয় বিতরণ ও ফরওয়ার্ডিংয়ের মধ্যে বাছাই করার আগে, প্রিরাউটিং পর্যায়ে প্যাকেটের লক্ষ্য বদলায়। লক্ষ্যটি লোকাল হোস্ট হয়ে গেলে প্যাকেটটি ফরওয়ার্ড পথ নেয়। রাউটারের নিজের সকেটের জন্য ইনপুট নিয়ম কখনও দেখা হয় না, তাই ক্লায়েন্ট সময় শেষ হওয়া পর্যন্ত VPN লগ খালি থাকে।
Intended local entry:
WAN UDP 1194 -> router local socket -> input path
Conflicting old entry:
WAN UDP 1194 -> DNAT 192.168.50.10:1194 -> forward path
এই ক্রমটাই সম্পূর্ণ কার্যপ্রণালী, এবং অ্যাপ্লায়েন্স ইন্টারফেসগুলো এটি না বদলেই চেকবক্সের আড়ালে লুকায়। প্যাকেট কোন পথ নেবে তা এখনও গন্তব্যের মালিকই ঠিক করে।
যদি লোকাল হোস্টটি অভীষ্ট প্রান্তবিন্দু হয়, তাহলে ফরওয়ার্ডটি সঠিক এবং রাউটারের একই পোর্টে শোনা উচিত নয়।
একটি ম্যাপিং রাখুন, অন্যটি সরান
সেই পোর্ট ও পরিবারের NAT এন্ট্রিগুলি তালিকাভুক্ত করুন এবং টিকে থাকাটি বেছে নিন:
sudo iptables -t nat -S | grep 1194
sudo ss -lunp | grep :1194
একই নম্বরের একটি TCP এন্ট্রি UDP ব্যর্থতার জন্য অপ্রাসঙ্গিক, এবং সেগুলিকে এক বস্তু হিসেবে গণ্য করলে ভুল নিয়ম মোছা হয়। যখন স্থানীয় সকেটের জেতা উচিত, তখন সংঘর্ষকারী ম্যাপিংয়ের মালিক ওই একটি এন্ট্রি সরান বা পুনর্লিখন করেন, আর রাউটারের নিজের পোর্টের অন্তর্মুখী অনুমতি যথাস্থানে থাকে। অসম্পর্কিত ফরওয়ার্ড, ব্যবস্থাপনা পথ এবং নিয়মসমূহের একটি অনুলিপি—সবই পরিবর্তনটি পার হয়ে টিকে থাকা উচিত।
যদি VPN আলাদা হোস্টে থাকে, তবে ফরওয়ার্ডই সঠিক বস্তু। কন্টেইনার বা ভার্চুয়াল মেশিনের একটি সেবার প্রকাশিত পোর্ট লাগতে পারে, যদিও বাক্সটিকে রাউটার বলা হয়, তাই কেসের লেবেল নয়, সকেট ও তার নেমস্পেস অনুসরণ করুন।
বাইরে থেকে মালিক নিশ্চিত করুন
প্রতিটি পরিবার আলাদাভাবে পরীক্ষা করুন, কারণ রাউটারে সমাপ্ত একটি IPv6 সংযোগ পুরনো নিয়মে পুনর্নির্দেশিত IPv4 সংযোগ সম্পর্কে কিছুই বলে না। কোন প্রান্তবিন্দু উত্তর দিয়েছে তা দেখতে গ্রহণকারী সেবার লগ পড়ুন, এবং ক্লায়েন্টের সফলতার বার্তাকে দুর্বল প্রমাণ হিসেবে ধরুন। অর্থবহ পরীক্ষার জন্য নতুন প্রবাহ দরকার। বাইরের হোস্ট থেকে nc -zvu 203.0.113.7 1194 দিয়ে একটি প্রোব পাঠান এবং বিজয়ীর লগ journalctl -u openvpn@server -n 20 দিয়ে পড়ুন। রাউটার লিসেনার সংযোগটি নিজেই লগ করে, আর লোকাল হোস্ট তা নিজের সেবায় লগ করে।
সংযোগ ট্র্যাকিং বিদ্যমান প্রবাহগুলিকে তাদের মূল ম্যাপিংয়ে রাখে, তাই একটি প্রতিষ্ঠিত সেশন আপনি এইমাত্র ঠিক করা নিয়মটির চেয়ে বেশি দিন টিকতে পারে।
অভীষ্ট প্রান্তবিন্দু যখন তার স্বাভাবিক পরিচয় যাচাই নিয়ে উত্তর দেয়, তখন টানেলের পিছনের একটি ব্যক্তিগত সম্পদ পরীক্ষা করুন। বাইরের লিসেনারে পৌঁছানো কেবল প্রথম ধাপ; অভ্যন্তরীণ রাউটিং ও অ্যাপ্লিকেশন অনুমোদন আলাদা ফলাফল।