কেন বাসার NAT আপনার VPN ইন্টারফেস রক্ষা করে না
বাসার রাউটার টানেল এগিয়ে পাঠায়, কিন্তু হোস্ট ডিক্রিপ্ট করা প্যাকেটের বিচার করে। শ্রোতা, ভেতরের পথ ও প্রবেশ নীতি আলাদা করে পড়ুন।
বাসার রাউটারের পেছনে পোর্ট ফরওয়ার্ডিং ছাড়া থাকা ল্যাপটপগুলো এখনও VPN দিয়ে আসা SSH সংযোগ গ্রহণ করে। এটি কোনো বিরোধ নয়, কারণ দুটি ভিন্ন ডিভাইস দুটি ভিন্ন প্যাকেটের বিচার করে। রাউটার এনক্রিপ্টেড পরিবহন এগিয়ে পাঠায়, আর হোস্ট ঠিক করে তার টানেল ইন্টারফেসে পৌঁছানো ডিক্রিপ্ট করা প্যাকেটের কী হবে। এই দুটি সিদ্ধান্ত আলাদা রাখাই পুরো অনুশীলন।
রাউটার টানেল এগিয়ে পাঠায়, হোস্ট প্যাকেটের বিচার করে
একটি নিয়ম দেখার আগেই দূরের উৎস থেকে সেবা পর্যন্ত পথ আঁকুন। বাইরের অংশটি VPN পরিবহন, যা রাউটার ও গেটওয়ে সামলায়। ভেতরের অংশ শুরু হয় যখন এন্ডপয়েন্ট টানেলের স্তর সরিয়ে দেয় এবং হোস্ট তার VPN ঠিকানায় পাঠানো একটি প্যাকেট পায়।
এই দুটি অংশ এক করলে রাউটার হোস্টের নেওয়া সিদ্ধান্তের কৃতিত্ব পায়। পোর্ট ফরওয়ার্ডিং পাতা বা রাউটার লগ কেবল বাইরের কথোপকথন বর্ণনা করে, এবং এর কোনোটিই বলে না হোস্ট কোন ডিক্রিপ্ট করা ট্রাফিক গ্রহণ করবে। হোস্ট ভেতরের প্যাকেটে নিজের প্রবেশ নীতি প্রয়োগ করে, যেমন করে ইন্টারফেসে আসা যেকোনো প্যাকেটে। এই নীতিতেই এক্সপোজারের প্রশ্নটি আসলে নিষ্পত্তি হয়।
ওয়াইল্ডকার্ড শ্রোতা কোনো পাবলিক সেবা নয়
Linux-এ INADDR_ANY-তে বাঁধার অর্থ প্রতিটি স্থানীয় ঠিকানা, তাই একটি সেবা এমন টানেল ইন্টারফেসে উত্তর দিতে পারে যার নাম সে কখনও দেয়নি। IP সকেট রেফারেন্স সেই বাঁধন বর্ণনা করে, এবং শ্রোতাদের তালিকা থেকে সিদ্ধান্তে আসার আগে এটি পড়া উচিত। ওয়াইল্ডকার্ড এন্ট্রি সকেট সম্পর্কে তথ্য, নাগাল সম্পর্কে দাবি নয়।
নিচের দুটি লাইন একই সেবার দুটি ভিন্ন বাঁধন, এবং পার্থক্যটাই ইন্টারফেস গুরুত্বপূর্ণ কি না সেই প্রশ্নের সম্পূর্ণ উত্তর। সবার আগে পড়ুন সকেট কোন ঠিকানায় বসে আছে।
ss -lntp "sport = :22"
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
LISTEN 0 4096 10.8.0.6:22 0.0.0.0:* users:(("sshd",pid=812,fd=4))
যে বিন্যাস পোর্টে পৌঁছাতে পারে তার নাম দিন
তিনটি বিন্যাস সেই ইন্টারফেসে প্যাকেট রাখে, এবং তাদের মালিক আলাদা। সঠিকটির নাম দেওয়াই ঠিক করে কাকে নীতি বদলাতে হবে।
| Arrangement | What reaches the port | Where the decision lives |
|---|---|---|
| Another permitted VPN peer | A packet from the same tunnel subnet | Gateway forwarding policy and host input rules |
| A deliberate public forward | Traffic the gateway publishes on purpose | Gateway service definition |
| A subnet routed behind the gateway | Client traffic from the far side | Gateway route and host input rules |
পাবলিক প্রস্থান ঠিকানা দেখানো ব্রাউজার ফলাফল তিনটির কোনোটির সম্পর্কেই কিছু বলে না, কারণ এটি বাইরে যাওয়া ট্রাফিক কীভাবে বেরোয় তা বর্ণনা করে, ভেতরে আসা ট্রাফিককে কী অনুমতি আছে তা নয়। এর বদলে শ্রোতা ও সেবা লগে থাকা উৎস ঠিকানা থেকে পেছনে কাজ করুন। উৎস যদি অন্য টানেল সহকর্মী হয়, গেটওয়ে নীতি আগ্রহের নথি। যদি এটি অনূদিত ঠিকানা হয়, নিয়ম বদলানোর আগে অনুবাদ খুঁজুন।
সেবাকে আপনার ইচ্ছার পথে সীমিত করুন
যদি SSH কেবল ব্যবস্থাপনা পথ থেকে দরকার হয়, সেই পথ উৎস পরিসর ও একটি ইন্টারফেস হিসেবে লিখুন। তারপর হোস্টের প্রবেশ নিয়ম নেটওয়ার্ক নামের বদলে ইন্টারফেস, গন্তব্য ও উৎস অনুযায়ী সীমিত করুন, কারণ ব্যক্তিগত দেখতে নাম যেকোনো ঠিকানার প্রতিনিধিত্ব করতে পারে। পরের সমস্যা সমাধানকারীর জন্য একটি রুট রেখে দিন।
nft add rule inet filter input iifname "tun0" ip saddr 10.8.0.0/24 tcp dport 22 accept
nft list chain inet filter input
যে নিয়ম টানেল ইন্টারফেস ও ব্যবস্থাপনা পরিসরের নাম নেয়, তা এক জায়গায় ইচ্ছা ব্যক্ত করে। এটি Wi-Fi নেটওয়ার্কের জন্য লেখা নিয়মের সঙ্গে তুলনা করুন, যা ডিক্রিপ্ট করা টানেল ট্রাফিক সম্পর্কে কিছু বলে না। দুই স্তর যখন একমত না হয়, হোস্টের নীতিই সেই নীতি যা প্যাকেট পায়।
লগইন ও প্যাচ যেখানে আছে সেখানেই থাকতে দিন; একটি পোর্টে পৌঁছানো কখনও তা ব্যবহারের অনুমতি পাওয়ার সমান ছিল না। যেকোনো অপরিচিত উৎসের জন্য ঠিকানা পরিবার ও সময় লিখে রাখুন, এবং কোনো বৈশিষ্ট্য বা দুর্বলতাকে দোষ দেওয়ার আগে তদন্ত করুন। যে নিয়ম প্রতিটি টানেল সহকর্মীকে ঢুকতে দেয় তা ব্যবস্থাপনা সাবনেট ঢুকতে দেওয়া থেকে ভিন্ন নকশা, এবং কোনো লগ লাইন বলবে না কোনটি উদ্দেশ্য ছিল।
সংশোধন একটি সফলতা ও একটি প্রত্যাখ্যান দিয়ে গ্রহণ করুন
দুই অর্ধেকই প্রমাণ করুন: একটি অনুমোদিত সংযোগ সফল হয় এবং একটি বাদ দেওয়া পথ প্রত্যাখ্যাত হয়। প্রত্যাখ্যান সেই অর্ধেক যা মানুষ এড়িয়ে যায়, আর এটিই দেখায় নিয়ম কাজ করছে, অনুমতি দেওয়া ডিফল্টের পাশে দাঁড়িয়ে নেই। বাদ দেওয়া দিক থেকে পরীক্ষা করুন, এটি নিয়ে তর্ক করার বদলে।
পুনরায় সংযোগের পর জোড়াটি পুনরাবৃত্তি করুন, কারণ ভিন্ন ইন্টারফেস নাম নিয়ে ফেরা টানেল পুরোটির জন্য সীমিত নিয়ম চুপচাপ এড়িয়ে যেতে পারে। যে সীমা গুরুত্বপূর্ণ তা হলো যা হোস্ট সত্যিই পাওয়া প্যাকেটে প্রয়োগ করে।