যে টানেলগুলো চালু হয় অথচ সার্ভারের পাবলিক ঠিকানায় SSH কাজ করা বন্ধ করে দেয়, সেগুলো সার্ভার সংযোগ প্রত্যাখ্যান করছে বলে মনে হয়। Windows-এ বেশি সম্ভাব্য কারণ স্থানীয়: /0 সহ পূর্ণ-টানেল AllowedIPs কঠোর ফায়ারওয়াল নিয়ম চালু করে, যা টানেলের নিজস্ব ট্রান্সপোর্ট আর খুব সামান্য অন্য কিছুকে অনুমতি দেয়। ওই ঠিকানায় পৌঁছানো এনক্রিপ্টেড প্যাকেট একই ঠিকানায় আলাদা TCP সংযোগ বেরোতে পারবে কি না সে সম্পর্কে কিছুই বলে না।

পিয়ার তালিকায় হাত দেওয়ার আগে এন্ডপয়েন্টের পাবলিক ঠিকানাকে তার ভেতরের টানেল ঠিকানা থেকে আলাদা করুন। AllowedIPs সম্পাদনা করে এটি ঠিক করার প্রায় প্রতিটি চেষ্টাই পথটি সঠিক করার বদলে নীতিকে দুর্বল করে।

রাউটিং অনুমতি আর ফায়ারওয়াল অনুমতি আলাদা

রুট নির্ধারণ করে প্যাকেট কোথায় পাঠানো হবে, আর ফায়ারওয়াল নিয়ম নির্ধারণ করে সেটি আদৌ পাঠানো যাবে কি না। তাই এন্ডপয়েন্টের পাবলিক IP-র জন্য রুট যোগ করলে এমন একটি পথ তৈরি হয় যা ফিল্টার এখনও আটকাতে পারে, আর এই উপসর্গ ঠিক এই বিভ্রান্তিই সৃষ্টি করে। Windows-এ ফিল্টারটি অতিরিক্ত কিছু নয়, বাস্তবায়নের অংশ, তাই কোনো রুট এন্ট্রি তা বদলায় না। অন্য জায়গাতেও এই দুটি সিদ্ধান্ত আলাদা, যদিও ডিফল্টগুলো ভিন্ন।

এই কারণেই এন্ডপয়েন্টে traceroute সফল হতে পারে অথচ SSH চেষ্টা ব্যর্থ হয়। প্রথমটি সেই সেবা বহন করে যার ব্যতিক্রমটি আছে, দ্বিতীয়টি নয়।

Windows-এ /0 কী করে

যখন একক পিয়ারের অনুমোদিত ঠিকানাগুলো পুরো IPv4 পরিসর ঢেকে দেয়, তখন WireGuard for Windows একটি কঠোর ফায়ারওয়াল ভঙ্গি প্রয়োগ করে যা এমন ট্রাফিক আটকায় যা নইলে টানেলের বাইরে চলে যেত। টানেল সেবার নিজস্ব ট্রান্সপোর্ট অনুমোদিত, কারণ নইলে VPN কাজই করতে পারত না। একই পাবলিক ঠিকানায় অন্য অ্যাপ্লিকেশন এমন অনুমতি পায় না, কারণ ব্যতিক্রমটি ঠিকানার নয়, ট্রান্সপোর্টের। Windows নেটওয়ার্কিং নোট এই আচরণ এবং এডিটরে থাকা সংশ্লিষ্ট নিয়ন্ত্রণটি বর্ণনা করে।

এই নিয়মগুলোই kill switch শব্দগুচ্ছের পেছনের ব্যবস্থা। এগুলো এমন নামের চেকবক্স দিয়ে নয়, কনফিগারেশনের আকার দিয়ে সক্রিয় হয়।

ব্যতিক্রম সুরক্ষা মডেল বদলে দেয়

/0-কে দুটি অর্ধ-ডিফল্ট প্রিফিক্স দিয়ে বদলানো হলো কঠোর অর্থ না রেখেই বিস্তৃত রাউটিং ধরে রাখার নথিভুক্ত উপায়, আর এটি সংক্ষিপ্ত বানান নয়, ভিন্ন সুরক্ষা মডেল। অনুমোদিত প্রিফিক্স থেকে এন্ডপয়েন্ট ঠিকানা বিয়োগ করা অন্য সাধারণ সমাধান, যা তালিকা লম্বা করে এবং কোন নিয়মগুলো সক্রিয় হয় তাও বদলায়। দুটোর কোনোটিই স্থানীয় প্রভাবযুক্ত স্থানীয় সম্পাদনা নয়। প্রত্যেকটি মেশিনের প্রতিটি প্রবাহের সীমা সরায়, কেবল আপনি যে সংযোগটি ঠিক করছিলেন তার নয়।

যেখানে সরাসরি পাবলিক SSH সত্যিই দরকার, সেখানে প্রোফাইল মালিককে বাইরের রুট ও তার ফায়ারওয়াল অনুমতি দুটোই ডিজাইন করতে হবে, এবং টানেল পড়ে গেলে অসম্পর্কিত ট্রাফিকের কী হবে তা ঠিক করতে হবে। IPv4 ও IPv6 আলাদাভাবে পর্যালোচনা করাও এর অংশ, কারণ নিয়মগুলো পরিবারভিত্তিক। একটি ম্যানেজমেন্ট সেশন বাঁচাতে যোগ করা বিস্তৃত বাইপাস সাধারণত সেশনটির চেয়ে বেশি কিছু প্রকাশ করে।

আপনার বেছে নেওয়া ম্যানেজমেন্ট পথ পরীক্ষা করুন

প্রথমে ঠিক করুন ম্যানেজমেন্ট টানেলের ভেতরে যাবে না বাইরে, তারপর দুটো একসাথে নয়, ঠিক সেই পছন্দটাই পরীক্ষা করুন। নিচের কমান্ডগুলো ক্লায়েন্টের ঠিকানা, পিয়ার অবস্থা এবং প্রতিটি লক্ষ্যে সংযোগ যাচাই করে। টানেল চালু থাকা অবস্থায় Windows ক্লায়েন্ট থেকে এগুলো চালান।

ipconfig | findstr /i "WireGuard IPv4"
wg show
ssh -v [email protected]
Test-NetConnection 203.0.113.9 -Port 22

ভেতরের ঠিকানায় সফল SSH প্রমাণ করে টানেল ম্যানেজমেন্ট ট্রাফিক বহন করছে এবং সার্ভারের নিজস্ব ফায়ারওয়াল পিয়ার পরিসর থেকে তা গ্রহণ করছে। দুটি লক্ষ্যেই ব্যর্থতা Windows রাউটিংয়ের সমস্যা নয়, সার্ভার-পক্ষ বা কী-এর সমস্যা। ভেতরের ঠিকানা কাজ করলে আর বাইরেরটি না করলে, স্থানীয় ফায়ারওয়াল ভঙ্গি ঠিক যা করার জন্য ডিজাইন করা হয়েছিল তাই করছে। প্রোফাইল সম্পাদনার আগে তিনটি ফলাফল এই ক্রমে পড়ুন।

ম্যানেজমেন্ট পথ, ব্যবহৃত ঠিকানা এবং টানেল বন্ধ থাকলে আচরণ লিখে রাখুন। এই নোটটিই পরের ব্যক্তিকে পাঁচ মিনিট বাঁচাতে বাইপাস প্রশস্ত করতে বাধা দেয়।

সম্পর্কিত নিবন্ধ