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

কপি ও ব্যবহারের মধ্যে বেছে নিন

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

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

TPM বা স্মার্ট কার্ড স্বাক্ষর ক্রিয়াকলাপ হার্ডওয়্যারের ভিতরে চালায় এবং কেবল ফলাফল ফেরত দেয়। এটি কপির পথ বন্ধ করে এবং ব্যবহারের পথ প্রতিটির জন্য খোলা রাখে যা স্বাক্ষর চাইতে পারে।

ভাণ্ডারকে টানেল ডেমনের সঙ্গে মেলান

ডেমন এটি নিরাপত্তা নীতির চেয়ে বেশি সীমিত করে। WireGuard ফাইল বা wg set ইনপুট থেকে base64 ব্যক্তিগত কী নেয় এবং সার্টিফিকেট ভাণ্ডারে কোনো পথ নেই, তাই TPM-সমর্থিত ইন্টারফেস কী প্রশ্নে আসে না। OpenSSL 3-এর বিরুদ্ধে নির্মিত OpenVPN প্রদানকারী URI দিয়ে কী লোড করতে পারে, আর strongSwan PKCS#11 সমর্থনের পাশে TPM প্লাগইন দেয়, কিন্তু দুটোই নির্ভর করে আপনার প্যাকেজ কীভাবে কম্পাইল হয়েছে তার উপর।

যে ডেমন নির্বাচিত ভাণ্ডারে পৌঁছাতে পারে না সে হার্ডওয়্যার সীমাকে সাজসজ্জা বানায়। কেউ কী একবার রপ্তানি করে, ফাইলে রেখে দেয়, আর বাকি নকশা নীরবে সেই কপিতে চলে।

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

কী সরানোর আগে তালিকা করুন

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

openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256

শেষ দুটি সারাংশ একই হতে হবে। না হলে ডেমন সেটআপ শেষ করে তারপর প্রতিটি প্রচেষ্টায় সার্টিফিকেট বা স্বাক্ষর ত্রুটিতে ব্যর্থ হয় যা আসল কারণের কাছে কোথাও নির্দেশ করে না। WireGuard-এর সমতুল্য ছোট, কারণ সার্বজনীন কী সরাসরি ব্যক্তিগত থেকে উদ্ভূত: wg pubkey < /etc/wireguard/wg0.key কে সেই পিয়ার কী ছাপতে হবে যা আপনার সার্ভার ইতিমধ্যে সংরক্ষণ করে।

অনুমতিগুলো একই তালিকার অংশ। stat -c '%a %U:%G' /etc/wireguard/wg0.key কে 600 root:root ফেরত দিতে হবে, আর যা গ্রুপ বা বিশ্বের কাছে পঠনযোগ্য তার অর্থ হলো কী ইতিমধ্যে এমন প্রক্রিয়ার কাছে উপলব্ধ ছিল যা আপনি কখনও ভাবেননি।

ভাণ্ডার ও ব্যবহারের পথ যাচাই করুন

যাচাইয়ের তিনটি অংশ, আর তৃতীয়টি যা বাদ পড়ে। নিশ্চিত করুন কীটি আপনার বেছে নেওয়া ভাণ্ডারে আছে, নিশ্চিত করুন ডেমন সেই কী লোড করেছে কোনো অবশিষ্ট কপি নয়, এবং তারপর নিশ্চিত করুন রপ্তানি কৃত্রিম বস্তু চলে যাওয়ার পরেও তা শুরু হয়।

certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts

Windows-এ প্রথম কমান্ড ব্যক্তিগত ভাণ্ডার তালিকাভুক্ত করে এবং প্রতিটি এন্ট্রির পাশে কী প্রদানকারী ছাপে, আর সেখানেই এমন সার্টিফিকেট দেখা যায় যা হার্ডওয়্যার-সমর্থিত দেখায় কিন্তু সফটওয়্যার প্রদানকারীতে বসে আছে। দ্বিতীয়টি প্ল্যাটফর্ম ক্রিপ্টো প্রদানকারীর রাখা কী তালিকাভুক্ত করে, তাই সেখানে অনুপস্থিত VPN পরিচয় যখন তার সার্টিফিকেট উপস্থিত, তার অর্থ ব্যক্তিগত অর্ধেক অন্যত্র থাকে। Linux গেটওয়েতে ipsec listcerts জানায় strongSwan কী লোড করেছে, TPM প্লাগইন থেকে আসা কী সহ। এন্ট্রির সংখ্যায় ভরসার বদলে ফিঙ্গারপ্রিন্ট বা সার্বজনীন কী হ্যাশ তালিকার সঙ্গে তুলনা করুন।

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

নবায়ন ও ফেরা লিখুন

ফেরা দুই পরিবারে তীব্রভাবে ভিন্ন, আর সেই পার্থক্য নকশা নোটের অংশ, ঘটনা কলের নয়। ফাইল কী এনক্রিপ্টেড ব্যাকআপ ও পুনরুদ্ধার করা যায়, তাই ব্যর্থ স্থানান্তর উল্টানো যায়। অ-রপ্তানযোগ্য কী একেবারেই ব্যাকআপ করা যায় না, যা ডিভাইস মরে গেলে পুনঃপ্রদান ও পুনঃনথিভুক্তিকে একমাত্র পুনরুদ্ধারের পথ বানায়।

মেয়াদোত্তীর্ণতা বাধায় পরিণত হওয়ার আগে যাচাই করুন: openssl x509 -in vpn.crt -noout -checkend 2592000 অশূন্য কোডে শেষ হয় যখন সার্টিফিকেট ত্রিশ দিনের মধ্যে মেয়াদোত্তীর্ণ হয়, তাই এটি সরাসরি পর্যবেক্ষণ যাচাইয়ে ঢোকে। ওই লাইনের সাপ্তাহিক চালনা সেই নবায়ন ধরে যা কেউ পরিকল্পনা করেনি।

অপসারণ সার্ভারে ঘটে: পিয়ার মুছুন বা ক্রমিক নম্বর রদ করুন, তারপর নিশ্চিত করুন টানেল ব্যর্থ হয়, কারণ ক্যাশে করা সেশন থাকা ক্লায়েন্ট অর্ধসম্পূর্ণ রদ কিছু সময় লুকাতে পারে। রদকে কেবল CA ডেটাবেসে নয়, কেন্দ্রীভবনের CRL বা OCSP পথেও পৌঁছাতে হবে। সার্টিফিকেট সর্বজনীন নথি, এবং RFC 5280 প্রোফাইল তা যাচাই কীভাবে হয় তা অন্তর্ভুক্ত করে; সেই যাচাইয়ের কোনো অংশ ঘূর্ণনের আগে কপি করা ব্যক্তিগত কী রক্ষা করে না।

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

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