WireGuard বিভাজিত টানেল: ডিফল্ট রুট ছাড়াই কনফিগার করা
বিভাজিত টানেল হলো সেই প্রিফিক্স তালিকা যা আপনি বাদ দেন। দূরবর্তী রেঞ্জগুলো ক্লায়েন্ট পিয়ারে, ক্লায়েন্টের ঠিকানা সার্ভার পিয়ারে বসান, তারপর রুটগুলো পড়ুন।
বিভাজিত টানেল কী বাদ দিচ্ছেন তা দিয়েই সংজ্ঞায়িত হয়, আর WireGuard সেই সিদ্ধান্ত একটি ক্ষেত্রেই নেয়। ক্লায়েন্ট পিয়ারের AllowedIPs একসাথে ঠিক করে কোন গন্তব্যগুলো টানেল দিয়ে যাবে এবং কোন ভেতরের সোর্স ঠিকানা গ্রহণ করা হবে, আর wg-quick সেই একই তালিকাকে হোস্ট রুটে রূপান্তর করে। তালিকাটি ভুল হলে টানেল হয় সবকিছু গিলে ফেলে, নয়তো কিছুই বহন করে না।
আগে প্রিফিক্স তালিকা ঠিক করুন
কনফিগ ফাইলে হাত দেওয়ার আগে কোন গন্তব্যগুলো টানেল ব্যবহার করবে তা লিখে ফেলুন। অফিস সাবনেট, একটি ডাটাবেস রেঞ্জ, একটি ম্যানেজমেন্ট নেটওয়ার্ক: প্রত্যেকটিই কারণসহ একটি প্রিফিক্স। তালিকায় না থাকা সবকিছু ভৌত পথেই থাকে, আর ডিজাইনের পুরো উদ্দেশ্যই সেটি।
তালিকায় 0.0.0.0/0 বা ::/0 থাকলে আপনি একটি পূর্ণ টানেল বানিয়েছেন এবং তা বলে দেওয়া উচিত, কারণ ব্যর্থতার ধরন ও DNS প্রত্যাশা ভিন্ন।
তালিকাটি যথেষ্ট ছোট রাখুন যাতে পর্যালোচক পরে রাউটিং টেবিলের সঙ্গে মিলিয়ে দেখতে পারেন।
ক্লায়েন্ট কনফিগ: পিয়ার, AllowedIPs, DNS
ক্লায়েন্টের ইন্টারফেস ব্লকে থাকে তার নিজের টানেল ঠিকানা ও প্রাইভেট কী। পিয়ার ব্লকে থাকে সার্ভারের পাবলিক কী, এন্ডপয়েন্ট এবং প্রথম ধাপের প্রিফিক্সগুলো:
[Interface]
Address = 10.9.0.2/32
PrivateKey = <client-private-key>
DNS = 10.20.0.53
[Peer]
PublicKey = <server-public-key>
Endpoint = vpn.example.net:51820
AllowedIPs = 10.20.0.0/16, 10.30.0.0/24
PersistentKeepalive = 25
ক্লায়েন্টে AllowedIPs হলো দূরবর্তী গন্তব্যের সেট, ক্লায়েন্টের নিজের ঠিকানা নয়। DNS লাইনটি কেবল wg-quick-এর রিজলভার ইন্টিগ্রেশনের মাধ্যমে কার্যকর হয়, তাই resolvconf বা systemd-resolved সমর্থনহীন হোস্ট এটি উপেক্ষা করবে। PersistentKeepalive একটি NAT ম্যাপিং সক্রিয় রাখে এবং সরাসরি পথে অপ্রয়োজনীয়।
প্রতিটি প্রিফিক্সে যে সেবা এটি পরিবেশন করে তা মন্তব্য হিসেবে লিখুন, নইলে পরের সম্পাদনা অনুমাননির্ভর হবে।
সার্ভার কনফিগ: বিপরীত দৃষ্টিকোণ
সার্ভারে পিয়ার এন্ট্রিটি ক্লায়েন্টকে প্রতিনিধিত্ব করে, তাই এর AllowedIPs হলো ক্লায়েন্টের টানেল ঠিকানা, সাধারণত একটি /32। এটি অফিস সাবনেট নয়। ক্লায়েন্টের তালিকা সার্ভার এন্ট্রিতে কপি করা বিভাজিত টানেলের সবচেয়ে সাধারণ ভুল, আর এটি হয় অ্যাক্সেস বাড়ায়, নয়তো হ্যান্ডশেকের সময় ভেতরের সোর্স যাচাই ভেঙে দেয়।
সার্ভারের নিজের ইন্টারফেস ঠিকানা এবং অফিসের দিকে তার প্রয়োজনীয় রুটগুলো যেকোনো পিয়ার এন্ট্রি থেকে আলাদা।
দুটি ফাইল, দুটি দৃষ্টিকোণ, একটি প্রিফিক্স সেট তাদের মধ্যে ভাগ করা।
এটি চালু করুন এবং রুটগুলো পড়ুন
সমর্থিত ম্যানেজার দিয়ে ইন্টারফেস শুরু করুন, তারপর আপনি কী চেয়েছিলেন তা নয়, এটি কী ইনস্টল করেছে তা দেখুন। wg-quick AllowedIPs থেকে রুট তৈরি করে; প্রোফাইল Table = off দিলে কিছুই ইনস্টল হয় না এবং রাউটিং আপনার হাতে। প্রতিটি প্রিফিক্সের রুট পড়ুন এবং তা WireGuard ইন্টারফেসের দিকে নির্দেশ করে কিনা নিশ্চিত করুন। খালি রুট তালিকা সাধারণত বোঝায় যে প্রয়োগ করা প্রোফাইলটি আপনার সম্পাদিত প্রোফাইল নয়।
হ্যান্ডশেক কাউন্টারও দেখুন, কারণ যে পিয়ারের হ্যান্ডশেক নেই তার কী, এন্ডপয়েন্ট বা পৌঁছানোর সমস্যা আছে, রাউটিং সমস্যা নয়।
আপনি যে সঠিক কমান্ড ব্যবহার করেছেন তা লিখে রাখুন, কারণ পরের মানুষটি চাপের মধ্যে সেটিই চালাবে।
উভয় দিক যাচাই করুন, তারপর রোলব্যাক লিখে রাখুন
একটি প্রাইভেট ঠিকানা, তার অভ্যন্তরীণ নাম এবং সরাসরি থাকা উচিত এমন একটি গন্তব্য পরীক্ষা করুন। প্রাইভেট ঠিকানা কাজ করলে আর সরাসরি গন্তব্যটি এখন টানেল দিয়ে বেরোলে, প্রিফিক্স তালিকা খুব প্রশস্ত। নাম ব্যর্থ হলে অথচ ঠিকানা কাজ করলে, DNS লাইন কার্যকর হয়নি। রোলব্যাক এক কমান্ড, এবং তা একই নোটে থাকা উচিত।
পুনরায় সংযোগের পর নিশ্চিত করুন রুটগুলো এখনও আছে, কারণ যে ম্যানেজার প্রোফাইল আবার প্রয়োগ করে সে ম্যানুয়াল রুট বদলে দিতে পারে।
একজনই কনফিগ মালিক রাখুন, কারণ একই ইন্টারফেস তৈরি করা দুই ম্যানেজার শেষে মতভেদ করবেই। wg-quick ম্যানুয়াল এটা যে রুট ও DNS আচরণ দেয় তা নথিভুক্ত করে।