হোম VPN সার্ভারের জন্য পোর্ট ট্রিগারিং বনাম পোর্ট ফরওয়ার্ডিং
ট্রিগারিং আউটবাউন্ড ট্রাফিকের পরে একটি ম্যাপিং খোলে; ফরওয়ার্ডিং পোর্টটি স্থায়ীভাবে ম্যাপ করে। হোম VPN সার্ভারের দরকার দ্বিতীয়টি, প্রকৃত লিসেনারেই সীমিত।
বেশিরভাগ হোম রাউটারে পোর্ট ফরওয়ার্ডিং আর পোর্ট ট্রিগারিং একই মেনুতে থাকে, তাই এদের একই কাজ করার দুটি উপায় বলে ধরে নেওয়া হয়। ফরওয়ার্ডিং একটি স্থির নিয়ম: WAN পোর্টে আসা ইনবাউন্ড সংযোগ একটি নির্দিষ্ট ভেতরের ঠিকানা ও পোর্টে রূপান্তরিত হয়, অন্য কিছু ঘটছে কি না তা নির্বিশেষে। ট্রিগারিং শর্তসাপেক্ষ: রাউটার আউটবাউন্ড ট্রাফিক লক্ষ্য করে এবং মিলে যাওয়া সংযোগ বাইরে গেলেই কেবল একটি ইনবাউন্ড ম্যাপিং খোলে। VPN সার্ভার অপেক্ষা করে অন্য কেউ আগে সংযোগ করবে, তাই ওই শর্তটিই একমাত্র জিনিস যা এটি কখনও পূরণ করতে পারে না।
ভিন্ন জীবনচক্রের দুটি নিয়ম
IPv4 NAT অবস্থা ধরে রাখে। ভেতরের কোনো হোস্ট প্যাকেট বাইরে পাঠালে রাউটার একটি ম্যাপিং তৈরি করে যাতে উত্তরগুলি ফেরার পথ খুঁজে পায়; কোনো ম্যাপিংয়ের সঙ্গে না মেলা ইনবাউন্ড প্যাকেট ফেলে দেওয়া হয়, আর এই আচরণই আপডেট না করা ডেস্কটপকে ইন্টারনেটের বাইরে রাখে। ফরওয়ার্ডিং হাতে যোগ করা একটি স্থায়ী রূপান্তর এন্ট্রি। ট্রিগারিং ট্রাফিক প্যাটার্ন দিয়ে পাহারা দেওয়া একটি অস্থায়ী ফুটো।
ব্যবহারিক পার্থক্য সময়ে। সংরক্ষণ করার মুহূর্ত থেকে কেউ মুছে না ফেলা পর্যন্ত ফরওয়ার্ড থাকে। ট্রিগার চালু হওয়ার পরে ট্রিগার হওয়া ম্যাপিং থাকে এবং নিষ্ক্রিয়তার টাইমারে বন্ধ হয়, ভোক্তা হার্ডওয়্যারে যা মিনিটে মাপা হয়, অথবা রিবুটেই সঙ্গে সঙ্গে।
বিমূর্তভাবে কোনোটিই বেশি নিরাপদ নয়। ফরওয়ার্ড একটি পোর্ট অবিরাম খোলা রাখে; ট্রিগার কেবল নির্দিষ্ট আউটবাউন্ড ট্রাফিকের পরেই তা খোলে। যে সেবাকে অপরিচিত কারও কাছ থেকে প্রথম প্যাকেট নিতে হয়, তার জন্য দুটির মধ্যে কেবল একটি কাজের সঙ্গে মেলে।
কেন ট্রিগারিং কোনো সার্ভার প্রকাশ করবে না
VPN সার্ভার নকশাগতভাবেই নিষ্ক্রিয়। প্রতিপক্ষ, ক্যাফের ল্যাপটপ হোক বা মোবাইল ডেটার ফোন, প্রথম প্যাকেট পাঠায়, আর রাউটারের তার জন্য কোনো ম্যাপিং নেই। ভেতরে কিছুই ট্রিগার পোর্টে ট্রাফিক শুরু করেনি, তাই নিয়ম কখনও চালু হয় না এবং হ্যান্ডশেক শুরুর আগেই সংযোগ মরে যায়।
যেখানে ট্রিগারিং কাজ করছে বলে মনে হয়, সেখানে অন্য কিছু ট্রিগার পোর্টে ট্রাফিক তৈরি করছে: LAN-এর একটি ক্লায়েন্ট, একটি মনিটরিং প্রোব, বা সার্ভারের নিজের আউটবাউন্ড পরীক্ষা। তখন ম্যাপিংটি ওই এক হোস্টের জন্য খোলে এবং ট্রাফিক থামলে বন্ধ হয়, তাই পরের বাইরের প্রতিপক্ষ আবার ব্যর্থ হয়, অথচ প্রথম সাফল্যটি লগে প্রমাণের মতো বসে থাকে।
ট্রিগারিং সাধারণত একক-হোস্টও। অনেক বাস্তবায়ন একসঙ্গে কেবল একটি ভেতরের ডিভাইসকে ম্যাপিং ধরে রাখতে দেয়, যা এমন সার্ভারের জন্য সম্পূর্ণ ভুল যার কয়েকটি প্রতিপক্ষকে উত্তর দিতে হয়। বৈশিষ্ট্যটি এমন অ্যাপ্লিকেশনের জন্য তৈরি হয়েছিল যারা বাইরে একটি নিয়ন্ত্রণ সংযোগ খোলে এবং দ্বিতীয় পোর্টে ইনবাউন্ড ডেটা আশা করে, আর এটি এখনও সেই আকারেই মানায়।
ফরওয়ার্ড আসলে কী ম্যাপ করে
ফরওয়ার্ড একটিই রূপান্তর এন্ট্রি: WAN পোর্ট ও প্রোটোকল থেকে ভেতরের ঠিকানা ও পোর্টে। এর জন্য ওপাশে আগে থেকে চলমান একটি লিসেনার দরকার, আর ভেতরের ঠিকানাটি যথাস্থানে থাকা দরকার। অন্য মেশিনে সরে যাওয়া DHCP লিজ প্রতিটি টানেল নীরবে ভুল হোস্টে পাঠায়, তাই নিয়মের আগেই রিজার্ভেশন তৈরি করুন।
| Rule | Opens when | Closes when | Fits a VPN listener |
|---|---|---|---|
| Port forward | Saved, at boot | You delete it | Yes |
| Port trigger | Matching outbound traffic | Idle timeout or reboot | No |
প্রোটোকল চেহারার চেয়ে বেশি গুরুত্বপূর্ণ। UDP-এর উপর OpenVPN-এর UDP ফরওয়ার্ড দরকার, WireGuard-এর UDP দরকার, আর IPsec ডেটা আসে ESP হিসেবে, IP প্রোটোকল 50, যার কোনো পোর্টই নেই। কেবল TCP বা UDP গ্রহণ করা ফরওয়ার্ডিং ফর্ম এটি প্রকাশ করতে পারে না, তাই IPsec-এর পোর্ট নিয়মের বদলে পাসথ্রু বা স্থির এক-থেকে-এক ম্যাপিং দরকার।
আপনার রাউটারের উপরের স্তর
ফরওয়ার্ড কেবল আপনার নিজের রূপান্তর নিয়ন্ত্রণ করে। WAN ঠিকানাটি যদি আপনার না হয়, যা ক্যারিয়ার-গ্রেড NAT-এর পিছনে হয় যেখানে গ্রাহকরা RFC 6598-এ বর্ণিত 100.64.0.0/10 ভাগ করে, তাহলে ইনবাউন্ড সংযোগ কখনও আপনার রাউটারে পৌঁছায় না, কারণ প্রদানকারী আগে রূপান্তর করেছে। আপনার ডিভাইসের কোনো নিয়ম ওই ক্রম ঠিক করতে পারে না।
ডাবল NAT ক্ষুদ্র পরিসরে একই সমস্যা। আপনার রাউটার ISP রাউটারে ফরওয়ার্ড করে, যার মিলতে পারে এমন নিয়ম নেই এবং সে প্যাকেটটি ফেলে দেয়। হয় বাইরের ডিভাইসে নিয়মটি যোগ করুন, নয়তো বাইরের ডিভাইসকে ব্রিজ মোডে বসিয়ে আপনার ডিভাইসকে পাবলিক ঠিকানা ধরে রাখতে দিন।
তাই পরীক্ষাটি বাইরে থেকে আসতে হবে। পাবলিক ঠিকানা দিয়ে একই LAN থেকে করা পরীক্ষা হেয়ারপিন NAT সমর্থনের উপর নির্ভর করে এবং নিয়মের সঙ্গে সম্পর্কহীন কারণে পাস বা ফেল করতে পারে; মোবাইল ডেটার একটি ফোন, বা অন্য নেটওয়ার্কের বন্ধু, হলো পরিষ্কার যাচাই।
নিয়মটি সীমিত করুন, তারপর দুই অর্ধই যাচাই করুন
একটি পোর্ট একটি ঠিকানায় ফরওয়ার্ড করুন। প্রথম চেষ্টা ব্যর্থ বলে যোগ করা একটি রেঞ্জ — এভাবেই ম্যানেজমেন্ট ইন্টারফেস ইন্টারনেটে চলে আসে, আর VPN লিসেনারের পাশে রাউটারের অ্যাডমিন পেজ প্রকাশের দরকার নেই।
ওই লিসেনারকে যা আগে থেকেই সুরক্ষিত করছিল তা রাখুন: সার্টিফিকেট বা কী পরিচয়, হোস্ট ফায়ারওয়াল, হালনাগাদ প্যাকেজ সংস্করণ। ফরওয়ার্ড একটি প্যাকেট ঢুকতে দেয়; প্রমাণীকরণ ঠিক করে প্যাকেটটি টানেলে পরিণত হবে কি না, আর কিছু ভুল হলে এগুলি দুটি আলাদা ব্যর্থতা।
যাচাইয়ের দুই অর্ধ আছে। হ্যান্ডশেক বাইরের নেটওয়ার্ক থেকে সম্পূর্ণ হতে হবে, তারপর সার্ভারের পিছনে থাকা একটি ব্যক্তিগত সম্পদকে টানেল দিয়ে উত্তর দিতে হবে। ফরওয়ার্ড কেবল টানেল সংযোগ ঢুকতে দেয়, তার বেশি কিছু নয়; 10.8.0.0/24-এর রাউটিং ও অনুমোদন অন্য পর্দার অন্য সেটিং।
তিনটি প্রশ্নে সিদ্ধান্ত নিন
তিনটি প্রশ্ন যেকোনো তুলনা টেবিলের চেয়ে দ্রুত সিদ্ধান্ত দেয়:
- বাইরে থেকে কি কিছু প্রথম প্যাকেট হিসেবে সংযোগ করে? তাহলে ফরওয়ার্ডিং বা একটি রিলে ব্যবহার করুন। যে আউটবাউন্ড ট্রাফিক কখনও থাকবে না, তা ছাড়া ট্রিগারিং খুলতে পারে না।
- ফুটোটি কি নিষ্ক্রিয়তার সময়ের চেয়ে বেশি টিকে থাকতে হবে? তাহলে ফরওয়ার্ডিং ব্যবহার করুন, কারণ ট্রিগার হওয়া ম্যাপিং নিজের সময়সূচিতে বন্ধ হয়।
- WAN ঠিকানাটি কি প্রকাশ করার মতো আপনার? না হলে, কোনো নিয়ম সম্পাদনার আগে উপরের স্তরটি ঠিক করুন।
তিনটিরই উত্তর যদি না হয়, যা এমন ল্যাপটপের ক্ষেত্রে হয় যা নিজেই একটি বাণিজ্যিক প্রদানকারীকে ডায়াল করে, তাহলে কোনও নিয়মের দরকার নেই। NAT-এর পিছনের ক্লায়েন্ট কাজ করে কারণ সে নিজেই অবস্থা-ধারী ম্যাপিং তৈরি করে, আর এটাই মধ্যরাতে পোর্ট ফরওয়ার্ডিং পৃষ্ঠা পড়া বেশিরভাগ মানুষকে ঢেকে দেয়।