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

ব্যাকআপ ফাইল ফেরায়, কর্তৃত্ব নয়

স্ন্যাপশট সার্ভার কনফিগারেশন, প্রাইভেট কী, সার্টিফিকেট অথরিটি, পিয়ার তালিকা ও ফায়ারওয়াল নিয়ম ব্যাকআপ চলার সময়ের অবস্থায় ধরে রাখে। এরপর যা বদলেছে তা ধরে রাখতে পারে না: যে ডিভাইস প্রত্যাহার করেছেন, যে কী নতুন করে দিয়েছেন, ল্যাপটপ বিক্রির সময় যে পিয়ার সরিয়েছেন, যে সাবনেট সরিয়েছেন। পুনরুদ্ধার ফাইলগুলোকে সেই মুহূর্তে ফিরিয়ে নেয়। এরপর মানুষ যে সিদ্ধান্ত নিয়েছে তা ফিরিয়ে নেয় না।

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

সার্ভার পরিচয় ও ক্লায়েন্ট পরিচয় ভিন্নভাবে ব্যর্থ হয়

WireGuard-এ সার্ভারের পরিচয় হলো wg0.conf-এর প্রাইভেট কী, তাই ওই ফাইল আরেকটি পৌঁছানোযোগ্য হোস্টে কপি করলে একই পরিচয়ের দুইটি সার্ভার তৈরি হয়, যারা একে অপরকে জানে না। প্রত্যেকে নিজের পিয়ার তালিকা রাখে। নতুন হোস্টে পিয়ার সরালে পুরনোটি তবু গ্রহণ করে; একটিতে wg show দেখুন আর অর্ধেক সত্য দেখবেন। ক্লায়েন্টরাও নিজে থেকে ফেলওভার করে না: প্রোফাইল একটি Endpoint বহন করে, তাই ডিভাইস যে ঠিকানায় কনফিগার হয়েছিল তার সাথেই কথা বলে, যা আপনার অবসরে পাঠাতে চাওয়া হোস্টও হতে পারে।

OpenVPN একই স্তরে ডুপ্লিকেট হয় সার্ভার সার্টিফিকেট, তার প্রাইভেট কী আর tls-auth বা tls-crypt স্ট্যাটিক কী দিয়ে। তিনটিই কপি করুন, ক্লায়েন্ট ইনস্ট্যান্সগুলো আলাদা করতে পারবে না; দুটিই পৌঁছানোযোগ্য হলে পুনঃসংযোগ যেকোনোটিতে পড়তে পারে, আর প্রতিটি লগ ফাইল আংশিক গল্প বলে। সার্টিফিকেট অথরিটি আরও গভীর কপি। পুনরুদ্ধার করা easy-rsa ট্রি দ্বিতীয় সত্যের উৎস, যা আপনি যে নামই দিন তার জন্য বৈধ সার্টিফিকেট দিতে পারে।

ক্লায়েন্টরাও ডুপ্লিকেট হয়, সাধারণত মাইগ্রেশনের সময়েই। শুধু পরীক্ষার জন্য একটি প্রোফাইল অতিরিক্ত ডিভাইসে কপি করলে একই কী ও common name-এর দ্বিতীয় ডিভাইস তৈরি হয়। duplicate-cn থাকলে দুই সেশন একসাথে চালু থাকতে পারে, আর ccd বা ifconfig-pool-persist-এ স্ট্যাটিক ঠিকানা বরাদ্দ মূল ডিভাইসের সাথে সংঘর্ষ করতে পারে। এ হলো দুইটি মেশিন এক পরিচয় পরে আছে, আর সার্ভার কনফিগে কিছুই তাদের আলাদা করে না।

পুরনো এন্ডপয়েন্টের জন্য তিনটি অবস্থার একটি বেছে নিন

পুরনো এন্ডপয়েন্টের পরিণতি ঠিক হওয়ার পরেই পুনরুদ্ধার নিরাপদ। অবসরে পাঠান: নতুন হোস্ট চালু হওয়ার আগেই পুরনো সার্ভিসকে VPN পোর্ট গ্রহণ বন্ধ করতে হবে, আর মেশিনে পৌঁছাতে না পারলে সেই পোর্ট নেটওয়ার্ক প্রান্তে আপনার প্রশাসনিক উৎস ছাড়া সবার জন্য ব্লক করুন। একই হোস্ট মেরামত করুন: পরিচয় পুনর্ব্যবহার ঠিক আছে কারণ একটি মেশিনই তা ধরে রাখে, কিন্তু পরে পুরনো কী-র ডিস্ক কপি বা VM স্ন্যাপশট ধ্বংস করুন যাতে ফিরে আসতে না পারে। একটি প্রাপ্যতা জোড়া বানান: দুই হোস্টের আলাদা হোস্ট পরিচয় দরকার এবং একটি ভাগ করা এন্ডপয়েন্ট, যেমন ফ্লোটিং ঠিকানা, লোড ব্যালেন্সার বা সরানো যায় এমন DNS। প্রাইভেট কী কপি করা ফেলওভার ডিজাইন নয়; এটি একটি নাম দাবি করা দুইটি সার্ভার।

ক্লায়েন্ট স্পর্শ করার আগে আপনি আসলে কোন অবস্থায় আছেন তা নিশ্চিত করুন। VPN পোর্টে উত্তর দেওয়া পুরনো হোস্টই প্রত্যাহার করা ডিভাইস গ্রহণ করবে, DNS সরে গেলেও। লিসেনার আর পাবলিক কী দেখুন:

ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key

আগে পিয়ার, প্রত্যাহার ও ঠিকানা মিলিয়ে নিন

পুনরুদ্ধার কী দাবি করে তার তালিকা বর্তমানে অনুমোদিত কিছুর সাথে মিলান। WireGuard-এ wg show wg0 প্রতিটি পিয়ারের কী, এন্ডপয়েন্ট, সর্বশেষ হ্যান্ডশেক ও ট্রান্সফার কাউন্টার দেয়, যা আপনার আর নেই এমন ডিভাইস ধরতে যথেষ্ট। wg set wg0 peer <key> remove দিয়ে লাইভে সরান, তারপর কনফিগও সম্পাদনা করুন, নইলে পিয়ার পরের স্টার্টে ফিরে আসে। wg show wg0 allowed-ips দ্বিতীয় সমস্যা প্রকাশ করে: এক ঠিকানায় দুই পিয়ার, বা আপনি ইতিমধ্যে পুনর্বিন্যাস করা ঠিকানা।

OpenVPN-এ প্রত্যাহার তালিকা তারিখযুক্ত একটি ফাইল, আর পুনরুদ্ধার পুরনো একটি ফিরিয়ে আনতে পারে। ক্লায়েন্ট সংযুক্ত হওয়ার আগে তা দেখুন:

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf

শেষ আপডেট প্রত্যাহারের আগের হলে সার্ভার এখনও আপনার প্রত্যাহার করা সার্টিফিকেট মান্য করছে। OpenVPN 2.4 ও পরবর্তী প্রতিটি নতুন সংযোগে CRL ফাইল আবার পড়ে, তাই ফাইল বদলালে নতুন সেশন থামে, কিন্তু প্রতিষ্ঠিত টানেল পুনঃসমঝোতা পর্যন্ত থাকে; ডিফল্ট reneg-sec হলো 3600 সেকেন্ড, আর তা কমানো বা সার্ভিস রিস্টার্ট করাই এখনই পরিবর্তন দেয়। পুরনো বিল্ড ফাইলটি তত নির্ভরযোগ্যভাবে নাও নিতে পারে, তাই সংস্করণের আচরণ নিশ্চিত করতে না পারলে রিস্টার্ট করুন। wg(8) ম্যানুয়াল উপরের পিয়ার অপসারণ ও allowed-ips সিনট্যাক্স কভার করে।

যেসব ডিভাইস আর নেই তাদের স্ট্যাটিক বরাদ্দও পরিষ্কার করুন। পুরনো প্রোফাইল এখনও ইনস্টল থাকা অবস্থায় অবসরে পাঠানো ডিভাইসের ঠিকানা নতুনটির জন্য পুনর্ব্যবহার করলে ঠিক সেই ডুপ্লিকেটই তৈরি হয় যা এড়াতে চাইছেন।

আপনি যে ক্লায়েন্ট প্রত্যাহার করেছেন তা দিয়ে যাচাই করুন

টানেলের বাইরের নেটওয়ার্ক থেকে ক্রমে পরীক্ষাগুলো চালান। প্রথমে অনুমোদিত ডিভাইস সংযুক্ত হয়, পুশ করা রিজলভারের মাধ্যমে DNS সমাধান করে এবং একটি প্রাইভেট রিসোর্সে পৌঁছায়। তারপর প্রত্যাহার করা ডিভাইসটি ব্যর্থ হতে হবে, নতুন নয়, তার বর্তমান প্রোফাইল ব্যবহার করে। তারপর বাইরে থেকে পুরনো এন্ডপয়েন্ট চেষ্টা করুন: VPN পোর্ট এখনও হ্যান্ডশেক সম্পন্ন করলে পুরনো হোস্ট জীবিত এবং ডুপ্লিকেশন বাস্তব, তত্ত্বীয় নয়।

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

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